18#ifndef itkHexahedronCell_h
19#define itkHexahedronCell_h
44template <
typename TCellInterface>
46 :
public TCellInterface
73 static constexpr unsigned int NumberOfPoints = 8;
74 static constexpr unsigned int NumberOfVertices = 8;
75 static constexpr unsigned int NumberOfEdges = 12;
76 static constexpr unsigned int NumberOfFaces = 6;
77 static constexpr unsigned int CellDimension = 3;
84 static constexpr unsigned int CellDimension3D = 3;
85 static constexpr unsigned int PointDimension3D = 3;
112 SetPointIds(PointIdConstIterator first, PointIdConstIterator last)
override;
129 virtual CellFeatureCount
132 virtual CellFeatureCount
135 virtual CellFeatureCount
152 InterpolationWeightType *)
override;
159 std::array<PointIdentifier, NumberOfPoints> m_PointIds{ MakeFilled<std::array<PointIdentifier, NumberOfPoints>>(
164 CoordinateType derivs[Self::CellDimension * Self::NumberOfPoints]);
169 PointsContainer * points,
170 CoordinateType pcoords[Self::CellDimension],
171 CoordinateType x[Self::CellDimension],
172 InterpolationWeightType * weights);
181#ifndef ITK_MANUAL_INSTANTIATION
182# include "itkHexahedronCell.hxx"
Holds data defining the topological connections of the vertices and edges of a HexahedronCell.
Represents a hexahedron (cuboid) for a Mesh.
unsigned int GetNumberOfPoints() const override
virtual bool GetFace(CellFeatureIdentifier, FaceAutoPointer &)
itkCellInheritedTypedefs(TCellInterface)
CellFeatureCount GetNumberOfBoundaryFeatures(int dimension) const override
bool GetBoundaryFeature(int dimension, CellFeatureIdentifier, CellAutoPointer &) override
virtual bool GetVertex(CellFeatureIdentifier, VertexAutoPointer &)
void EvaluateLocation(int &, PointsContainer *points, CoordinateType pcoords[Self::CellDimension], CoordinateType x[Self::CellDimension], InterpolationWeightType *weights)
virtual CellFeatureCount GetNumberOfEdges() const
void InterpolationDerivs(CoordinateType pcoords[Self::CellDimension], CoordinateType derivs[Self::CellDimension *Self::NumberOfPoints])
PointIdConstIterator PointIdsEnd() const override
virtual bool GetEdge(CellFeatureIdentifier, EdgeAutoPointer &)
void MakeCopy(CellAutoPointer &) const override
~HexahedronCell() override=default
typename EdgeType::SelfAutoPointer EdgeAutoPointer
typename VertexType::SelfAutoPointer VertexAutoPointer
void SetPointIds(PointIdConstIterator first, PointIdConstIterator last) override
CellGeometryEnum GetType() const override
PointIdConstIterator PointIdsBegin() const override
virtual CellFeatureCount GetNumberOfVertices() const
typename FaceType::SelfAutoPointer FaceAutoPointer
PointIdIterator PointIdsBegin() override
itkCellVisitMacro(CellGeometryEnum::HEXAHEDRON_CELL)
void SetPointIds(PointIdConstIterator first) override
void InterpolationFunctions(CoordinateType pcoords[Self::CellDimension], InterpolationWeightType sf[Self::NumberOfPoints])
virtual CellFeatureCount GetNumberOfFaces() const
PointIdIterator PointIdsEnd() override
void SetPointId(int localId, PointIdentifier) override
bool EvaluatePosition(CoordinateType *, PointsContainer *, CoordinateType *, CoordinateType[], double *, InterpolationWeightType *) override
itkCellCommonTypedefs(HexahedronCell)
unsigned int GetDimension() const override
Represents a line segment for a Mesh.
static constexpr T max(const T &)
Represents a quadrilateral for a Mesh.
Represents a single vertex for a Mesh.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....