38#include "ITKMeshExport.h"
123template <
typename TPixelType,
124 unsigned int VDimension = 3,
125 typename TMeshTraits = DefaultStaticMeshTraits<TPixelType, VDimension, VDimension>>
126class ITK_TEMPLATE_EXPORT
Mesh :
public PointSet<TPixelType, VDimension, TMeshTraits>
129 ITK_DISALLOW_COPY_AND_MOVE(
Mesh);
143 itkOverrideGetNameOfClassMacro(
Mesh);
152 static constexpr unsigned int PointDimension = TMeshTraits::PointDimension;
153 static constexpr unsigned int MaxTopologicalDimension = TMeshTraits::MaxTopologicalDimension;
155#if !defined(ITK_LEGACY_REMOVE)
160 static constexpr CellsAllocationMethodType CellsAllocationMethodUndefined =
161 MeshClassCellsAllocationMethodEnum::CellsAllocationMethodUndefined;
162 static constexpr CellsAllocationMethodType CellsAllocatedAsStaticArray =
164 static constexpr CellsAllocationMethodType CellsAllocatedAsADynamicArray =
166 static constexpr CellsAllocationMethodType CellsAllocatedDynamicallyCellByCell =
255 , m_FeatureId(featureId)
420#if !defined(ITK_WRAPPING_PARSER)
536 std::set<CellIdentifier> * cellSet);
604extern ITKMesh_EXPORT std::ostream &
608#ifndef ITK_MANUAL_INSTANTIATION
609# ifndef ITK_WRAPPING_PARSER
610# include "itkMesh.hxx"
Represent and compute information about bounding boxes.
A visitor that can visit different cell types in a mesh. CellInterfaceVisitor instances can be regist...
An abstract interface for cells.
SelfAutoPointer CellAutoPointer
Base class for all data objects in ITK.
Represents a hexahedron (cuboid) for a Mesh.
Control indentation during Print() invocation.
Represents a line segment for a Mesh.
A wrapper of the STL "map" container.
BoundaryAssignmentIdentifier(CellIdentifier cellId, CellFeatureIdentifier featureId)
bool operator==(const Self &r) const
BoundaryAssignmentIdentifier()=default
CellFeatureIdentifier m_FeatureId
Implements the N-dimensional mesh structure.
typename CellsContainer::ConstPointer CellsContainerConstPointer
CellDataContainer * GetCellData()
typename MeshTraits::CellDataContainer CellDataContainer
bool GetBoundaryAssignment(int dimension, CellIdentifier cellId, CellFeatureIdentifier featureId, CellIdentifier *boundaryId) const
typename PointsContainer::Pointer PointsContainerPointer
typename CellLinksContainer::Pointer CellLinksContainerPointer
typename MeshTraits::CellFeatureIdentifier CellFeatureIdentifier
typename CellDataContainer::ConstIterator CellDataContainerIterator
void PrintSelf(std::ostream &os, Indent indent) const override
typename MeshTraits::PointCellLinksContainer PointCellLinksContainer
CellsContainer * GetCells()
void ReleaseCellsMemory()
CellLinksContainer * GetCellLinks()
void SetBoundaryAssignment(int dimension, CellIdentifier cellId, CellFeatureIdentifier featureId, CellIdentifier boundaryId)
virtual void SetCellsArray(CellsVectorContainer *)
BoundaryAssignmentsContainerPointer GetBoundaryAssignments(int dimension)
CellFeatureIdentifier CellFeatureCount
typename BoundingBoxType::Pointer BoundingBoxPointer
bool GetCellData(CellIdentifier, CellPixelType *) const
virtual void SetCellsArray(CellsVectorContainer *, int cellType)
void SetCellData(CellIdentifier, CellPixelType)
void SetCellLinks(CellLinksContainer *)
typename PointsContainer::Iterator PointsContainerIterator
typename MeshTraits::PointHashType PointHashType
typename itk::VectorContainer< IdentifierType > CellsVectorContainer
typename CellDataContainer::ConstPointer CellDataContainerConstPointer
typename MeshTraits::PixelType PixelType
typename MeshTraits::PointIdentifier PointIdentifier
void BuildCellLinks() const
const BoundingBoxType * GetBoundingBox() const
typename CellsContainer::Pointer CellsContainerPointer
CellIdentifier GetNumberOfCells() const
typename CellDataContainer::Pointer CellDataContainerPointer
typename CellLinksContainer::ConstIterator CellLinksContainerIterator
typename CellsVectorContainer::Pointer CellsVectorContainerPointer
typename PointCellLinksContainer::const_iterator PointCellLinksContainerIterator
typename MeshTraits::CellIdentifier CellIdentifier
CellIdentifier GetCellNeighbors(CellIdentifier cellId, std::set< CellIdentifier > *cellSet)
void PassStructure(Self *inputMesh)
typename PointDataContainer::Pointer PointDataContainerPointer
typename MeshTraits::CellPixelType CellPixelType
CellIdentifier GetCellBoundaryFeatureNeighbors(int dimension, CellIdentifier, CellFeatureIdentifier, std::set< CellIdentifier > *cellSet)
bool GetCell(CellIdentifier, CellAutoPointer &) const
const BoundaryAssignmentsContainerPointer GetBoundaryAssignments(int dimension) const
typename CellsContainer::ConstIterator CellsContainerConstIterator
const CellDataContainer * GetCellData() const
const CellLinksContainer * GetCellLinks() const
typename MeshTraits::CellsContainer CellsContainer
void Initialize() override
void SetCells(CellsContainer *)
void CreateCell(int cellType, CellAutoPointer &)
virtual CellsVectorContainer * GetCellsArray()
bool RemoveBoundaryAssignment(int dimension, CellIdentifier cellId, CellFeatureIdentifier featureId)
void SetBoundaryAssignments(int dimension, BoundaryAssignmentsContainer *)
typename CellType::CellAutoPointer CellAutoPointer
typename CellType::MultiVisitor CellMultiVisitorType
void Graft(const DataObject *data) override
void SetCellData(CellDataContainer *)
virtual void Accept(CellMultiVisitorType *mv) const
bool GetAssignedCellBoundaryIfOneExists(int dimension, CellIdentifier, CellFeatureIdentifier, CellAutoPointer &) const
CellsVectorContainerPointer cellOutputVectorContainer
typename MeshTraits::PointsContainer PointsContainer
typename MeshTraits::CellLinksContainer CellLinksContainer
typename MeshTraits::InterpolationWeightType InterpolationWeightType
typename MeshTraits::CoordRepType CoordRepType
void DeleteUnusedCellData()
typename PointDataContainer::ConstIterator PointDataContainerIterator
typename CellsContainer::Iterator CellsContainerIterator
std::vector< BoundaryAssignmentsContainerPointer > BoundaryAssignmentsContainerVector
typename CellLinksContainer::ConstPointer CellLinksContainerConstPointer
typename BoundaryAssignmentsContainer::Pointer BoundaryAssignmentsContainerPointer
void CopyInformation(const DataObject *data) override
typename MeshTraits::CellTraits CellTraits
const CellsContainer * GetCells() const
bool GetCellBoundaryFeature(int dimension, CellIdentifier, CellFeatureIdentifier, CellAutoPointer &) const
void SetCell(CellIdentifier, CellAutoPointer &)
typename MeshTraits::PointDataContainer PointDataContainer
typename MeshTraits::PointType PointType
typename PointsContainer::ConstIterator PointsContainerConstIterator
CellFeatureCount GetNumberOfCellBoundaryFeatures(int dimension, CellIdentifier) const
Base class for most ITK classes.
A superclass of the N-dimensional mesh structure; supports point (geometric coordinate and attribute)...
Represents a series of connected line segments for a Mesh.
Represents a polygon in a Mesh.
Represents a second order line segment for a Mesh.
Represents a second order triangular patch for a Mesh.
Represents a quadrilateral for a Mesh.
TetrahedronCell represents a tetrahedron for a Mesh.
Represents a single vertex for a Mesh.
Define a front-end to the STL "vector" container that conforms to the IndexedContainerInterface.
MeshClassCellsAllocationMethod
@ CellsAllocatedAsStaticArray
@ CellsAllocatedDynamicallyCellByCell
@ CellsAllocatedAsADynamicArray
SmartPointer< const Self > ConstPointer
SmartPointer< Self > Pointer
ImageBaseType::RegionType RegionType
ImageBaseType::PointType PointType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
ITKCommon_EXPORT std::ostream & operator<<(std::ostream &out, typename AnatomicalOrientation::CoordinateEnum value)
bool operator<(const Index< VDimension > &one, const Index< VDimension > &two)