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:
00061 vtkTypeRevisionMacro(vtkImplicitSelectionLoop,vtkImplicitFunction);
00062 void PrintSelf(ostream& os, vtkIndent indent);
00063
00065 static vtkImplicitSelectionLoop *New();
00066
00068
00069 double EvaluateFunction(double x[3]);
00070 double EvaluateFunction(double x, double y, double z)
00071 {return this->vtkImplicitFunction::EvaluateFunction(x, y, z); } ;
00073
00075 void EvaluateGradient(double x[3], double n[3]);
00076
00078
00080 virtual void SetLoop(vtkPoints*);
00081 vtkGetObjectMacro(Loop,vtkPoints);
00083
00085
00088 vtkSetMacro(AutomaticNormalGeneration,int);
00089 vtkGetMacro(AutomaticNormalGeneration,int);
00090 vtkBooleanMacro(AutomaticNormalGeneration,int);
00092
00094
00096 vtkSetVector3Macro(Normal,double);
00097 vtkGetVectorMacro(Normal,double,3);
00099
00101 unsigned long GetMTime();
00102
00103 protected:
00104 vtkImplicitSelectionLoop();
00105 ~vtkImplicitSelectionLoop();
00106
00107 vtkPoints *Loop;
00108 double Normal[3];
00109 int AutomaticNormalGeneration;
00110
00111 private:
00112 void Initialize();
00113 vtkPolygon *Polygon;
00114
00115 double Origin[3];
00116 double Bounds[6];
00117 double DeltaX;
00118 double DeltaY;
00119 double DeltaZ;
00120
00121 vtkTimeStamp InitializationTime;
00122
00123 private:
00124 vtkImplicitSelectionLoop(const vtkImplicitSelectionLoop&);
00125 void operator=(const vtkImplicitSelectionLoop&);
00126 };
00127
00128 #endif
00129
00130