ITK  4.0.0
Insight Segmentation and Registration Toolkit
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Friends
itk::VoronoiDiagram2DGenerator< TCoordType > Class Template Reference

Implement the Sweep Line Algorithm for the construction of the 2D Voronoi Diagram. More...

#include <itkVoronoiDiagram2DGenerator.h>

Inheritance diagram for itk::VoronoiDiagram2DGenerator< TCoordType >:
Collaboration diagram for itk::VoronoiDiagram2DGenerator< TCoordType >:

List of all members.

Classes

class  FortuneEdge
class  FortuneHalfEdge
class  FortuneSite

Public Types

typedef SmartPointer< const SelfConstPointer
typedef VDMesh::CoordRepType CoordRepType
typedef VDMesh::EdgeInfo EdgeInfo
typedef VDMesh::EdgeInfoDQ EdgeInfoDQ
typedef VDMesh::Pointer OutputType
typedef SmartPointer< SelfPointer
typedef VDMesh::PointType PointType
typedef VDMesh::SeedsIterator SeedsIterator
typedef VDMesh::SeedsType SeedsType
typedef VoronoiDiagram2DGenerator Self
typedef MeshSource
< VoronoiDiagram2D< TCoordType > > 
Superclass
typedef VoronoiDiagram2D
< TCoordType > 
VDMesh
typedef VDMesh::VoronoiEdge VoronoiEdge

Public Member Functions

void AddOneSeed (PointType)
void AddSeeds (int num, SeedsIterator begin)
virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual void GenerateOutputInformation ()
virtual const char * GetNameOfClass () const
virtual unsigned int GetNumberOfSeeds () const
PointType GetSeed (int SeedID)
void SetBoundary (PointType vorsize)
void SetOrigin (PointType vorsize)
void SetRandomSeeds (int num)
void SetSeeds (int num, SeedsIterator begin)
void SortSeeds (void)
void UpdateDiagram (void)

Static Public Member Functions

static Pointer New ()

Protected Member Functions

void GenerateData (void)
virtual void PrintSelf (std::ostream &os, Indent indent) const
 VoronoiDiagram2DGenerator ()
 ~VoronoiDiagram2DGenerator ()

Private Member Functions

bool almostsame (CoordRepType p1, CoordRepType p2)
void bisect (FortuneEdge *, FortuneSite *s1, FortuneSite *s2)
void clip_line (FortuneEdge *task)
void ConstructDiagram (void)
void createHalfEdge (FortuneHalfEdge *task, FortuneEdge *e, bool pm)
void deleteEdgeList (FortuneHalfEdge *task)
void deletePQ (FortuneHalfEdge *task)
bool differentPoint (PointType p1, PointType p2)
double dist (FortuneSite *s1, FortuneSite *s2)
FortuneHalfEdgeELgethash (int b)
FortuneHalfEdgefindLeftHE (PointType *p)
void GenerateVDFortune (void)
FortuneSitegetLeftReg (FortuneHalfEdge *he)
FortuneHalfEdgegetPQmin (void)
FortuneSitegetRightReg (FortuneHalfEdge *he)
void insertEdgeList (FortuneHalfEdge *lbase, FortuneHalfEdge *lnew)
void insertPQ (FortuneHalfEdge *he, FortuneSite *v, double offset)
void intersect (FortuneSite *task, FortuneHalfEdge *el1, FortuneHalfEdge *el2)
void makeEndPoint (FortuneEdge *task, bool lr, FortuneSite *ends)
void operator= (const Self &)
unsigned char Pointonbnd (int VertID)
int PQbucket (FortuneHalfEdge *task)
void PQshowMin (PointType *task)
bool right_of (FortuneHalfEdge *el, PointType *p)
 VoronoiDiagram2DGenerator (const Self &)

Static Private Member Functions

static bool comp (PointType arg1, PointType arg2)

Private Attributes

FortuneSitem_BottomSite
FortuneEdge m_DELETED
double m_Deltax
double m_Deltay
std::vector< FortuneHalfEdge * > m_ELHash
unsigned int m_ELhashsize
FortuneHalfEdge m_ELleftend
FortuneHalfEdge m_ELrightend
unsigned int m_Nedges
unsigned int m_NumberOfSeeds
unsigned int m_Nvert
OutputType m_OutputVD
unsigned int m_PQcount
std::vector< FortuneHalfEdgem_PQHash
unsigned int m_PQhashsize
int m_PQmin
double m_Pxmax
double m_Pxmin
double m_Pymax
double m_Pymin
SeedsType m_Seeds
std::vector< FortuneSitem_SeedSites
double m_SqrtNSites
PointType m_VorBoundary

Friends

class FortuneEdge
class FortuneHalfEdge
class FortuneSite

Detailed Description

template<typename TCoordType>
class itk::VoronoiDiagram2DGenerator< TCoordType >

Implement the Sweep Line Algorithm for the construction of the 2D Voronoi Diagram.

Detailed informations of this method can be found in: "A sweepline algorithm for Voronoi diagrams." S. Fortune, Algorithmica 2, 153-174, 1987.

Input parameters are: (1) Size of the region. (2) Seed points coordinates. These coordinates can also be randomly set.

Template parameters for VoronoiDiagram2DGenerator:

TCoordType: the type associated with the coordination of the seeds and the resulting vertices.

Definition at line 51 of file itkVoronoiDiagram2DGenerator.h.


Member Typedef Documentation

template<typename TCoordType >
typedef SmartPointer< const Self > itk::VoronoiDiagram2DGenerator< TCoordType >::ConstPointer
template<typename TCoordType >
typedef VDMesh::CoordRepType itk::VoronoiDiagram2DGenerator< TCoordType >::CoordRepType

Definition at line 74 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
typedef VDMesh::EdgeInfo itk::VoronoiDiagram2DGenerator< TCoordType >::EdgeInfo

Definition at line 72 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
typedef VDMesh::EdgeInfoDQ itk::VoronoiDiagram2DGenerator< TCoordType >::EdgeInfoDQ

Definition at line 73 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
typedef VDMesh::Pointer itk::VoronoiDiagram2DGenerator< TCoordType >::OutputType

Definition at line 69 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
typedef SmartPointer< Self > itk::VoronoiDiagram2DGenerator< TCoordType >::Pointer
template<typename TCoordType >
typedef VDMesh::PointType itk::VoronoiDiagram2DGenerator< TCoordType >::PointType

Definition at line 70 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
typedef VDMesh::SeedsIterator itk::VoronoiDiagram2DGenerator< TCoordType >::SeedsIterator

Definition at line 68 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
typedef VDMesh::SeedsType itk::VoronoiDiagram2DGenerator< TCoordType >::SeedsType

Definition at line 71 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
typedef VoronoiDiagram2DGenerator itk::VoronoiDiagram2DGenerator< TCoordType >::Self

Standard class typedefs.

Reimplemented from itk::MeshSource< VoronoiDiagram2D< TCoordType > >.

Definition at line 55 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
typedef MeshSource< VoronoiDiagram2D< TCoordType > > itk::VoronoiDiagram2DGenerator< TCoordType >::Superclass
template<typename TCoordType >
typedef VoronoiDiagram2D< TCoordType > itk::VoronoiDiagram2DGenerator< TCoordType >::VDMesh

Convenient typedefs.

Definition at line 64 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
typedef VDMesh::VoronoiEdge itk::VoronoiDiagram2DGenerator< TCoordType >::VoronoiEdge

Definition at line 75 of file itkVoronoiDiagram2DGenerator.h.


Constructor & Destructor Documentation

template<typename TCoordType >
itk::VoronoiDiagram2DGenerator< TCoordType >::VoronoiDiagram2DGenerator ( ) [protected]
template<typename TCoordType >
itk::VoronoiDiagram2DGenerator< TCoordType >::~VoronoiDiagram2DGenerator ( ) [protected]
template<typename TCoordType >
itk::VoronoiDiagram2DGenerator< TCoordType >::VoronoiDiagram2DGenerator ( const Self ) [private]

Member Function Documentation

template<typename TCoordType >
void itk::VoronoiDiagram2DGenerator< TCoordType >::AddOneSeed ( PointType  )
template<typename TCoordType >
void itk::VoronoiDiagram2DGenerator< TCoordType >::AddSeeds ( int  num,
SeedsIterator  begin 
)

Add more seeds at one time.

template<typename TCoordType >
bool itk::VoronoiDiagram2DGenerator< TCoordType >::almostsame ( CoordRepType  p1,
CoordRepType  p2 
) [private]
template<typename TCoordType >
void itk::VoronoiDiagram2DGenerator< TCoordType >::bisect ( FortuneEdge ,
FortuneSite s1,
FortuneSite s2 
) [private]
template<typename TCoordType >
void itk::VoronoiDiagram2DGenerator< TCoordType >::clip_line ( FortuneEdge task) [private]
template<typename TCoordType >
static bool itk::VoronoiDiagram2DGenerator< TCoordType >::comp ( PointType  arg1,
PointType  arg2 
) [static, private]
template<typename TCoordType >
void itk::VoronoiDiagram2DGenerator< TCoordType >::ConstructDiagram ( void  ) [private]
template<typename TCoordType >
virtual::itk::LightObject::Pointer itk::VoronoiDiagram2DGenerator< TCoordType >::CreateAnother ( void  ) const [virtual]

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::MeshSource< VoronoiDiagram2D< TCoordType > >.

template<typename TCoordType >
void itk::VoronoiDiagram2DGenerator< TCoordType >::createHalfEdge ( FortuneHalfEdge task,
FortuneEdge e,
bool  pm 
) [private]
template<typename TCoordType >
void itk::VoronoiDiagram2DGenerator< TCoordType >::deleteEdgeList ( FortuneHalfEdge task) [private]
template<typename TCoordType >
void itk::VoronoiDiagram2DGenerator< TCoordType >::deletePQ ( FortuneHalfEdge task) [private]
template<typename TCoordType >
bool itk::VoronoiDiagram2DGenerator< TCoordType >::differentPoint ( PointType  p1,
PointType  p2 
) [private]
template<typename TCoordType >
double itk::VoronoiDiagram2DGenerator< TCoordType >::dist ( FortuneSite s1,
FortuneSite s2 
) [private]
template<typename TCoordType >
FortuneHalfEdge* itk::VoronoiDiagram2DGenerator< TCoordType >::ELgethash ( int  b) [private]
template<typename TCoordType >
FortuneHalfEdge* itk::VoronoiDiagram2DGenerator< TCoordType >::findLeftHE ( PointType p) [private]
template<typename TCoordType >
void itk::VoronoiDiagram2DGenerator< TCoordType >::GenerateData ( void  ) [protected, virtual]

Generate Voronoi Diagram based on the current list of seeds.

Reimplemented from itk::ProcessObject.

template<typename TCoordType >
virtual void itk::VoronoiDiagram2DGenerator< TCoordType >::GenerateOutputInformation ( void  ) [inline, virtual]

Produce the output information.

Reimplemented from itk::ProcessObject.

Definition at line 93 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
void itk::VoronoiDiagram2DGenerator< TCoordType >::GenerateVDFortune ( void  ) [private]
template<typename TCoordType >
FortuneSite* itk::VoronoiDiagram2DGenerator< TCoordType >::getLeftReg ( FortuneHalfEdge he) [private]
template<typename TCoordType >
virtual const char* itk::VoronoiDiagram2DGenerator< TCoordType >::GetNameOfClass ( ) const [virtual]

Standard part of every itk Object.

Reimplemented from itk::MeshSource< VoronoiDiagram2D< TCoordType > >.

template<typename TCoordType >
virtual unsigned int itk::VoronoiDiagram2DGenerator< TCoordType >::GetNumberOfSeeds ( ) const [virtual]

Get the number of seed points.

template<typename TCoordType >
FortuneHalfEdge* itk::VoronoiDiagram2DGenerator< TCoordType >::getPQmin ( void  ) [private]
template<typename TCoordType >
FortuneSite* itk::VoronoiDiagram2DGenerator< TCoordType >::getRightReg ( FortuneHalfEdge he) [private]
template<typename TCoordType >
PointType itk::VoronoiDiagram2DGenerator< TCoordType >::GetSeed ( int  SeedID)

Return the given indexed seed.

template<typename TCoordType >
void itk::VoronoiDiagram2DGenerator< TCoordType >::insertEdgeList ( FortuneHalfEdge lbase,
FortuneHalfEdge lnew 
) [private]
template<typename TCoordType >
void itk::VoronoiDiagram2DGenerator< TCoordType >::insertPQ ( FortuneHalfEdge he,
FortuneSite v,
double  offset 
) [private]
template<typename TCoordType >
void itk::VoronoiDiagram2DGenerator< TCoordType >::intersect ( FortuneSite task,
FortuneHalfEdge el1,
FortuneHalfEdge el2 
) [private]
template<typename TCoordType >
void itk::VoronoiDiagram2DGenerator< TCoordType >::makeEndPoint ( FortuneEdge task,
bool  lr,
FortuneSite ends 
) [private]
template<typename TCoordType >
static Pointer itk::VoronoiDiagram2DGenerator< TCoordType >::New ( ) [static]

Method for creation through the object factory.

Reimplemented from itk::MeshSource< VoronoiDiagram2D< TCoordType > >.

template<typename TCoordType >
void itk::VoronoiDiagram2DGenerator< TCoordType >::operator= ( const Self ) [private]

Time when GenerateOutputInformation was last called.

Reimplemented from itk::MeshSource< VoronoiDiagram2D< TCoordType > >.

template<typename TCoordType >
unsigned char itk::VoronoiDiagram2DGenerator< TCoordType >::Pointonbnd ( int  VertID) [private]
template<typename TCoordType >
int itk::VoronoiDiagram2DGenerator< TCoordType >::PQbucket ( FortuneHalfEdge task) [private]
template<typename TCoordType >
void itk::VoronoiDiagram2DGenerator< TCoordType >::PQshowMin ( PointType task) [private]
template<typename TCoordType >
virtual void itk::VoronoiDiagram2DGenerator< TCoordType >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [protected, virtual]

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from itk::MeshSource< VoronoiDiagram2D< TCoordType > >.

template<typename TCoordType >
bool itk::VoronoiDiagram2DGenerator< TCoordType >::right_of ( FortuneHalfEdge el,
PointType p 
) [private]
template<typename TCoordType >
void itk::VoronoiDiagram2DGenerator< TCoordType >::SetBoundary ( PointType  vorsize)

The boundary that enclose the whole voronoi diagram.

template<typename TCoordType >
void itk::VoronoiDiagram2DGenerator< TCoordType >::SetOrigin ( PointType  vorsize)
template<typename TCoordType >
void itk::VoronoiDiagram2DGenerator< TCoordType >::SetRandomSeeds ( int  num)

Set the seeds points randomly.

template<typename TCoordType >
void itk::VoronoiDiagram2DGenerator< TCoordType >::SetSeeds ( int  num,
SeedsIterator  begin 
)

Input the seeds information, will overwrite if seeds already exists.

template<typename TCoordType >
void itk::VoronoiDiagram2DGenerator< TCoordType >::SortSeeds ( void  )

Sort the seeds by ____.

template<typename TCoordType >
void itk::VoronoiDiagram2DGenerator< TCoordType >::UpdateDiagram ( void  )

Update the Voronoi Diagram after adding seed(s).


Friends And Related Function Documentation

template<typename TCoordType >
friend class FortuneEdge [friend]

Definition at line 140 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
friend class FortuneHalfEdge [friend]

Definition at line 141 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
friend class FortuneSite [friend]

All private nested classes must be friend classes to work with SunOS-CC compiler. If not, the private nested classes will not be able to access each other.

Definition at line 135 of file itkVoronoiDiagram2DGenerator.h.


Member Data Documentation

template<typename TCoordType >
FortuneSite* itk::VoronoiDiagram2DGenerator< TCoordType >::m_BottomSite [private]

Definition at line 197 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
FortuneEdge itk::VoronoiDiagram2DGenerator< TCoordType >::m_DELETED [private]

Definition at line 205 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
double itk::VoronoiDiagram2DGenerator< TCoordType >::m_Deltax [private]

Definition at line 188 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
double itk::VoronoiDiagram2DGenerator< TCoordType >::m_Deltay [private]

Definition at line 189 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
std::vector< FortuneHalfEdge * > itk::VoronoiDiagram2DGenerator< TCoordType >::m_ELHash [private]

Definition at line 203 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
unsigned int itk::VoronoiDiagram2DGenerator< TCoordType >::m_ELhashsize [private]

Definition at line 200 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
FortuneHalfEdge itk::VoronoiDiagram2DGenerator< TCoordType >::m_ELleftend [private]

Definition at line 201 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
FortuneHalfEdge itk::VoronoiDiagram2DGenerator< TCoordType >::m_ELrightend [private]

Definition at line 202 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
unsigned int itk::VoronoiDiagram2DGenerator< TCoordType >::m_Nedges [private]

Definition at line 195 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
unsigned int itk::VoronoiDiagram2DGenerator< TCoordType >::m_NumberOfSeeds [private]

Definition at line 121 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
unsigned int itk::VoronoiDiagram2DGenerator< TCoordType >::m_Nvert [private]

Definition at line 196 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
OutputType itk::VoronoiDiagram2DGenerator< TCoordType >::m_OutputVD [private]

Definition at line 123 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
unsigned int itk::VoronoiDiagram2DGenerator< TCoordType >::m_PQcount [private]

Definition at line 192 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
std::vector< FortuneHalfEdge > itk::VoronoiDiagram2DGenerator< TCoordType >::m_PQHash [private]

Definition at line 198 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
unsigned int itk::VoronoiDiagram2DGenerator< TCoordType >::m_PQhashsize [private]

Definition at line 194 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
int itk::VoronoiDiagram2DGenerator< TCoordType >::m_PQmin [private]

Definition at line 193 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
double itk::VoronoiDiagram2DGenerator< TCoordType >::m_Pxmax [private]

Definition at line 185 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
double itk::VoronoiDiagram2DGenerator< TCoordType >::m_Pxmin [private]

Definition at line 184 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
double itk::VoronoiDiagram2DGenerator< TCoordType >::m_Pymax [private]

Definition at line 187 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
double itk::VoronoiDiagram2DGenerator< TCoordType >::m_Pymin [private]

Definition at line 186 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
SeedsType itk::VoronoiDiagram2DGenerator< TCoordType >::m_Seeds [private]

Definition at line 124 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
std::vector< FortuneSite > itk::VoronoiDiagram2DGenerator< TCoordType >::m_SeedSites [private]

Definition at line 206 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
double itk::VoronoiDiagram2DGenerator< TCoordType >::m_SqrtNSites [private]

Definition at line 190 of file itkVoronoiDiagram2DGenerator.h.

template<typename TCoordType >
PointType itk::VoronoiDiagram2DGenerator< TCoordType >::m_VorBoundary [private]

Definition at line 122 of file itkVoronoiDiagram2DGenerator.h.


The documentation for this class was generated from the following file: