Graphics/vtkClipVolume.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00071 #ifndef __vtkClipVolume_h
00072 #define __vtkClipVolume_h
00073
00074 #include "vtkStructuredPointsToUnstructuredGridFilter.h"
00075
00076 class vtkCellData;
00077 class vtkDataArray;
00078 class vtkIdList;
00079 class vtkImplicitFunction;
00080 class vtkMergePoints;
00081 class vtkOrderedTriangulator;
00082 class vtkPointData;
00083 class vtkPointLocator;
00084 class vtkPoints;
00085 class vtkUnstructuredGrid;
00086
00087 class VTK_GRAPHICS_EXPORT vtkClipVolume : public vtkStructuredPointsToUnstructuredGridFilter
00088 {
00089 public:
00090 vtkTypeRevisionMacro(vtkClipVolume,vtkStructuredPointsToUnstructuredGridFilter);
00091 void PrintSelf(ostream& os, vtkIndent indent);
00092
00096 static vtkClipVolume *New();
00097
00099
00102 vtkSetMacro(Value,float);
00103 vtkGetMacro(Value,float);
00105
00107
00112 vtkSetMacro(InsideOut,int);
00113 vtkGetMacro(InsideOut,int);
00114 vtkBooleanMacro(InsideOut,int);
00116
00118
00121 virtual void SetClipFunction(vtkImplicitFunction*);
00122 vtkGetObjectMacro(ClipFunction,vtkImplicitFunction);
00124
00126
00130 vtkSetMacro(GenerateClipScalars,int);
00131 vtkGetMacro(GenerateClipScalars,int);
00132 vtkBooleanMacro(GenerateClipScalars,int);
00134
00136
00138 vtkSetMacro(GenerateClippedOutput,int);
00139 vtkGetMacro(GenerateClippedOutput,int);
00140 vtkBooleanMacro(GenerateClippedOutput,int);
00142
00144 vtkUnstructuredGrid *GetClippedOutput();
00145
00147
00150 vtkSetClampMacro(MergeTolerance,float,0.0001,0.25);
00151 vtkGetMacro(MergeTolerance,float);
00153
00155
00157 void SetLocator(vtkPointLocator *locator);
00158 vtkGetObjectMacro(Locator,vtkPointLocator);
00160
00163 void CreateDefaultLocator();
00164
00166 unsigned long int GetMTime();
00167
00168 protected:
00169 vtkClipVolume(vtkImplicitFunction *cf=NULL);
00170 ~vtkClipVolume();
00171
00172 void Execute();
00173 void ClipVoxel(float value, vtkDataArray *cellScalars, int flip,
00174 float origin[3], float spacing[3], vtkIdList *cellIds,
00175 vtkPoints *cellPts, vtkPointData *inPD, vtkPointData *outPD,
00176 vtkCellData *inCD, vtkIdType cellId, vtkCellData *outCD,
00177 vtkCellData *clippedCD);
00178 vtkImplicitFunction *ClipFunction;
00179 vtkPointLocator *Locator;
00180 int InsideOut;
00181 float Value;
00182 int GenerateClipScalars;
00183 float MergeTolerance;
00184
00185 int GenerateClippedOutput;
00186 vtkUnstructuredGrid *ClippedOutput;
00187
00188 private:
00189 vtkUnstructuredGrid *Mesh;
00190 vtkOrderedTriangulator *Triangulator;
00191
00192 private:
00193 vtkClipVolume(const vtkClipVolume&);
00194 void operator=(const vtkClipVolume&);
00195 };
00196
00197 #endif