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