00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00026 #ifndef __vtkBezierContourLineInterpolator_h
00027 #define __vtkBezierContourLineInterpolator_h
00028
00029 #include "vtkContourLineInterpolator.h"
00030
00031 class VTK_WIDGETS_EXPORT vtkBezierContourLineInterpolator
00032 : public vtkContourLineInterpolator
00033 {
00034 public:
00035
00037 static vtkBezierContourLineInterpolator *New();
00038
00040
00041 vtkTypeRevisionMacro(vtkBezierContourLineInterpolator,vtkContourLineInterpolator);
00042 void PrintSelf(ostream& os, vtkIndent indent);
00044
00045 virtual int InterpolateLine( vtkRenderer *ren,
00046 vtkContourRepresentation *rep,
00047 int idx1, int idx2 );
00048
00050
00055 vtkSetClampMacro(MaximumCurveError, double, 0.0, VTK_DOUBLE_MAX);
00056 vtkGetMacro(MaximumCurveError, double);
00058
00060
00062 vtkSetClampMacro(MaximumCurveLineSegments, int, 1, 1000);
00063 vtkGetMacro(MaximumCurveLineSegments, int);
00065
00067
00075 virtual void GetSpan( int nodeIndex, vtkIntArray *nodeIndices,
00076 vtkContourRepresentation *rep );
00078
00079 protected:
00080 vtkBezierContourLineInterpolator();
00081 ~vtkBezierContourLineInterpolator();
00082
00083 void ComputeMidpoint( double p1[3], double p2[3], double mid[3] )
00084 {
00085 mid[0] = (p1[0] + p2[0])/2;
00086 mid[1] = (p1[1] + p2[1])/2;
00087 mid[2] = (p1[2] + p2[2])/2;
00088 }
00089
00090 double MaximumCurveError;
00091 int MaximumCurveLineSegments;
00092
00093 private:
00094 vtkBezierContourLineInterpolator(const vtkBezierContourLineInterpolator&);
00095 void operator=(const vtkBezierContourLineInterpolator&);
00096 };
00097
00098 #endif