18#ifndef itkHexahedronCell_h
19#define itkHexahedronCell_h
49template <
typename TCellInterface>
51 :
public TCellInterface
78 static constexpr unsigned int NumberOfPoints = 8;
79 static constexpr unsigned int NumberOfVertices = 8;
80 static constexpr unsigned int NumberOfEdges = 12;
81 static constexpr unsigned int NumberOfFaces = 6;
82 static constexpr unsigned int CellDimension = 3;
89 static constexpr unsigned int CellDimension3D = 3;
90 static constexpr unsigned int PointDimension3D = 3;
117 SetPointIds(PointIdConstIterator first, PointIdConstIterator last)
override;
134 virtual CellFeatureCount
137 virtual CellFeatureCount
140 virtual CellFeatureCount
157 InterpolationWeightType *)
override;
164 std::array<PointIdentifier, NumberOfPoints> m_PointIds{ MakeFilled<std::array<PointIdentifier, NumberOfPoints>>(
169 CoordRepType derivs[Self::CellDimension * Self::NumberOfPoints]);
174 PointsContainer * points,
175 CoordRepType pcoords[Self::CellDimension],
176 CoordRepType x[Self::CellDimension],
177 InterpolationWeightType * weights);
186#ifndef ITK_MANUAL_INSTANTIATION
187# 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....