18#ifndef itkVoronoiDiagram2D_h
19#define itkVoronoiDiagram2D_h
50template <
typename TCoordinate>
52 :
public Mesh<TCoordinate, 2, DefaultDynamicMeshTraits<TCoordinate, 2, 2, TCoordinate>>
79#ifndef ITK_FUTURE_LEGACY_REMOVE
80 using CoordRepType ITK_FUTURE_DEPRECATED(
81 "ITK 6 discourages using `CoordRepType`. Please use `CoordinateType` instead!") =
CoordinateType;
128 itkGetConstMacro(NumberOfSeeds,
unsigned int);
340#ifndef ITK_MANUAL_INSTANTIATION
341# include "itkVoronoiDiagram2D.hxx"
Represent and compute information about bounding boxes.
SmartPointer< Self > Pointer
A simple structure that holds type information for a mesh and its cells.
Point< CoordinateType, VPointDimension > PointType
typename CellType::CellAutoPointer CellAutoPointer
MapContainer< PointIdentifier, PointType > PointsContainer
float InterpolationWeightType
MapContainer< CellIdentifier, CellPixelType > CellDataContainer
IdentifierType PointIdentifier
MapContainer< PointIdentifier, PixelType > PointDataContainer
static constexpr unsigned int MaxTopologicalDimension
IdentifierType CellIdentifier
MapContainer< PointIdentifier, PointCellLinksContainer > CellLinksContainer
MapContainer< CellIdentifier, CellType * > CellsContainer
itkMakeCellTraitsMacro CellTraits
TCoordinate CoordinateType
static constexpr unsigned int PointDimension
std::set< CellIdentifier > PointCellLinksContainer
IdentifierType CellFeatureIdentifier
Control indentation during Print() invocation.
Represents a line segment for a Mesh.
CellInterface< CellPixelType, CellTraits > CellType
typename CellType::CellAutoPointer CellAutoPointer
PointsContainerPointer m_PointsContainer
A templated class holding a geometric point in n-Dimensional space.
Represents a polygon in a Mesh.
Implements transparent reference counting.
typename CellLinksContainer::ConstIterator CellLinksContainerIterator
void SetBoundary(PointType vorsize)
typename SeedsType::iterator SeedsIterator
~VoronoiDiagram2D() override=default
void AddVert(PointType x)
VoronoiEdge GetEdge(int id)
typename MeshTraits::PointCellLinksContainer PointCellLinksContainer
typename BoundingBoxType::Pointer BoundingBoxPointer
typename MeshTraits::CellIdentifier CellIdentifier
PointsContainerIterator VertexIterator
std::vector< std::vector< int > > m_CellNeighborsID
typename MeshTraits::PointIdentifier PointIdentifier
void SetSeeds(int num, SeedsIterator begin)
std::vector< PointType > SeedsType
std::vector< EdgeInfo > m_LineList
typename CellsContainer::Pointer CellsContainerPointer
VoronoiEdgeIterator EdgeBegin()
typename MeshTraits::CoordinateType CoordinateType
static constexpr unsigned int MaxTopologicalDimension
typename PointCellLinksContainer::const_iterator PointCellLinksContainerIterator
typename MeshTraits::CellTraits CellTraits
typename PointsContainer::Iterator PointsContainerIterator
typename MeshTraits::CellAutoPointer genericCellPointer
typename PointDataContainer::Pointer PointDataContainerPointer
PointType GetVertex(int id)
typename MeshTraits::PointsContainer PointsContainer
typename PointsContainer::Pointer PointsContainerPointer
PolygonCell< CellType > PolygonCellType
SmartPointer< const Self > ConstPointer
PointType GetSeed(int SeedID)
std::vector< VoronoiEdge > m_EdgeList
void SetOrigin(PointType vorsize)
typename std::vector< VoronoiEdge >::iterator VoronoiEdgeIterator
void VoronoiRegionAddPointId(int id, int x)
DefaultDynamicMeshTraits< TCoordinate, 2, 2, TCoordinate > MeshTraits
typename MeshTraits::PointType PointType
typename MeshTraits::InterpolationWeightType InterpolationWeightType
NeighborIdIterator NeighborIdsEnd(int seeds)
typename MeshTraits::CellsContainer CellsContainer
static constexpr unsigned int PointDimension
void AddEdge(VoronoiEdge x)
void PrintSelf(std::ostream &os, Indent indent) const override
typename PointDataContainer::ConstIterator PointDataContainerIterator
PointType m_VoronoiBoundaryOrigin
typename CellDataContainer::Pointer CellDataContainerPointer
void AddCellNeighbor(EdgeInfo x)
LineCell< CellType > Edge
typename MeshTraits::PixelType PixelType
typename Edge::SelfAutoPointer EdgeAutoPointer
typename CellsContainer::Iterator CellsContainerIterator
typename INTvector::iterator NeighborIdIterator
BoundingBox< PointIdentifier, Self::PointDimension, CoordinateType, PointsContainer > BoundingBoxType
typename CellType::MultiVisitor CellMultiVisitorType
NeighborIdIterator NeighborIdsBegin(int seeds)
SmartPointer< Self > Pointer
std::vector< PolygonCellType * > m_VoronoiRegions
void GetCellId(CellIdentifier cellId, CellAutoPointer &)
VertexIterator VertexBegin()
int GetEdgeLineID(int id)
void GetPoint(int pId, PointType *answer)
EdgeInfo GetSeedsIDAroundEdge(VoronoiEdge *task)
VoronoiEdgeIterator EdgeEnd()
typename PointsContainer::ConstIterator PointsContainerConstIterator
VertexIterator VertexEnd()
std::deque< EdgeInfo > EdgeInfoDQ
typename CellLinksContainer::Pointer CellLinksContainerPointer
typename CellDataContainer::ConstIterator CellDataContainerIterator
typename MeshTraits::PointDataContainer PointDataContainer
PointType m_VoronoiBoundary
typename CellsContainer::ConstIterator CellsContainerConstIterator
typename MeshTraits::CellLinksContainer CellLinksContainer
std::vector< int > INTvector
typename MeshTraits::CellFeatureIdentifier CellFeatureIdentifier
EdgeInfo GetEdgeEnd(int id)
typename MeshTraits::CellDataContainer CellDataContainer
std::list< PointType > PointList
unsigned int m_NumberOfSeeds
Mesh< TCoordinate, 2, DefaultDynamicMeshTraits< TCoordinate, 2, 2, TCoordinate > > Superclass
CellFeatureIdentifier CellFeatureCount
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....