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 CoordRepType derivs[Self::CellDimension * Self::NumberOfPoints]);
169 PointsContainer * points,
170 CoordRepType pcoords[Self::CellDimension],
171 CoordRepType 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
void InterpolationDerivs(CoordRepType pcoords[Self::CellDimension], CoordRepType derivs[Self::CellDimension *Self::NumberOfPoints])
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 &)
virtual CellFeatureCount GetNumberOfEdges() const
PointIdConstIterator PointIdsEnd() const override
virtual bool GetEdge(CellFeatureIdentifier, EdgeAutoPointer &)
void InterpolationFunctions(CoordRepType pcoords[Self::CellDimension], InterpolationWeightType sf[Self::NumberOfPoints])
void MakeCopy(CellAutoPointer &) const override
~HexahedronCell() override=default
bool EvaluatePosition(CoordRepType *, PointsContainer *, CoordRepType *, CoordRepType[], double *, InterpolationWeightType *) override
typename EdgeType::SelfAutoPointer EdgeAutoPointer
typename VertexType::SelfAutoPointer VertexAutoPointer
void SetPointIds(PointIdConstIterator first, PointIdConstIterator last) override
CellGeometryEnum GetType() const override
void EvaluateLocation(int &, PointsContainer *points, CoordRepType pcoords[Self::CellDimension], CoordRepType x[Self::CellDimension], InterpolationWeightType *weights)
PointIdConstIterator PointIdsBegin() const override
virtual CellFeatureCount GetNumberOfVertices() const
typename FaceType::SelfAutoPointer FaceAutoPointer
PointIdIterator PointIdsBegin() override
itkCellVisitMacro(CellGeometryEnum::HEXAHEDRON_CELL)
void SetPointIds(PointIdConstIterator first) override
virtual CellFeatureCount GetNumberOfFaces() const
PointIdIterator PointIdsEnd() override
void SetPointId(int localId, PointIdentifier) 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....