00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00056 #ifndef __vtkQuad_h
00057 #define __vtkQuad_h
00058
00059 #include "vtkCell.h"
00060 #include "vtkLine.h"
00061
00062 class VTK_COMMON_EXPORT vtkQuad : public vtkCell
00063 {
00064 public:
00065 static vtkQuad *New();
00066 vtkTypeMacro(vtkQuad,vtkCell);
00067
00069
00070 vtkCell *MakeObject();
00071 int GetCellType() {return VTK_QUAD;};
00072 int GetCellDimension() {return 2;};
00073 int GetNumberOfEdges() {return 4;};
00074 int GetNumberOfFaces() {return 0;};
00075 vtkCell *GetEdge(int edgeId);
00076 vtkCell *GetFace(int) {return 0;};
00077 int CellBoundary(int subId, float pcoords[3], vtkIdList *pts);
00078 void Contour(float value, vtkDataArray *cellScalars,
00079 vtkPointLocator *locator, vtkCellArray *verts,
00080 vtkCellArray *lines, vtkCellArray *polys,
00081 vtkPointData *inPd, vtkPointData *outPd,
00082 vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd);
00083 int EvaluatePosition(float x[3], float* closestPoint,
00084 int& subId, float pcoords[3],
00085 float& dist2, float *weights);
00086 void EvaluateLocation(int& subId, float pcoords[3], float x[3],
00087 float *weights);
00088 int IntersectWithLine(float p1[3], float p2[3], float tol, float& t,
00089 float x[3], float pcoords[3], int& subId);
00090 int Triangulate(int index, vtkIdList *ptIds, vtkPoints *pts);
00091 void Derivatives(int subId, float pcoords[3], float *values,
00092 int dim, float *derivs);
00094
00096
00098 void Clip(float value, vtkDataArray *cellScalars,
00099 vtkPointLocator *locator, vtkCellArray *polys,
00100 vtkPointData *inPd, vtkPointData *outPd,
00101 vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd,
00102 int insideOut);
00104
00106
00107 static void InterpolationFunctions(float pcoords[3], float sf[4]);
00108 static void InterpolationDerivs(float pcoords[3], float derivs[8]);
00110
00111
00112 protected:
00113 vtkQuad();
00114 ~vtkQuad();
00115
00116 vtkLine *Line;
00117
00118 private:
00119 vtkQuad(const vtkQuad&);
00120 void operator=(const vtkQuad&);
00121 };
00122
00123 #endif
00124
00125