38 #include "ITKMeshExport.h"
123 template <
typename TPixelType,
124 unsigned int VDimension = 3,
125 typename TMeshTraits = DefaultStaticMeshTraits<TPixelType, VDimension, VDimension>>
126 class 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 =
172 #ifndef ITK_FUTURE_LEGACY_REMOVE
173 using CoordRepType [[deprecated(
"ITK 6 discourages using `CoordRepType`. Please use `CoordinateType` instead!")]] =
259 , m_FeatureId(featureId)
328 GetNumberOfCells()
const;
334 PassStructure(
Self * inputMesh);
340 Initialize()
override;
344 CopyInformation(
const DataObject * data)
override;
351 const BoundingBoxType *
352 GetBoundingBox()
const;
359 SetCellLinks(CellLinksContainer *);
366 const CellLinksContainer *
367 GetCellLinks()
const;
372 SetCells(CellsContainer *);
380 SetCellsArray(CellsVectorContainer *);
387 SetCellsArray(CellsVectorContainer *,
int cellType);
392 virtual CellsVectorContainer *
400 const CellsContainer *
408 SetCellData(CellDataContainer *);
415 const CellDataContainer *
422 DeleteUnusedCellData();
424 #if !defined(ITK_WRAPPING_PARSER)
434 SetBoundaryAssignments(
int dimension, BoundaryAssignmentsContainer *);
437 BoundaryAssignmentsContainerPointer
438 GetBoundaryAssignments(
int dimension);
441 const BoundaryAssignmentsContainerPointer
442 GetBoundaryAssignments(
int dimension)
const;
451 SetCell(CellIdentifier, CellAutoPointer &);
460 GetCell(CellIdentifier, CellAutoPointer &)
const;
466 void SetCellData(CellIdentifier, CellPixelType);
475 GetCellData(CellIdentifier, CellPixelType *)
const;
490 SetBoundaryAssignment(
int dimension,
491 CellIdentifier cellId,
492 CellFeatureIdentifier featureId,
493 CellIdentifier boundaryId);
504 GetBoundaryAssignment(
int dimension,
505 CellIdentifier cellId,
506 CellFeatureIdentifier featureId,
507 CellIdentifier * boundaryId)
const;
513 RemoveBoundaryAssignment(
int dimension, CellIdentifier cellId, CellFeatureIdentifier featureId);
519 GetNumberOfCellBoundaryFeatures(
int dimension, CellIdentifier)
const;
530 GetCellBoundaryFeature(
int dimension, CellIdentifier, CellFeatureIdentifier, CellAutoPointer &)
const;
537 GetCellBoundaryFeatureNeighbors(
int dimension,
539 CellFeatureIdentifier,
540 std::set<CellIdentifier> * cellSet);
547 GetCellNeighbors(CellIdentifier cellId, std::set<CellIdentifier> * cellSet);
557 GetAssignedCellBoundaryIfOneExists(
int dimension, CellIdentifier, CellFeatureIdentifier, CellAutoPointer &)
const;
562 BuildCellLinks()
const;
570 Accept(CellMultiVisitorType * mv)
const;
576 itkSetMacro(CellsAllocationMethod, MeshClassCellsAllocationMethodEnum);
577 itkGetConstReferenceMacro(CellsAllocationMethod, MeshClassCellsAllocationMethodEnum);
585 PrintSelf(std::ostream & os,
Indent indent)
const override;
593 ReleaseCellsMemory();
604 CreateCell(
int cellType, CellAutoPointer &);
608 extern ITKMesh_EXPORT std::ostream &
612 #ifndef ITK_MANUAL_INSTANTIATION
613 # ifndef ITK_WRAPPING_PARSER
614 # include "itkMesh.hxx"