00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00050 #ifndef __vtkImplicitSelectionLoop_h
00051 #define __vtkImplicitSelectionLoop_h
00052
00053 #include "vtkImplicitFunction.h"
00054
00055 class vtkPoints;
00056 class vtkPolygon;
00057
00058 class VTK_FILTERING_EXPORT vtkImplicitSelectionLoop : public vtkImplicitFunction
00059 {
00060 public:
00062
00063 vtkTypeMacro(vtkImplicitSelectionLoop,vtkImplicitFunction);
00064 void PrintSelf(ostream& os, vtkIndent indent);
00066
00068 static vtkImplicitSelectionLoop *New();
00069
00071
00072 double EvaluateFunction(double x[3]);
00073 double EvaluateFunction(double x, double y, double z)
00074 {return this->vtkImplicitFunction::EvaluateFunction(x, y, z); } ;
00076
00078 void EvaluateGradient(double x[3], double n[3]);
00079
00081
00083 virtual void SetLoop(vtkPoints*);
00084 vtkGetObjectMacro(Loop,vtkPoints);
00086
00088
00091 vtkSetMacro(AutomaticNormalGeneration,int);
00092 vtkGetMacro(AutomaticNormalGeneration,int);
00093 vtkBooleanMacro(AutomaticNormalGeneration,int);
00095
00097
00099 vtkSetVector3Macro(Normal,double);
00100 vtkGetVectorMacro(Normal,double,3);
00102
00104 unsigned long GetMTime();
00105
00106 protected:
00107 vtkImplicitSelectionLoop();
00108 ~vtkImplicitSelectionLoop();
00109
00110 vtkPoints *Loop;
00111 double Normal[3];
00112 int AutomaticNormalGeneration;
00113
00114 private:
00115 void Initialize();
00116 vtkPolygon *Polygon;
00117
00118 double Origin[3];
00119 double Bounds[6];
00120 double DeltaX;
00121 double DeltaY;
00122 double DeltaZ;
00123
00124 vtkTimeStamp InitializationTime;
00125
00126 private:
00127 vtkImplicitSelectionLoop(const vtkImplicitSelectionLoop&);
00128 void operator=(const vtkImplicitSelectionLoop&);
00129 };
00130
00131 #endif
00132
00133