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
00059 #ifndef __vtkClipVolume_h
00060 #define __vtkClipVolume_h
00061
00062 #include "vtkStructuredPointsToUnstructuredGridFilter.h"
00063
00064 class vtkCellData;
00065 class vtkDataArray;
00066 class vtkIdList;
00067 class vtkImplicitFunction;
00068 class vtkMergePoints;
00069 class vtkOrderedTriangulator;
00070 class vtkPointData;
00071 class vtkPointLocator;
00072 class vtkPoints;
00073 class vtkUnstructuredGrid;
00074
00075 class VTK_GRAPHICS_EXPORT vtkClipVolume : public vtkStructuredPointsToUnstructuredGridFilter
00076 {
00077 public:
00078 vtkTypeRevisionMacro(vtkClipVolume,vtkStructuredPointsToUnstructuredGridFilter);
00079 void PrintSelf(ostream& os, vtkIndent indent);
00080
00084 static vtkClipVolume *New();
00085
00087
00090 vtkSetMacro(Value,float);
00091 vtkGetMacro(Value,float);
00093
00095
00100 vtkSetMacro(InsideOut,int);
00101 vtkGetMacro(InsideOut,int);
00102 vtkBooleanMacro(InsideOut,int);
00104
00106
00109 virtual void SetClipFunction(vtkImplicitFunction*);
00110 vtkGetObjectMacro(ClipFunction,vtkImplicitFunction);
00112
00114
00118 vtkSetMacro(GenerateClipScalars,int);
00119 vtkGetMacro(GenerateClipScalars,int);
00120 vtkBooleanMacro(GenerateClipScalars,int);
00122
00124
00126 vtkSetMacro(GenerateClippedOutput,int);
00127 vtkGetMacro(GenerateClippedOutput,int);
00128 vtkBooleanMacro(GenerateClippedOutput,int);
00130
00132 vtkUnstructuredGrid *GetClippedOutput();
00133
00135
00138 vtkSetClampMacro(MergeTolerance,float,0.0001,0.25);
00139 vtkGetMacro(MergeTolerance,float);
00141
00143
00145 void SetLocator(vtkPointLocator *locator);
00146 vtkGetObjectMacro(Locator,vtkPointLocator);
00148
00151 void CreateDefaultLocator();
00152
00154 unsigned long int GetMTime();
00155
00156 protected:
00157 vtkClipVolume(vtkImplicitFunction *cf=NULL);
00158 ~vtkClipVolume();
00159
00160 void Execute();
00161 void ClipVoxel(float value, vtkDataArray *cellScalars, int flip,
00162 float origin[3], float spacing[3], vtkIdList *cellIds,
00163 vtkPoints *cellPts, vtkPointData *inPD, vtkPointData *outPD,
00164 vtkCellData *inCD, vtkIdType cellId, vtkCellData *outCD,
00165 vtkCellData *clippedCD);
00166 vtkImplicitFunction *ClipFunction;
00167 vtkPointLocator *Locator;
00168 int InsideOut;
00169 float Value;
00170 int GenerateClipScalars;
00171 float MergeTolerance;
00172
00173 int GenerateClippedOutput;
00174 vtkUnstructuredGrid *ClippedOutput;
00175
00176 private:
00177 vtkUnstructuredGrid *Mesh;
00178 vtkOrderedTriangulator *Triangulator;
00179
00180 private:
00181 vtkClipVolume(const vtkClipVolume&);
00182 void operator=(const vtkClipVolume&);
00183 };
00184
00185 #endif