61 #ifndef __vtkGenericAdaptorCell_h
62 #define __vtkGenericAdaptorCell_h
65 #include "vtkCommonDataModelModule.h"
77 class vtkGenericCellIterator;
78 class vtkIncrementalPointLocator;
79 class vtkContourValues;
80 class vtkImplicitFunction;
81 class vtkGenericCellTessellator;
82 class vtkGenericAttributeCollection;
83 class vtkGenericAttribute;
84 class vtkGenericPointIterator;
86 class vtkOrderedTriangulator;
105 virtual int IsInDataSet()=0;
111 virtual int GetType()=0;
115 virtual int GetDimension() = 0;
119 virtual int GetGeometryOrder()=0;
123 int IsGeometryLinear();
127 virtual int GetAttributeOrder(vtkGenericAttribute *a)=0;
132 virtual int GetHighestOrderAttribute(vtkGenericAttributeCollection *ac);
136 int IsAttributeLinear(vtkGenericAttribute *a);
139 virtual int IsPrimary()=0;
143 virtual int GetNumberOfPoints()=0;
153 virtual int GetNumberOfBoundaries(
int dim=-1)=0;
163 virtual int GetNumberOfDOFNodes()=0;
166 virtual void GetPointIterator(vtkGenericPointIterator *it)=0;
170 virtual vtkGenericCellIterator *NewCellIterator()=0;
177 virtual void GetBoundaryIterator(vtkGenericCellIterator *boundaries,
188 virtual void CountEdgeNeighbors(
int* sharing ) = 0;
199 vtkGenericCellIterator *neighbors)=0;
207 virtual int FindClosestBoundary(
int subId,
209 vtkGenericCellIterator* &boundary)=0;
221 virtual int EvaluatePosition(
double x[3],
222 double *closestPoint,
234 virtual void EvaluateLocation(
int subId,
246 virtual void InterpolateTuple(vtkGenericAttribute *a,
double pcoords[3],
257 virtual void InterpolateTuple(vtkGenericAttributeCollection *c,
292 virtual void Contour(vtkContourValues *values,
293 vtkImplicitFunction *f,
294 vtkGenericAttributeCollection *attributes,
295 vtkGenericCellTessellator *tess,
296 vtkIncrementalPointLocator *locator,
302 vtkPointData *internalPd,
303 vtkPointData *secondaryPd,
338 virtual void Clip(
double value,
339 vtkImplicitFunction *f,
340 vtkGenericAttributeCollection *attributes,
341 vtkGenericCellTessellator *tess,
343 vtkIncrementalPointLocator *locator,
347 vtkPointData *internalPd,
348 vtkPointData *secondaryPd,
359 virtual int IntersectWithLine(
double p1[3],
378 virtual void Derivatives(
int subId,
380 vtkGenericAttribute *attribute,
386 virtual void GetBounds(
double bounds[6])=0;
391 virtual double *GetBounds();
395 virtual double GetLength2();
401 virtual int GetParametricCenter(
double pcoords[3])=0;
409 virtual double GetParametricDistance(
double pcoords[3])=0;
419 virtual double *GetParametricCoords()=0;
436 virtual void Tessellate(vtkGenericAttributeCollection *attributes,
437 vtkGenericCellTessellator *tess,
439 vtkIncrementalPointLocator *locator,
441 vtkPointData *internalPd,
451 virtual int IsFaceOnBoundary(
vtkIdType faceId) = 0;
455 virtual int IsOnBoundary() = 0;
460 virtual void GetPointIds(
vtkIdType *
id) = 0;
469 virtual void TriangulateFace(vtkGenericAttributeCollection *attributes,
470 vtkGenericCellTessellator *tess,
int index,
472 vtkIncrementalPointLocator *locator,
474 vtkPointData *internalPd,
483 virtual int *GetFaceArray(
int faceId)=0;
489 virtual int GetNumberOfVerticesOnFace(
int faceId)=0;
496 virtual int *GetEdgeArray(
int edgeId)=0;
507 void AllocateTuples(
int size);
abstract base class for most VTK objects
vtkCellArray * InternalCellArray
represent and manipulate cell attribute data
vtkDoubleArray * PointDataScalars
dynamic, self-adjusting array of double
virtual void PrintSelf(ostream &os, vtkIndent indent)
a simple class to control print indentation
list of point or cell ids
vtkDoubleArray * InternalScalars
dynamic, self-adjusting array of unsigned char
object to represent cell connectivity
vtkDoubleArray * InternalPoints
represent and manipulate 3D points