Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/Common/vtkQuadraticQuad.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkQuadraticQuad.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00039 #ifndef __vtkQuadraticQuad_h 00040 #define __vtkQuadraticQuad_h 00041 00042 #include "vtkNonLinearCell.h" 00043 00044 class vtkPolyData; 00045 class vtkQuadraticEdge; 00046 class vtkQuad; 00047 class vtkPointData; 00048 class vtkCellData; 00049 00050 class VTK_COMMON_EXPORT vtkQuadraticQuad : public vtkNonLinearCell 00051 { 00052 public: 00053 static vtkQuadraticQuad *New(); 00054 vtkTypeRevisionMacro(vtkQuadraticQuad,vtkNonLinearCell); 00055 00057 00059 int GetCellType() {return VTK_QUADRATIC_QUAD;}; 00060 int GetCellDimension() {return 2;} 00061 int GetNumberOfEdges() {return 4;} 00062 int GetNumberOfFaces() {return 0;} 00063 vtkCell *GetEdge(int); 00064 vtkCell *GetFace(int) {return 0;} 00066 00067 int CellBoundary(int subId, float pcoords[3], vtkIdList *pts); 00068 void Contour(float value, vtkDataArray *cellScalars, 00069 vtkPointLocator *locator, vtkCellArray *verts, 00070 vtkCellArray *lines, vtkCellArray *polys, 00071 vtkPointData *inPd, vtkPointData *outPd, 00072 vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd); 00073 int EvaluatePosition(float x[3], float* closestPoint, 00074 int& subId, float pcoords[3], 00075 float& dist2, float *weights); 00076 void EvaluateLocation(int& subId, float pcoords[3], float x[3], 00077 float *weights); 00078 int Triangulate(int index, vtkIdList *ptIds, vtkPoints *pts); 00079 void Derivatives(int subId, float pcoords[3], float *values, 00080 int dim, float *derivs); 00081 00083 00085 void Clip(float value, vtkDataArray *cellScalars, 00086 vtkPointLocator *locator, vtkCellArray *polys, 00087 vtkPointData *inPd, vtkPointData *outPd, 00088 vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd, 00089 int insideOut); 00091 00093 00095 int IntersectWithLine(float p1[3], float p2[3], float tol, float& t, 00096 float x[3], float pcoords[3], int& subId); 00098 00099 00101 00102 static void InterpolationFunctions(float pcoords[3], float weights[8]); 00103 static void InterpolationDerivs(float pcoords[3], float derivs[16]); 00105 00106 protected: 00107 vtkQuadraticQuad(); 00108 ~vtkQuadraticQuad(); 00109 00110 vtkQuadraticEdge *Edge; 00111 vtkQuad *Quad; 00112 vtkPointData *PointData; 00113 vtkCellData *CellData; 00114 vtkFloatArray *Scalars; 00115 00116 void Subdivide(float *weights); 00117 void InterpolateAttributes(vtkPointData *inPd, vtkCellData *inCd, 00118 vtkIdType cellId, float *weights); 00119 00120 private: 00121 vtkQuadraticQuad(const vtkQuadraticQuad&); // Not implemented. 00122 void operator=(const vtkQuadraticQuad&); // Not implemented. 00123 }; 00124 00125 #endif 00126 00127