18 #ifndef itkHexahedronCell_h
19 #define itkHexahedronCell_h
43 template <
typename TCellInterface>
45 :
public TCellInterface
72 static constexpr
unsigned int NumberOfPoints = 8;
73 static constexpr
unsigned int NumberOfVertices = 8;
74 static constexpr
unsigned int NumberOfEdges = 12;
75 static constexpr
unsigned int NumberOfFaces = 6;
76 static constexpr
unsigned int CellDimension = 3;
85 MakeCopy(CellAutoPointer &)
const override;
89 GetDimension()
const override;
92 GetNumberOfPoints()
const override;
95 GetNumberOfBoundaryFeatures(
int dimension)
const override;
98 GetBoundaryFeature(
int dimension, CellFeatureIdentifier, CellAutoPointer &)
override;
100 SetPointIds(PointIdConstIterator first)
override;
103 SetPointIds(PointIdConstIterator first, PointIdConstIterator last)
override;
106 SetPointId(
int localId, PointIdentifier)
override;
108 PointIdsBegin()
override;
111 PointIdsBegin()
const override;
114 PointIdsEnd()
override;
117 PointIdsEnd()
const override;
120 virtual CellFeatureCount
121 GetNumberOfVertices()
const;
123 virtual CellFeatureCount
124 GetNumberOfEdges()
const;
126 virtual CellFeatureCount
127 GetNumberOfFaces()
const;
130 GetVertex(CellFeatureIdentifier, VertexAutoPointer &);
132 GetEdge(CellFeatureIdentifier, EdgeAutoPointer &);
134 GetFace(CellFeatureIdentifier, FaceAutoPointer &);
138 EvaluatePosition(CoordRepType *,
143 InterpolationWeightType *)
override;
150 PointIdentifier m_PointIds[NumberOfPoints];
153 InterpolationDerivs(CoordRepType pcoords[Self::CellDimension],
154 CoordRepType derivs[Self::CellDimension * Self::NumberOfPoints]);
156 InterpolationFunctions(CoordRepType pcoords[Self::CellDimension], InterpolationWeightType sf[Self::NumberOfPoints]);
158 EvaluateLocation(
int & itkNotUsed(subId),
159 PointsContainer * points,
160 CoordRepType pcoords[Self::CellDimension],
161 CoordRepType x[Self::CellDimension],
162 InterpolationWeightType * weights);
167 for (
unsigned int i = 0; i < Self::NumberOfPoints; i++)
177 #ifndef ITK_MANUAL_INSTANTIATION
178 # include "itkHexahedronCell.hxx"