VTK
vtkClipVolume.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkClipVolume.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
63 #ifndef vtkClipVolume_h
64 #define vtkClipVolume_h
65 
66 #include "vtkFiltersGeneralModule.h" // For export macro
68 
69 class vtkCellData;
70 class vtkDataArray;
71 class vtkIdList;
73 class vtkMergePoints;
75 class vtkPointData;
77 class vtkPoints;
79 class vtkCell;
80 class vtkTetra;
81 class vtkCellArray;
82 class vtkIdTypeArray;
84 
86 {
87 public:
89  void PrintSelf(ostream& os, vtkIndent indent);
90 
93  static vtkClipVolume *New();
94 
96 
99  vtkSetMacro(Value,double);
100  vtkGetMacro(Value,double);
102 
104 
109  vtkSetMacro(InsideOut,int);
110  vtkGetMacro(InsideOut,int);
111  vtkBooleanMacro(InsideOut,int);
113 
115 
121 
123 
127  vtkSetMacro(GenerateClipScalars,int);
128  vtkGetMacro(GenerateClipScalars,int);
129  vtkBooleanMacro(GenerateClipScalars,int);
131 
133 
135  vtkSetMacro(GenerateClippedOutput,int);
136  vtkGetMacro(GenerateClippedOutput,int);
137  vtkBooleanMacro(GenerateClippedOutput,int);
139 
142 
144 
148  vtkSetMacro(Mixed3DCellGeneration,int);
149  vtkGetMacro(Mixed3DCellGeneration,int);
150  vtkBooleanMacro(Mixed3DCellGeneration,int);
152 
154 
157  vtkSetClampMacro(MergeTolerance,double,0.0001,0.25);
158  vtkGetMacro(MergeTolerance,double);
160 
162 
167 
171 
173  unsigned long int GetMTime();
174 
175 protected:
178 
180 
183 
184  void ClipTets(double value, vtkTetra *clipTetra, vtkDataArray *clipScalars,
185  vtkDataArray *cellScalars, vtkIdList *tetraIds,
186  vtkPoints *tetraPts, vtkPointData *inPD, vtkPointData *outPD,
187  vtkCellData *inCD, vtkIdType cellId, vtkCellData *outCD,
188  vtkCellData *clippedCD, int insideOut);
189  void ClipVoxel(double value, vtkDataArray *cellScalars, int flip,
190  double origin[3], double spacing[3], vtkIdList *cellIds,
191  vtkPoints *cellPts, vtkPointData *inPD, vtkPointData *outPD,
192  vtkCellData *inCD, vtkIdType cellId, vtkCellData *outCD,
193  vtkCellData *clippedCD);
194 
198  double Value;
204 
205 private:
206  vtkOrderedTriangulator *Triangulator;
207 
208  // Used temporarily to pass data around
209  vtkIdType NumberOfCells;
210  vtkCellArray *Connectivity;
211  vtkUnsignedCharArray *Types;
212  vtkIdTypeArray *Locations;
213  vtkIdType NumberOfClippedCells;
214  vtkCellArray *ClippedConnectivity;
215  vtkUnsignedCharArray *ClippedTypes;
216  vtkIdTypeArray *ClippedLocations;
217 
218 private:
219  vtkClipVolume(const vtkClipVolume&); // Not implemented.
220  void operator=(const vtkClipVolume&); // Not implemented.
221 };
222 
223 #endif
vtkPoints
represent and manipulate 3D points
Definition: vtkPoints.h:39
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkClipVolume::SetClipFunction
virtual void SetClipFunction(vtkImplicitFunction *)
vtkClipVolume::ClipFunction
vtkImplicitFunction * ClipFunction
Definition: vtkClipVolume.h:195
vtkClipVolume
clip volume data with user-specified implicit function or input scalar data
Definition: vtkClipVolume.h:86
vtkClipVolume::vtkClipVolume
vtkClipVolume(vtkImplicitFunction *cf=NULL)
vtkPointData
represent and manipulate point attribute data
Definition: vtkPointData.h:37
vtkIdType
int vtkIdType
Definition: vtkType.h:275
vtkClipVolume::MergeTolerance
double MergeTolerance
Definition: vtkClipVolume.h:200
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkClipVolume::RequestData
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkClipVolume::InsideOut
int InsideOut
Definition: vtkClipVolume.h:197
vtkUnsignedCharArray
dynamic, self-adjusting array of unsigned char
Definition: vtkUnsignedCharArray.h:49
vtkClipVolume::GetMTime
unsigned long int GetMTime()
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkClipVolume::CreateDefaultLocator
void CreateDefaultLocator()
vtkClipVolume::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkDataArray
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
vtkClipVolume::Value
double Value
Definition: vtkClipVolume.h:198
vtkOrderedTriangulator
helper class to generate triangulations
Definition: vtkOrderedTriangulator.h:117
vtkImplicitFunction
abstract interface for implicit functions
Definition: vtkImplicitFunction.h:58
vtkX3D::port
@ port
Definition: vtkX3D.h:447
vtkSetClampMacro
#define vtkSetClampMacro(name, type, min, max)
Definition: vtkSetGet.h:143
vtkClipVolume::ClipTets
void ClipTets(double value, vtkTetra *clipTetra, vtkDataArray *clipScalars, vtkDataArray *cellScalars, vtkIdList *tetraIds, vtkPoints *tetraPts, vtkPointData *inPD, vtkPointData *outPD, vtkCellData *inCD, vtkIdType cellId, vtkCellData *outCD, vtkCellData *clippedCD, int insideOut)
vtkgl::value
GLsizei const GLfloat * value
Definition: vtkgl.h:12021
vtkClipVolume::New
static vtkClipVolume * New()
vtkClipVolume::GenerateClippedOutput
int GenerateClippedOutput
Definition: vtkClipVolume.h:202
vtkFiltersGeneralModule.h
vtkCell
abstract class to specify cell behavior
Definition: vtkCell.h:62
vtkCellData
represent and manipulate cell attribute data
Definition: vtkCellData.h:38
vtkClipVolume::FillInputPortInformation
virtual int FillInputPortInformation(int port, vtkInformation *info)
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkCellArray
object to represent cell connectivity
Definition: vtkCellArray.h:50
vtkIncrementalPointLocator
Abstract class in support of both point location and point insertion.
Definition: vtkIncrementalPointLocator.h:54
vtkIdList
list of point or cell ids
Definition: vtkIdList.h:36
vtkClipVolume::Mixed3DCellGeneration
int Mixed3DCellGeneration
Definition: vtkClipVolume.h:201
VTKFILTERSGENERAL_EXPORT
#define VTKFILTERSGENERAL_EXPORT
Definition: vtkFiltersGeneralModule.h:15
vtkClipVolume::~vtkClipVolume
~vtkClipVolume()
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkClipVolume::ClipVoxel
void ClipVoxel(double value, vtkDataArray *cellScalars, int flip, double origin[3], double spacing[3], vtkIdList *cellIds, vtkPoints *cellPts, vtkPointData *inPD, vtkPointData *outPD, vtkCellData *inCD, vtkIdType cellId, vtkCellData *outCD, vtkCellData *clippedCD)
vtkGarbageCollector
Detect and break reference loops.
Definition: vtkGarbageCollector.h:99
vtkClipVolume::ReportReferences
virtual void ReportReferences(vtkGarbageCollector *)
vtkX3D::spacing
@ spacing
Definition: vtkX3D.h:481
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkX3D::info
@ info
Definition: vtkX3D.h:376
vtkClipVolume::GenerateClipScalars
int GenerateClipScalars
Definition: vtkClipVolume.h:199
vtkIdTypeArray
dynamic, self-adjusting array of vtkIdType
Definition: vtkIdTypeArray.h:49
vtkClipVolume::ClippedOutput
vtkUnstructuredGrid * ClippedOutput
Definition: vtkClipVolume.h:203
vtkClipVolume::SetLocator
void SetLocator(vtkIncrementalPointLocator *locator)
vtkUnstructuredGridAlgorithm.h
vtkClipVolume::Locator
vtkIncrementalPointLocator * Locator
Definition: vtkClipVolume.h:196
vtkUnstructuredGridAlgorithm
Superclass for algorithms that produce only unstructured grid as output.
Definition: vtkUnstructuredGridAlgorithm.h:40
vtkUnstructuredGrid
dataset represents arbitrary combinations of all possible cell types
Definition: vtkUnstructuredGrid.h:82
vtkTetra
a 3D cell that represents a tetrahedron
Definition: vtkTetra.h:47
vtkClipVolume::GetClippedOutput
vtkUnstructuredGrid * GetClippedOutput()
vtkMergePoints
merge exactly coincident points
Definition: vtkMergePoints.h:36