00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00037 #ifndef __vtkGenericSubdivisionErrorMetric_h
00038 #define __vtkGenericSubdivisionErrorMetric_h
00039
00040 #include "vtkObject.h"
00041
00042 class vtkGenericAttributeCollection;
00043 class vtkGenericAdaptorCell;
00044 class vtkGenericDataSet;
00045
00046 class VTK_FILTERING_EXPORT vtkGenericSubdivisionErrorMetric : public vtkObject
00047 {
00048 public:
00050
00051 vtkTypeMacro(vtkGenericSubdivisionErrorMetric,vtkObject);
00052 void PrintSelf(ostream& os, vtkIndent indent);
00054
00056
00069 virtual int RequiresEdgeSubdivision(double *leftPoint, double *midPoint,
00070 double *rightPoint, double alpha)=0;
00072
00074
00083 virtual double GetError(double *leftPoint, double *midPoint,
00084 double *rightPoint, double alpha)=0;
00086
00088
00089 void SetGenericCell(vtkGenericAdaptorCell *cell);
00090 vtkGetObjectMacro(GenericCell,vtkGenericAdaptorCell);
00092
00094
00095 void SetDataSet(vtkGenericDataSet *ds);
00096 vtkGetObjectMacro(DataSet,vtkGenericDataSet);
00098
00099 protected:
00100 vtkGenericSubdivisionErrorMetric();
00101 ~vtkGenericSubdivisionErrorMetric();
00102
00103 vtkGenericAdaptorCell *GenericCell;
00104 vtkGenericDataSet *DataSet;
00105
00106 private:
00107 vtkGenericSubdivisionErrorMetric(const vtkGenericSubdivisionErrorMetric&);
00108 void operator=(const vtkGenericSubdivisionErrorMetric&);
00109 };
00110
00111 #endif