18 #ifndef __itkQuadrilateralCell_h
19 #define __itkQuadrilateralCell_h
38 template<
typename TCellInterface >
59 itkStaticConstMacro(NumberOfPoints,
unsigned int, 4);
60 itkStaticConstMacro(NumberOfVertices,
unsigned int, 4);
61 itkStaticConstMacro(NumberOfEdges,
unsigned int, 4);
62 itkStaticConstMacro(CellDimension,
unsigned int, 2);
66 virtual CellGeometry GetType(
void)
const
67 {
return Superclass::QUADRILATERAL_CELL; }
68 virtual void MakeCopy(CellAutoPointer &)
const;
73 virtual unsigned int GetNumberOfPoints(
void)
const;
75 virtual CellFeatureCount GetNumberOfBoundaryFeatures(
int dimension)
const;
77 virtual bool GetBoundaryFeature(
int dimension, CellFeatureIdentifier, CellAutoPointer &);
78 virtual void SetPointIds(PointIdConstIterator first);
80 virtual void SetPointIds(PointIdConstIterator first,
81 PointIdConstIterator last);
83 virtual void SetPointId(
int localId, PointIdentifier);
84 virtual PointIdIterator PointIdsBegin(
void);
86 virtual PointIdConstIterator PointIdsBegin(
void)
const;
88 virtual PointIdIterator PointIdsEnd(
void);
90 virtual PointIdConstIterator PointIdsEnd(
void)
const;
93 virtual CellFeatureCount GetNumberOfVertices(
void)
const;
95 virtual CellFeatureCount GetNumberOfEdges(
void)
const;
97 virtual bool GetVertex(CellFeatureIdentifier, VertexAutoPointer &);
98 virtual bool GetEdge(CellFeatureIdentifier, EdgeAutoPointer &);
101 virtual bool EvaluatePosition(CoordRepType *,
106 InterpolationWeightType *);
114 for ( PointIdentifier i = 0; i < itkGetStaticConstMacro(NumberOfPoints); i++ )
124 PointIdentifier m_PointIds[NumberOfPoints];
126 void InterpolationDerivs(CoordRepType pcoords[2], CoordRepType derivs[8]);
127 void InterpolationFunctions(CoordRepType pcoords[2], InterpolationWeightType sf[4]);
128 void EvaluateLocation(
int &itkNotUsed(subId), PointsContainer * points, CoordRepType pcoords[2],
129 CoordRepType x[2], InterpolationWeightType * weights);
132 void operator=(
const Self &);
136 #ifndef ITK_MANUAL_INSTANTIATION
137 #include "itkQuadrilateralCell.hxx"