18#ifndef itkHexahedronCell_h
19#define itkHexahedronCell_h
44template <
typename TCellInterface>
46 :
public TCellInterface
91 return CellGeometryEnum::HEXAHEDRON_CELL;
112 SetPointIds(PointIdConstIterator first, PointIdConstIterator last)
override;
129 virtual CellFeatureCount
132 virtual CellFeatureCount
135 virtual CellFeatureCount
152 InterpolationWeightType *)
override;
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"
static constexpr unsigned int CellDimension3D
unsigned int GetNumberOfPoints() const override
virtual bool GetFace(CellFeatureIdentifier, FaceAutoPointer &)
itkCellInheritedTypedefs(TCellInterface)
static constexpr unsigned int NumberOfFaces
CellFeatureCount GetNumberOfBoundaryFeatures(int dimension) const override
bool GetBoundaryFeature(int dimension, CellFeatureIdentifier, CellAutoPointer &) override
virtual bool GetVertex(CellFeatureIdentifier, VertexAutoPointer &)
std::array< PointIdentifier, NumberOfPoints > m_PointIds
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
static constexpr unsigned int CellDimension
PointIdConstIterator PointIdsBegin() const override
QuadrilateralCell< TCellInterface > FaceType
LineCell< TCellInterface > EdgeType
VertexCell< TCellInterface > VertexType
virtual CellFeatureCount GetNumberOfVertices() const
static constexpr unsigned int NumberOfVertices
typename FaceType::SelfAutoPointer FaceAutoPointer
PointIdIterator PointIdsBegin() override
itkCellVisitMacro(CellGeometryEnum::HEXAHEDRON_CELL)
static constexpr unsigned int NumberOfPoints
void SetPointIds(PointIdConstIterator first) override
static constexpr unsigned int PointDimension3D
void InterpolationFunctions(CoordinateType pcoords[Self::CellDimension], InterpolationWeightType sf[Self::NumberOfPoints])
virtual CellFeatureCount GetNumberOfFaces() const
PointIdIterator PointIdsEnd() override
void SetPointId(int localId, PointIdentifier) override
void EvaluateLocation(int &subId, PointsContainer *points, CoordinateType pcoords[Self::CellDimension], CoordinateType x[Self::CellDimension], InterpolationWeightType *weights)
bool EvaluatePosition(CoordinateType *, PointsContainer *, CoordinateType *, CoordinateType[], double *, InterpolationWeightType *) override
static constexpr unsigned int NumberOfEdges
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....
constexpr TContainer MakeFilled(typename TContainer::const_reference value)
CommonEnums::CellGeometry CellGeometryEnum