VTK
vtkClipHyperOctree.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkClipHyperOctree.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 =========================================================================*/
62 #ifndef vtkClipHyperOctree_h
63 #define vtkClipHyperOctree_h
64 
65 #include "vtkFiltersHyperTreeModule.h" // For export macro
67 
71 class vtkHyperOctree;
73 class vtkIdTypeArray;
74 class vtkCellArray;
75 class vtkCellData;
76 class vtkPointData;
78 class vtkDoubleArray;
79 class vtkTetra;
80 class vtkPoints;
81 class vtkPolygon;
83 
85 {
86 public:
88  void PrintSelf(ostream& os, vtkIndent indent);
89 
93 
95 
98  vtkSetMacro(Value,double);
99  vtkGetMacro(Value,double);
101 
103 
108  vtkSetMacro(InsideOut,int);
109  vtkGetMacro(InsideOut,int);
110  vtkBooleanMacro(InsideOut,int);
112 
114 
120 
122 
126  vtkSetMacro(GenerateClipScalars,int);
127  vtkGetMacro(GenerateClipScalars,int);
128  vtkBooleanMacro(GenerateClipScalars,int);
130 
132 
134  vtkSetMacro(GenerateClippedOutput,int);
135  vtkGetMacro(GenerateClippedOutput,int);
136  vtkBooleanMacro(GenerateClippedOutput,int);
138 
141 
143 
148 
152 
154  unsigned long GetMTime();
155 
156 protected:
159 
161 
163 
166  int level,
167  double bounds[6]);
169 
172 
174  vtkIncrementalPointLocator *Locator2; // used for the clipped output
175 
177  double Value;
179 
181 
185 
187  vtkIdTypeArray *Locs[2];
188  vtkCellArray *Conn[2];
190  vtkCellData *OutCD[2];
191  vtkPointData *OutPD[2];
193 
194  vtkHyperOctreeCursor *Sibling; // to avoid allocation in the loop
195 
199 
202 
203  vtkIdType CellTypeCounter[65536]; // up-to-65536 points per octant
205  vtkIdType TemplateCounter; // record the number of octants that succceed
206  // to use the template triangulator
207 
209 
210 private:
211  vtkClipHyperOctree(const vtkClipHyperOctree&); // Not implemented.
212  void operator=(const vtkClipHyperOctree&); // Not implemented.
213 };
214 
215 #endif
vtkPoints
represent and manipulate 3D points
Definition: vtkPoints.h:39
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkPointData
represent and manipulate point attribute data
Definition: vtkPointData.h:37
vtkClipHyperOctree::Output
vtkUnstructuredGrid * Output
Definition: vtkClipHyperOctree.h:183
vtkIdType
int vtkIdType
Definition: vtkType.h:275
vtkClipHyperOctree::SetLocator
void SetLocator(vtkIncrementalPointLocator *locator)
vtkPolygon
a cell that represents an n-sided polygon
Definition: vtkPolygon.h:45
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkClipHyperOctree::GetMTime
unsigned long GetMTime()
vtkClipHyperOctree::vtkClipHyperOctree
vtkClipHyperOctree(vtkImplicitFunction *cf=NULL)
vtkClipHyperOctree::CreateDefaultLocator
void CreateDefaultLocator()
vtkClipHyperOctree::New
static vtkClipHyperOctree * New()
vtkClipHyperOctree::Locator
vtkIncrementalPointLocator * Locator
Definition: vtkClipHyperOctree.h:173
vtkUnsignedCharArray
dynamic, self-adjusting array of unsigned char
Definition: vtkUnsignedCharArray.h:49
vtkClipHyperOctree::SetClipFunction
virtual void SetClipFunction(vtkImplicitFunction *)
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkHyperOctreeCursor
Objects that can traverse hyperoctree nodes.
Definition: vtkHyperOctreeCursor.h:51
vtkClipHyperOctree::TetScalars
vtkDoubleArray * TetScalars
Definition: vtkClipHyperOctree.h:198
vtkClipHyperOctree::ClippedOutput
vtkUnstructuredGrid * ClippedOutput
Definition: vtkClipHyperOctree.h:184
vtkClipHyperOctree::GetClippedOutput
vtkUnstructuredGrid * GetClippedOutput()
vtkClipHyperOctree::Sibling
vtkHyperOctreeCursor * Sibling
Definition: vtkClipHyperOctree.h:194
vtkClipHyperOctree::ClipNode
void ClipNode(vtkHyperOctreeCursor *cursor, int level, double bounds[6])
vtkClipHyperOctree::RequestData
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkClipHyperOctree::FillInputPortInformation
virtual int FillInputPortInformation(int port, vtkInformation *info)
vtkFiltersHyperTreeModule.h
vtkHyperOctreeClipCutPointsGrabber
A concrete implementation of vtkHyperOctreePointsGrabber used by vtkClipHyperOctree and vtkHyperOctre...
Definition: vtkHyperOctreeClipCutPointsGrabber.h:36
vtkOrderedTriangulator
helper class to generate triangulations
Definition: vtkOrderedTriangulator.h:117
vtkClipHyperOctree::Locator2
vtkIncrementalPointLocator * Locator2
Definition: vtkClipHyperOctree.h:174
vtkImplicitFunction
abstract interface for implicit functions
Definition: vtkImplicitFunction.h:58
vtkX3D::port
@ port
Definition: vtkX3D.h:447
VTKFILTERSHYPERTREE_EXPORT
#define VTKFILTERSHYPERTREE_EXPORT
Definition: vtkFiltersHyperTreeModule.h:15
vtkClipHyperOctree::Grabber
vtkHyperOctreeClipCutPointsGrabber * Grabber
Definition: vtkClipHyperOctree.h:208
vtkClipHyperOctree::TotalCounter
vtkIdType TotalCounter
Definition: vtkClipHyperOctree.h:204
vtkClipHyperOctree::TemplateCounter
vtkIdType TemplateCounter
Definition: vtkClipHyperOctree.h:205
vtkCellData
represent and manipulate cell attribute data
Definition: vtkCellData.h:38
vtkClipHyperOctree::ClipFunction
vtkImplicitFunction * ClipFunction
Definition: vtkClipHyperOctree.h:171
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkCellArray
object to represent cell connectivity
Definition: vtkCellArray.h:50
vtkClipHyperOctree::GenerateClippedOutput
int GenerateClippedOutput
Definition: vtkClipHyperOctree.h:180
vtkClipHyperOctree::InsideOut
int InsideOut
Definition: vtkClipHyperOctree.h:176
vtkIncrementalPointLocator
Abstract class in support of both point location and point insertion.
Definition: vtkIncrementalPointLocator.h:54
vtkClipHyperOctree::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkClipHyperOctree::Triangulator
vtkOrderedTriangulator * Triangulator
Definition: vtkClipHyperOctree.h:192
vtkgl::level
GLint level
Definition: vtkgl.h:11316
vtkClipHyperOctree::Pts
vtkPoints * Pts
Definition: vtkClipHyperOctree.h:200
vtkClipHyperOctree::Value
double Value
Definition: vtkClipHyperOctree.h:177
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
vtkIdTypeArray
dynamic, self-adjusting array of vtkIdType
Definition: vtkIdTypeArray.h:49
vtkClipHyperOctree::CellScalars
vtkDoubleArray * CellScalars
Definition: vtkClipHyperOctree.h:196
vtkUnstructuredGridAlgorithm.h
vtkClipHyperOctree::InCD
vtkCellData * InCD
Definition: vtkClipHyperOctree.h:189
vtkUnstructuredGridAlgorithm
Superclass for algorithms that produce only unstructured grid as output.
Definition: vtkUnstructuredGridAlgorithm.h:40
vtkDoubleArray
dynamic, self-adjusting array of double
Definition: vtkDoubleArray.h:49
vtkUnstructuredGrid
dataset represents arbitrary combinations of all possible cell types
Definition: vtkUnstructuredGrid.h:82
vtkHyperOctree
A dataset structured as a tree where each node has exactly 2^n children.
Definition: vtkHyperOctree.h:143
vtkTetra
a 3D cell that represents a tetrahedron
Definition: vtkTetra.h:47
vtkClipHyperOctree
clip an hyperoctree with user-specified implicit function or input scalar data
Definition: vtkClipHyperOctree.h:85
vtkClipHyperOctree::Polygon
vtkPolygon * Polygon
Definition: vtkClipHyperOctree.h:201
vtkClipHyperOctree::~vtkClipHyperOctree
~vtkClipHyperOctree()
vtkClipHyperOctree::Tetra
vtkTetra * Tetra
Definition: vtkClipHyperOctree.h:197
vtkClipHyperOctree::Input
vtkHyperOctree * Input
Definition: vtkClipHyperOctree.h:182
vtkClipHyperOctree::GenerateClipScalars
int GenerateClipScalars
Definition: vtkClipHyperOctree.h:178