00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00062 #ifndef __vtkClipDataSet_h
00063 #define __vtkClipDataSet_h
00064
00065 #include "vtkUnstructuredGridAlgorithm.h"
00066
00067 class vtkImplicitFunction;
00068
00069 class vtkPointLocator;
00070
00071 class VTK_GRAPHICS_EXPORT vtkClipDataSet : public vtkUnstructuredGridAlgorithm
00072 {
00073 public:
00074 vtkTypeRevisionMacro(vtkClipDataSet,vtkUnstructuredGridAlgorithm);
00075 void PrintSelf(ostream& os, vtkIndent indent);
00076
00079 static vtkClipDataSet *New();
00080
00082
00085 vtkSetMacro(Value,double);
00086 vtkGetMacro(Value,double);
00088
00090
00095 vtkSetMacro(InsideOut,int);
00096 vtkGetMacro(InsideOut,int);
00097 vtkBooleanMacro(InsideOut,int);
00099
00101
00104 virtual void SetClipFunction(vtkImplicitFunction*);
00105 vtkGetObjectMacro(ClipFunction,vtkImplicitFunction);
00107
00109
00113 vtkSetMacro(GenerateClipScalars,int);
00114 vtkGetMacro(GenerateClipScalars,int);
00115 vtkBooleanMacro(GenerateClipScalars,int);
00117
00119
00121 vtkSetMacro(GenerateClippedOutput,int);
00122 vtkGetMacro(GenerateClippedOutput,int);
00123 vtkBooleanMacro(GenerateClippedOutput,int);
00125
00127
00131 vtkSetClampMacro(MergeTolerance,double,0.0001,0.25);
00132 vtkGetMacro(MergeTolerance,double);
00134
00136 vtkUnstructuredGrid *GetClippedOutput();
00137
00139
00141 void SetLocator(vtkPointLocator *locator);
00142 vtkGetObjectMacro(Locator,vtkPointLocator);
00144
00147 void CreateDefaultLocator();
00148
00150 unsigned long GetMTime();
00151
00152 protected:
00153 vtkClipDataSet(vtkImplicitFunction *cf=NULL);
00154 ~vtkClipDataSet();
00155
00156 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00157 virtual int FillInputPortInformation(int port, vtkInformation *info);
00158 vtkImplicitFunction *ClipFunction;
00159
00160 vtkPointLocator *Locator;
00161 int InsideOut;
00162 double Value;
00163 int GenerateClipScalars;
00164
00165 int GenerateClippedOutput;
00166 double MergeTolerance;
00167
00168
00169 void ClipVolume(vtkDataSet *input, vtkUnstructuredGrid *output);
00170
00171 private:
00172 vtkClipDataSet(const vtkClipDataSet&);
00173 void operator=(const vtkClipDataSet&);
00174 };
00175
00176 #endif