18 #ifndef __itkQuadEdgeMesh_h
19 #define __itkQuadEdgeMesh_h
21 #include "vcl_cstdarg.h"
112 template<
typename TPixel,
unsigned int VDimension,
113 typename TTraits = QuadEdgeMeshTraits< TPixel, VDimension, bool, bool > >
130 Traits::PointDimension);
132 Traits::MaxTopologicalDimension);
217 typedef typename Traits::QEPrimal
QEType;
250 #if !defined( CABLE_CONFIGURATION )
266 virtual void Clear();
291 #if !defined( CABLE_CONFIGURATION )
373 std::set< CellIdentifier > *cellSet)
385 std::set< CellIdentifier > * itkNotUsed(cellSet))
490 #ifdef ITK_USE_CONCEPT_CHECKING
535 #ifndef ITK_MANUAL_INSTANTIATION
536 #include "itkQuadEdgeMesh.hxx"
virtual void Initialize()
PointsContainer::ConstIterator PointsContainerConstIterator
CellsContainerPointer m_EdgeCellsContainer
BoundingBox< PointIdentifier, itkGetStaticConstMacro(PointDimension), CoordRepType, PointsContainer > BoundingBoxType
bool GetAssignedCellBoundaryIfOneExists(int dimension, CellIdentifier cellId, CellFeatureIdentifier featureId, CellAutoPointer &cellAP) const
QuadEdgeMeshLineCell< CellType > EdgeCellType
MeshTraits::PointDataContainer PointDataContainer
Traits::VectorType VectorType
const CellsContainer * GetEdgeCells() const
MeshTraits::PointCellLinksContainer PointCellLinksContainer
Traits::FaceRefType FaceRefType
Superclass::CellsContainerConstIterator CellsContainerConstIterator
const BoundaryAssignmentsContainerPointer GetBoundaryAssignments(int dimension) const
Superclass::PointType PointType
Superclass::CoordRepType CoordRepType
virtual void DeletePoint(const PointIdentifier &pid)
Superclass::CellsContainerPointer CellsContainerPointer
BoundaryAssignmentsContainerPointer GetBoundaryAssignments(int dimension)
CellsContainer::Iterator CellsContainerIterator
PointCellLinksContainer::const_iterator PointCellLinksContainerIterator
virtual void AddFace(QEPrimal *e)
Superclass::CellDataContainerIterator CellDataContainerIterator
virtual QEPrimal * FindEdge(const PointIdentifier &pid0) const
Traits::QEPrimal QEPrimal
MeshTraits::PointsContainer PointsContainer
void SetCell(CellIdentifier cId, CellAutoPointer &cell)
bool RemoveBoundaryAssignment(int dimension, CellIdentifier cellId, CellFeatureIdentifier featureId)
static const unsigned int PointDimension
MeshTraits::CellIdentifier CellIdentifier
SmartPointer< Self > Pointer
MapContainer< BoundaryAssignmentIdentifier, CellIdentifier > BoundaryAssignmentsContainer
Superclass::CellAutoPointer CellAutoPointer
void operator=(const Self &)
virtual QEPrimal * GetEdge() const
MeshTraits::PointType PointType
virtual VectorType GetVector(const PointIdentifier &pid) const
PointDataContainer::Pointer PointDataContainerPointer
static const PointIdentifier m_NoPoint
static const double e
The base of the natural logarithm or Euler's number
Implements the N-dimensional mesh structure.
Superclass::BoundingBoxPointer BoundingBoxPointer
CellDataContainer::Pointer CellDataContainerPointer
Superclass::RegionType RegionType
Superclass::CellDataContainerPointer CellDataContainerPointer
Superclass::BoundaryAssignmentsContainer BoundaryAssignmentsContainer
virtual QEPrimal * AddEdgeWithSecurePointList(const PointIdentifier &orgPid, const PointIdentifier &destPid)
CellsContainer::ConstIterator CellsContainerConstIterator
std::vector< BoundaryAssignmentsContainerPointer > BoundaryAssignmentsContainerVector
Superclass::CellLinksContainerPointer CellLinksContainerPointer
Superclass::PointHashType PointHashType
MeshTraits::CellDataContainer CellDataContainer
Superclass::CellFeatureIdentifier CellFeatureIdentifier
void SetEdgeCells(CellsContainer *edgeCells)
CellsContainer * GetEdgeCells()
bool GetCellBoundaryFeature(int dimension, CellIdentifier cellId, CellFeatureIdentifier featureId, CellAutoPointer &cellAP) const
CellLinksContainer::ConstIterator CellLinksContainerIterator
BoundingBoxType::Pointer BoundingBoxPointer
void SetBoundaryAssignment(int dimension, CellIdentifier cellId, CellFeatureIdentifier featureId, CellIdentifier boundaryId)
FreePointIndexesType m_FreePointIndexes
CellFeatureIdentifier CellFeatureCount
Superclass::CellDataContainer CellDataContainer
void SetEdgeCell(CellIdentifier cellId, CellAutoPointer &cellPointer)
bool GetPoint(PointIdentifier pid, PointType *pt) const
bool GetPoint(PointIdentifier, PointType *) const
PointIdentifier Splice(QEPrimal *a, QEPrimal *b)
Superclass::PointDataContainerIterator PointDataContainerIterator
Mesh< TPixel, VDimension, Traits > Superclass
Superclass::PointDataContainer PointDataContainer
Superclass::RegionType RegionType
virtual PointIdentifier AddPoint(const PointType &p)
Superclass::BoundaryAssignmentsContainerPointer BoundaryAssignmentsContainerPointer
CellLinksContainer::Pointer CellLinksContainerPointer
PointsContainer::Pointer PointsContainerPointer
Superclass::BoundingBoxType BoundingBoxType
MeshTraits::InterpolationWeightType InterpolationWeightType
std::queue< CellIdentifier > FreeCellIndexesType
EdgeListType * EdgeListPointerType
CellIdentifier ComputeNumberOfEdges() const
PointDataContainer::ConstIterator PointDataContainerIterator
virtual void CopyInformation(const DataObject *data)
Superclass::CellIdentifier CellIdentifier
static const CellIdentifier m_NoFace
MeshTraits::CoordRepType CoordRepType
virtual void ClearCellsContainer()
CellTraits::PointIdInternalIterator PointIdInternalIterator
CoordRepType CoordRepArrayType[itkGetStaticConstMacro(PointDimension)]
CellType::MultiVisitor CellMultiVisitorType
CellType::CellAutoPointer CellAutoPointer
virtual QEPrimal * AddFaceWithSecurePointList(const PointIdList &points)
CellIdentifier m_NumberOfEdges
Superclass::CellLinksContainerIterator CellLinksContainerIterator
MeshTraits::PointIdentifier PointIdentifier
SmartPointer< const Self > ConstPointer
Superclass::CellTraits CellTraits
CellIdentifier GetCellNeighbors(CellIdentifier, std::set< CellIdentifier > *)
Superclass::PointCellLinksContainerIterator PointCellLinksContainerIterator
MeshTraits::CellLinksContainer CellLinksContainer
bool GetBoundaryAssignment(int dimension, CellIdentifier cellId, CellFeatureIdentifier featureId, CellIdentifier *boundaryId) const
virtual EdgeCellType * FindEdgeCell(const PointIdentifier &pid0, const PointIdentifier &pid1) const
Superclass::CellType CellType
CellsContainer::Pointer CellsContainerPointer
std::queue< PointIdentifier > FreePointIndexesType
MeshTraits::CellFeatureIdentifier CellFeatureIdentifier
virtual QEPrimal * AddEdge(const PointIdentifier &orgPid, const PointIdentifier &destPid)
void SetBoundaryAssignments(int dimension, BoundaryAssignmentsContainer *container)
virtual void PushOnContainer(EdgeCellType *newEdge)
virtual void DeleteEdge(const PointIdentifier &orgPid, const PointIdentifier &destPid)
Superclass::CellPixelType CellPixelType
BoundaryAssignmentsContainer::Pointer BoundaryAssignmentsContainerPointer
MeshTraits::CellsContainer CellsContainer
Superclass::BoundaryAssignmentsContainerVector BoundaryAssignmentsContainerVector
CellIdentifier GetCellBoundaryFeatureNeighbors(int dimension, CellIdentifier cellId, CellFeatureIdentifier featureId, std::set< CellIdentifier > *cellSet)
PointIdentifier ComputeNumberOfPoints() const
Traits::VertexRefType VertexRefType
void ClearFreePointAndCellIndexesLists()
Superclass::PointsContainerConstIterator PointsContainerConstIterator
CellTraits::PointIdIterator PointIdIterator
CellIdentifier m_NumberOfFaces
itkQEDefineFrontIteratorMethodsMacro(Self)
virtual void DeleteFace(FaceRefType faceToDelete)
Superclass::PointDataContainerPointer PointDataContainerPointer
CellIdentifier GetNumberOfFaces() const
Mesh class for 2D manifolds embedded in ND space.
QuadEdgeMeshPolygonCell< CellType > PolygonCellType
Superclass::PointsContainerIterator PointsContainerIterator
Traits::PrimalDataType PrimalDataType
virtual QEPrimal * AddFaceTriangle(const PointIdentifier &aPid, const PointIdentifier &bPid, const PointIdentifier &cPid)
Superclass::PointCellLinksContainer PointCellLinksContainer
virtual void LightWeightDeleteEdge(EdgeCellType *e)
CellInterface< CellPixelType, CellTraits > CellType
MeshTraits::CellPixelType CellPixelType
CellIdentifier ComputeNumberOfFaces() const
Superclass::CellFeatureCount CellFeatureCount
virtual PointIdentifier FindFirstUnusedPointIndex()
virtual CellIdentifier FindFirstUnusedCellIndex()
std::vector< PointIdentifier > PointIdList
Superclass::CellMultiVisitorType CellMultiVisitorType
Superclass::InterpolationWeightType InterpolationWeightType
Define additional traits for native types such as int or float.
Traits::DualDataType DualDataType
MeshTraits::CellTraits CellTraits
Superclass::PointsContainer PointsContainer
virtual bool RequestedRegionIsOutsideOfTheBufferedRegion()
Superclass::CellsContainer CellsContainer
Superclass::CellLinksContainer CellLinksContainer
virtual void Graft(const DataObject *data)
MeshTraits::PointHashType PointHashType
static const unsigned int MaxTopologicalDimension
Superclass::PointIdentifier PointIdentifier
CellIdentifier GetNumberOfEdges() const
Superclass::PointsContainerPointer PointsContainerPointer
CellDataContainer::ConstIterator CellDataContainerIterator
CoordRepType ComputeEdgeLength(QEPrimal *e)
Compute the euclidian length of argument edge.
Base class for all data objects in ITK.
Class that connects the QuadEdgeMesh with the Mesh.
Superclass::CellsContainerIterator CellsContainerIterator
FreeCellIndexesType m_FreeCellIndexes
std::list< QEPrimal * > EdgeListType
PointsContainer::Iterator PointsContainerIterator