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 =
255 , m_FeatureId(featureId)
324 GetNumberOfCells()
const;
330 PassStructure(
Self * inputMesh);
336 Initialize()
override;
340 CopyInformation(
const DataObject * data)
override;
347 const BoundingBoxType *
348 GetBoundingBox()
const;
355 SetCellLinks(CellLinksContainer *);
362 const CellLinksContainer *
363 GetCellLinks()
const;
368 SetCells(CellsContainer *);
376 SetCellsArray(CellsVectorContainer *);
383 SetCellsArray(CellsVectorContainer *,
int cellType);
388 virtual CellsVectorContainer *
396 const CellsContainer *
404 SetCellData(CellDataContainer *);
411 const CellDataContainer *
418 DeleteUnusedCellData();
420 #if !defined(ITK_WRAPPING_PARSER)
430 SetBoundaryAssignments(
int dimension, BoundaryAssignmentsContainer *);
433 BoundaryAssignmentsContainerPointer
434 GetBoundaryAssignments(
int dimension);
437 const BoundaryAssignmentsContainerPointer
438 GetBoundaryAssignments(
int dimension)
const;
447 SetCell(CellIdentifier, CellAutoPointer &);
456 GetCell(CellIdentifier, CellAutoPointer &)
const;
462 void SetCellData(CellIdentifier, CellPixelType);
471 GetCellData(CellIdentifier, CellPixelType *)
const;
486 SetBoundaryAssignment(
int dimension,
487 CellIdentifier cellId,
488 CellFeatureIdentifier featureId,
489 CellIdentifier boundaryId);
500 GetBoundaryAssignment(
int dimension,
501 CellIdentifier cellId,
502 CellFeatureIdentifier featureId,
503 CellIdentifier * boundaryId)
const;
509 RemoveBoundaryAssignment(
int dimension, CellIdentifier cellId, CellFeatureIdentifier featureId);
515 GetNumberOfCellBoundaryFeatures(
int dimension, CellIdentifier)
const;
526 GetCellBoundaryFeature(
int dimension, CellIdentifier, CellFeatureIdentifier, CellAutoPointer &)
const;
533 GetCellBoundaryFeatureNeighbors(
int dimension,
535 CellFeatureIdentifier,
536 std::set<CellIdentifier> * cellSet);
543 GetCellNeighbors(CellIdentifier cellId, std::set<CellIdentifier> * cellSet);
553 GetAssignedCellBoundaryIfOneExists(
int dimension, CellIdentifier, CellFeatureIdentifier, CellAutoPointer &)
const;
558 BuildCellLinks()
const;
566 Accept(CellMultiVisitorType * mv)
const;
572 itkSetMacro(CellsAllocationMethod, MeshClassCellsAllocationMethodEnum);
573 itkGetConstReferenceMacro(CellsAllocationMethod, MeshClassCellsAllocationMethodEnum);
581 PrintSelf(std::ostream & os,
Indent indent)
const override;
589 ReleaseCellsMemory();
600 CreateCell(
int cellType, CellAutoPointer &);
604 extern ITKMesh_EXPORT std::ostream &
608 #ifndef ITK_MANUAL_INSTANTIATION
609 # ifndef ITK_WRAPPING_PARSER
610 # include "itkMesh.hxx"