38#include "ITKMeshExport.h"
123template <
typename TPixelType,
124 unsigned int VDimension = 3,
126class ITK_TEMPLATE_EXPORT
Mesh :
public PointSet<TPixelType, VDimension, TMeshTraits>
129 ITK_DISALLOW_COPY_AND_MOVE(
Mesh);
143 itkOverrideGetNameOfClassMacro(
Mesh);
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 =
172#ifndef ITK_FUTURE_LEGACY_REMOVE
173 using CoordRepType ITK_FUTURE_DEPRECATED(
174 "ITK 6 discourages using `CoordRepType`. Please use `CoordinateType` instead!") =
CoordinateType;
424#if !defined(ITK_WRAPPING_PARSER)
540 std::set<CellIdentifier> * cellSet);
608extern ITKMesh_EXPORT std::ostream &
612#ifndef ITK_MANUAL_INSTANTIATION
613# ifndef ITK_WRAPPING_PARSER
614# include "itkMesh.hxx"
Represent and compute information about bounding boxes.
SmartPointer< Self > Pointer
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.
SmartPointer< Self > Pointer
BoundaryAssignmentIdentifier(CellIdentifier cellId, CellFeatureIdentifier featureId)
BoundaryAssignmentIdentifier Self
bool operator==(const Self &r) const
BoundaryAssignmentIdentifier()=default
bool operator<(const Self &r) const
CellFeatureIdentifier m_FeatureId
typename CellsContainer::ConstPointer CellsContainerConstPointer
itk::TriangleCell< CellType > OutputTriangleCellType
itk::VertexCell< CellType > OutputVertexCellType
CellDataContainer * GetCellData()
typename MeshTraits::CellDataContainer CellDataContainer
SmartPointer< Self > Pointer
itk::TetrahedronCell< CellType > OutputTetrahedronCellType
bool GetBoundaryAssignment(int dimension, CellIdentifier cellId, CellFeatureIdentifier featureId, CellIdentifier *boundaryId) const
typename PointsContainer::Pointer PointsContainerPointer
static constexpr unsigned int MaxTopologicalDimension
typename CellLinksContainer::Pointer CellLinksContainerPointer
typename MeshTraits::CellFeatureIdentifier CellFeatureIdentifier
typename CellDataContainer::ConstIterator CellDataContainerIterator
void PrintSelf(std::ostream &os, Indent indent) const override
itk::LineCell< CellType > OutputLineCellType
MeshClassCellsAllocationMethodEnum m_CellsAllocationMethod
typename MeshTraits::PointCellLinksContainer PointCellLinksContainer
CellInterface< CellPixelType, CellTraits > CellType
itk::QuadrilateralCell< CellType > OutputQuadrilateralCellType
BoundingBoxPointer m_BoundingBox
itk::HexahedronCell< CellType > OutputHexahedronCellType
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
itk::QuadraticEdgeCell< CellType > OutputQuadraticEdgeCellType
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
MapContainer< BoundaryAssignmentIdentifier, CellIdentifier > BoundaryAssignmentsContainer
itk::PolyLineCell< CellType > OutputPolyLineCellType
typename MeshTraits::PointHashType PointHashType
typename itk::VectorContainer< IdentifierType > CellsVectorContainer
itk::PolygonCell< CellType > OutputPolygonCellType
typename CellDataContainer::ConstPointer CellDataContainerConstPointer
typename MeshTraits::PixelType PixelType
typename MeshTraits::PointIdentifier PointIdentifier
CellLinksContainerPointer m_CellLinksContainer
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
CellsContainerPointer m_CellsContainer
itk::QuadraticTriangleCell< CellType > OutputQuadraticTriangleCellType
typename PointCellLinksContainer::const_iterator PointCellLinksContainerIterator
typename MeshTraits::CellIdentifier CellIdentifier
CellIdentifier GetCellNeighbors(CellIdentifier cellId, std::set< CellIdentifier > *cellSet)
BoundaryAssignmentsContainerVector m_BoundaryAssignmentsContainers
void PassStructure(Self *inputMesh)
CellDataContainerPointer m_CellDataContainer
typename PointDataContainer::Pointer PointDataContainerPointer
static constexpr unsigned int PointDimension
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)
MeshEnums::MeshClassCellsAllocationMethod MeshClassCellsAllocationMethodEnum
void SetBoundaryAssignments(int dimension, BoundaryAssignmentsContainer *)
typename CellType::CellAutoPointer CellAutoPointer
typename MeshTraits::CoordinateType CoordinateType
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
BoundingBox< PointIdentifier, Self::PointDimension, CoordinateType, PointsContainer > BoundingBoxType
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
SmartPointer< const Self > ConstPointer
bool GetCellBoundaryFeature(int dimension, CellIdentifier, CellFeatureIdentifier, CellAutoPointer &) const
PointSet< TPixelType, VDimension, TMeshTraits > Superclass
void SetCell(CellIdentifier, CellAutoPointer &)
typename MeshTraits::PointDataContainer PointDataContainer
typename MeshTraits::PointType PointType
typename PointsContainer::ConstIterator PointsContainerConstIterator
CellFeatureCount GetNumberOfCellBoundaryFeatures(int dimension, CellIdentifier) const
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.
Implements transparent reference counting.
TetrahedronCell represents a tetrahedron for a Mesh.
Represents a single vertex for a Mesh.
MeshClassCellsAllocationMethod
@ CellsAllocatedAsStaticArray
@ CellsAllocatedDynamicallyCellByCell
@ CellsAllocatedAsADynamicArray
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
ITKCommon_EXPORT std::ostream & operator<<(std::ostream &out, typename AnatomicalOrientation::CoordinateEnum value)
detail::VectorContainer< std::conditional_t< std::is_void_v< T2 >, SizeValueType, T1 >, std::conditional_t< std::is_void_v< T2 >, T1, T2 > > VectorContainer