18 #ifndef __itkHexahedronCell_h
19 #define __itkHexahedronCell_h
43 template<
typename TCellInterface >
68 enum { NumberOfPoints = 8,
75 virtual CellGeometry GetType(
void)
const
76 {
return Superclass::HEXAHEDRON_CELL; }
77 virtual void MakeCopy(CellAutoPointer &)
const;
82 virtual unsigned int GetNumberOfPoints(
void)
const;
84 virtual CellFeatureCount GetNumberOfBoundaryFeatures(
int dimension)
const;
86 virtual bool GetBoundaryFeature(
int dimension, CellFeatureIdentifier, CellAutoPointer &);
87 virtual void SetPointIds(PointIdConstIterator first);
89 virtual void SetPointIds(PointIdConstIterator first, PointIdConstIterator last);
91 virtual void SetPointId(
int localId, PointIdentifier);
92 virtual PointIdIterator PointIdsBegin(
void);
94 virtual PointIdConstIterator PointIdsBegin(
void)
const;
96 virtual PointIdIterator PointIdsEnd(
void);
98 virtual PointIdConstIterator PointIdsEnd(
void)
const;
101 virtual CellFeatureCount GetNumberOfVertices(
void)
const;
103 virtual CellFeatureCount GetNumberOfEdges(
void)
const;
105 virtual CellFeatureCount GetNumberOfFaces(
void)
const;
107 virtual bool GetVertex(CellFeatureIdentifier, VertexAutoPointer &);
108 virtual bool GetEdge(CellFeatureIdentifier, EdgeAutoPointer &);
109 virtual bool GetFace(CellFeatureIdentifier, FaceAutoPointer &);
112 virtual bool EvaluatePosition(CoordRepType *,
117 InterpolationWeightType *);
124 PointIdentifier m_PointIds[NumberOfPoints];
126 void InterpolationDerivs(CoordRepType pcoords[3], CoordRepType derivs[24]);
127 void InterpolationFunctions(CoordRepType pcoords[3], InterpolationWeightType sf[8]);
128 void EvaluateLocation(
int &itkNotUsed(subId), PointsContainer * points, CoordRepType pcoords[3],
129 CoordRepType x[3], InterpolationWeightType * weights);
133 for (
unsigned int i = 0; i < itkGetStaticConstMacro(NumberOfPoints); i++ )
142 void operator=(
const Self &);
146 #ifndef ITK_MANUAL_INSTANTIATION
147 #include "itkHexahedronCell.hxx"