00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00041 #ifndef __vtkMeanValueCoordinatesInterpolator_h
00042 #define __vtkMeanValueCoordinatesInterpolator_h
00043
00044 #include "vtkObject.h"
00045
00046 class vtkPoints;
00047 class vtkIdList;
00048 class vtkCellArray;
00049 class vtkDataArray;
00050
00051
00052 class vtkMVCTriIterator;
00053 class vtkMVCPolyIterator;
00054
00055
00056 class VTK_FILTERING_EXPORT vtkMeanValueCoordinatesInterpolator : public vtkObject
00057 {
00058 public:
00060
00061 static vtkMeanValueCoordinatesInterpolator *New();
00062 vtkTypeMacro(vtkMeanValueCoordinatesInterpolator,vtkObject);
00063 void PrintSelf(ostream& os, vtkIndent indent);
00065
00067
00072 static void ComputeInterpolationWeights(double x[3], vtkPoints *pts,
00073 vtkIdList *tris, double *weights);
00075
00077
00083 static void ComputeInterpolationWeights(double x[3], vtkPoints *pts,
00084 vtkCellArray *tris, double *weights);
00085 protected:
00086 vtkMeanValueCoordinatesInterpolator();
00087 ~vtkMeanValueCoordinatesInterpolator();
00089
00091
00092 static void ComputeInterpolationWeightsForTriangleMesh(
00093 double x[3], vtkPoints *pts, vtkMVCTriIterator& iter, double *weights);
00095
00097
00099 static void ComputeInterpolationWeightsForPolygonMesh(
00100 double x[3], vtkPoints *pts, vtkMVCPolyIterator& iter, double *weights);
00102
00103
00104 private:
00105 vtkMeanValueCoordinatesInterpolator(const vtkMeanValueCoordinatesInterpolator&);
00106 void operator=(const vtkMeanValueCoordinatesInterpolator&);
00107 };
00108
00109 #endif