00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00063 #ifndef __vtkGenericClip_h
00064 #define __vtkGenericClip_h
00065
00066 #include "vtkUnstructuredGridAlgorithm.h"
00067
00068 class vtkImplicitFunction;
00069
00070 class vtkPointData;
00071 class vtkCellData;
00072 class vtkIncrementalPointLocator;
00073
00074 class VTK_GENERIC_FILTERING_EXPORT vtkGenericClip : public vtkUnstructuredGridAlgorithm
00075 {
00076 public:
00077 vtkTypeMacro(vtkGenericClip,vtkUnstructuredGridAlgorithm);
00078 void PrintSelf(ostream& os, vtkIndent indent);
00079
00082 static vtkGenericClip *New();
00083
00085
00088 vtkSetMacro(Value,double);
00089 vtkGetMacro(Value,double);
00091
00093
00098 vtkSetMacro(InsideOut,int);
00099 vtkGetMacro(InsideOut,int);
00100 vtkBooleanMacro(InsideOut,int);
00102
00104
00107 virtual void SetClipFunction(vtkImplicitFunction*);
00108 vtkGetObjectMacro(ClipFunction,vtkImplicitFunction);
00110
00112
00116 vtkSetMacro(GenerateClipScalars,int);
00117 vtkGetMacro(GenerateClipScalars,int);
00118 vtkBooleanMacro(GenerateClipScalars,int);
00120
00122
00124 vtkSetMacro(GenerateClippedOutput,int);
00125 vtkGetMacro(GenerateClippedOutput,int);
00126 vtkBooleanMacro(GenerateClippedOutput,int);
00128
00130
00134 vtkSetClampMacro(MergeTolerance,double,0.0001,0.25);
00135 vtkGetMacro(MergeTolerance,double);
00137
00139
00140 vtkUnstructuredGrid *GetClippedOutput();
00141 virtual int GetNumberOfOutputs();
00143
00145
00147 void SetLocator(vtkIncrementalPointLocator *locator);
00148 vtkGetObjectMacro(Locator,vtkIncrementalPointLocator);
00150
00153 void CreateDefaultLocator();
00154
00156 unsigned long GetMTime();
00157
00159
00161 vtkGetStringMacro(InputScalarsSelection);
00162 void SelectInputScalars(const char *fieldName)
00163 {this->SetInputScalarsSelection(fieldName);}
00165
00166 protected:
00167 vtkGenericClip(vtkImplicitFunction *cf=NULL);
00168 ~vtkGenericClip();
00169
00170 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00171 int FillInputPortInformation(int, vtkInformation*);
00172
00173 vtkImplicitFunction *ClipFunction;
00174
00175 vtkIncrementalPointLocator *Locator;
00176 int InsideOut;
00177 double Value;
00178 int GenerateClipScalars;
00179
00180 int GenerateClippedOutput;
00181 double MergeTolerance;
00182
00183 char *InputScalarsSelection;
00184 vtkSetStringMacro(InputScalarsSelection);
00185
00186
00187 vtkPointData *InternalPD;
00188 vtkPointData *SecondaryPD;
00189 vtkCellData *SecondaryCD;
00190
00191 private:
00192 vtkGenericClip(const vtkGenericClip&);
00193 void operator=(const vtkGenericClip&);
00194 };
00195
00196 #endif