18 #ifndef itkHexahedronCell_h
19 #define itkHexahedronCell_h
43 template<
typename TCellInterface >
68 itkStaticConstMacro(NumberOfPoints,
unsigned int, 8);
69 itkStaticConstMacro(NumberOfVertices,
unsigned int, 8);
70 itkStaticConstMacro(NumberOfEdges,
unsigned int, 12);
71 itkStaticConstMacro(NumberOfFaces,
unsigned int, 6);
72 itkStaticConstMacro(CellDimension,
unsigned int, 3);
76 virtual CellGeometry
GetType(
void) const ITK_OVERRIDE
77 {
return Superclass::HEXAHEDRON_CELL; }
78 virtual void MakeCopy(CellAutoPointer &) const ITK_OVERRIDE;
81 virtual
unsigned int GetDimension(
void) const ITK_OVERRIDE;
83 virtual
unsigned int GetNumberOfPoints(
void) const ITK_OVERRIDE;
85 virtual CellFeatureCount GetNumberOfBoundaryFeatures(
int dimension) const ITK_OVERRIDE;
87 virtual
bool GetBoundaryFeature(
int dimension, CellFeatureIdentifier, CellAutoPointer &) ITK_OVERRIDE;
88 virtual
void SetPointIds(PointIdConstIterator first) ITK_OVERRIDE;
90 virtual
void SetPointIds(PointIdConstIterator first, PointIdConstIterator last) ITK_OVERRIDE;
92 virtual
void SetPointId(
int localId, PointIdentifier) ITK_OVERRIDE;
93 virtual PointIdIterator PointIdsBegin(
void) ITK_OVERRIDE;
95 virtual PointIdConstIterator PointIdsBegin(
void) const ITK_OVERRIDE;
97 virtual PointIdIterator PointIdsEnd(
void) ITK_OVERRIDE;
99 virtual PointIdConstIterator PointIdsEnd(
void) const ITK_OVERRIDE;
102 virtual CellFeatureCount GetNumberOfVertices() const;
104 virtual CellFeatureCount GetNumberOfEdges() const;
106 virtual CellFeatureCount GetNumberOfFaces() const;
108 virtual
bool GetVertex(CellFeatureIdentifier, VertexAutoPointer &);
109 virtual
bool GetEdge(CellFeatureIdentifier, EdgeAutoPointer &);
110 virtual
bool GetFace(CellFeatureIdentifier, FaceAutoPointer &);
113 virtual
bool EvaluatePosition(CoordRepType *,
118 InterpolationWeightType *) ITK_OVERRIDE;
125 PointIdentifier m_PointIds[NumberOfPoints];
127 void InterpolationDerivs(CoordRepType pcoords[3], CoordRepType derivs[24]);
128 void InterpolationFunctions(CoordRepType pcoords[3], InterpolationWeightType sf[8]);
129 void EvaluateLocation(
int &itkNotUsed(subId), PointsContainer * points, CoordRepType pcoords[3],
130 CoordRepType x[3], InterpolationWeightType * weights);
135 for (
unsigned int i = 0; i < itkGetStaticConstMacro(NumberOfPoints); i++ )
148 #ifndef ITK_MANUAL_INSTANTIATION
149 #include "itkHexahedronCell.hxx"
Represents a line segment for a Mesh.
~HexahedronCell() override
VertexType::SelfAutoPointer VertexAutoPointer
EdgeType::SelfAutoPointer EdgeAutoPointer
An abstract interface for cells.
FaceType::SelfAutoPointer FaceAutoPointer
static ITK_CONSTEXPR_FUNC T max(const T &)
virtual CellGeometry GetType(void) const override
#define itkCellCommonTypedefs(celltype)
Holds data defining the topological connections of the vertices and edges of a HexahedronCell.
Represents a hexahedron for a Mesh.
QuadrilateralCell< TCellInterface > FaceType
Represents a single vertex for a Mesh.
LineCell< TCellInterface > EdgeType
#define itkCellVisitMacro(TopologyId)
Represents a quadrilateral for a Mesh.
#define itkCellInheritedTypedefs(superclassArg)
VertexCell< TCellInterface > VertexType