18 #ifndef itkVoronoiDiagram2DGenerator_h
19 #define itkVoronoiDiagram2DGenerator_h
45 template<
typename TCoordType >
47 public MeshSource< VoronoiDiagram2D< TCoordType > >
74 itkGetConstMacro(NumberOfSeeds,
unsigned int);
102 void SetRandomSeeds(
int num);
110 virtual
void PrintSelf(std::ostream & os,
Indent indent) const ITK_OVERRIDE;
113 void GenerateData(
void) ITK_OVERRIDE;
118 unsigned int m_NumberOfSeeds;
139 friend class FortuneSite;
140 friend class FortuneEdge;
141 friend class FortuneHalfEdge;
172 m_Ep[0] = m_Ep[1] = m_Reg[0] = m_Reg[1] = ITK_NULLPTR;
191 m_Right(ITK_NULLPTR),
201 m_Right(edge.m_Right),
205 m_Ystar(edge.m_Ystar),
243 unsigned char Pointonbnd(
int VertID);
245 void GenerateVDFortune();
247 void ConstructDiagram();
291 #ifndef ITK_MANUAL_INSTANTIATION
292 #include "itkVoronoiDiagram2DGenerator.hxx"
std::vector< FortuneHalfEdge * > m_ELHash
unsigned int m_ELhashsize
Light weight base class for most itk classes.
VoronoiDiagram2DGenerator Self
VDMesh::EdgeInfoDQ EdgeInfoDQ
VDMesh::SeedsType SeedsType
VDMesh::CoordRepType CoordRepType
SeedsType::iterator SeedsIterator
Implements the 2-Dimensional Voronoi Diagram.
std::vector< FortuneHalfEdge > m_PQHash
MeshTraits::CoordRepType CoordRepType
void Fill(const ValueType &)
SmartPointer< Self > Pointer
std::vector< FortuneSite > m_SeedSites
FortuneHalfEdge m_ELrightend
Base class for all process objects that output mesh data.
FortuneHalfEdge(const FortuneHalfEdge &edge)
VoronoidDiagramType VDMesh
VDMesh::VoronoiEdge VoronoiEdge
ImageBaseType::PointType PointType
MeshSource< VoronoiDiagram2D< TCoordType > > Superclass
unsigned int m_PQhashsize
Small data structures for Fortune's Method and some public variables/methods not for external access...
FortuneSite * m_BottomSite
SmartPointer< const Self > ConstPointer
Implement the Sweep Line Algorithm for the construction of the 2D Voronoi Diagram.
VDMesh::EdgeInfo EdgeInfo
Control indentation during Print() invocation.
FortuneHalfEdge m_ELleftend
virtual void GenerateOutputInformation() override
Define additional traits for native types such as int or float.
std::vector< PointType > SeedsType
VDMesh::Pointer OutputType
static ITK_CONSTEXPR_VAR double e
The base of the natural logarithm or Euler's number
A templated class holding a geometric point in n-Dimensional space.
VDMesh::SeedsIterator SeedsIterator
std::deque< EdgeInfo > EdgeInfoDQ
VoronoiDiagram2D< TCoordType > VoronoidDiagramType
FortuneHalfEdge * m_Right
VDMesh::PointType PointType