VTK
vtkHyperOctreeContourFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkHyperOctreeContourFilter.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 =========================================================================*/
50 #ifndef vtkHyperOctreeContourFilter_h
51 #define vtkHyperOctreeContourFilter_h
52 
53 #include "vtkFiltersHyperTreeModule.h" // For export macro
54 #include "vtkPolyDataAlgorithm.h"
55 
56 #include "vtkContourValues.h" // Needed for inline methods
57 #include "vtkCutter.h" // for VTK_SORT_BY_VALUE
58 
60 class vtkHyperOctree;
62 class vtkTetra;
64 
67 class vtkIdTypeArray;
68 class vtkHyperOctreeContourPointsGrabber;
69 class vtkBitArray;
70 
72 {
73 public:
75  void PrintSelf(ostream& os, vtkIndent indent);
76 
80 
86  void SetValue(int i, double value)
87  {
88  this->ContourValues->SetValue(i,value);
89  }
91 
93 
94  double GetValue(int i)
95  {
96  return this->ContourValues->GetValue(i);
97  }
99 
101 
103  double *GetValues()
104  {
105  return this->ContourValues->GetValues();
106  }
108 
110 
113  void GetValues(double *contourValues)
114  {
115  this->ContourValues->GetValues(contourValues);
116  }
118 
120 
123  void SetNumberOfContours(int number)
124  {
125  this->ContourValues->SetNumberOfContours(number);
126  }
128 
130 
132  {
133  return this->ContourValues->GetNumberOfContours();
134  }
136 
138 
140  void GenerateValues(int numContours, double range[2])
141  {
142  this->ContourValues->GenerateValues(numContours, range);
143  }
145 
147 
149  void GenerateValues(int numContours, double
150  rangeStart, double rangeEnd)
151  {
152  this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);
153  }
155 
157  unsigned long GetMTime();
158 
160 
165 
169 
170 protected:
173 
174  virtual int RequestData(vtkInformation* request,
175  vtkInformationVector** inputVector,
176  vtkInformationVector* outputVector);
181 
183  void ContourNode();
184 
186  double ComputePointValue(int ptIndices[3]);
187 
189 
192 
193  vtkIdList *CellPts; // for 2D case
194 
197 
201 
207 
208  vtkHyperOctreeCursor *Sibling; // to avoid allocation in the loop
209 
210 
214 
216 
219 
220  vtkIdType CellTypeCounter[65536]; // up-to-65536 points per octant
222  vtkIdType TemplateCounter; // record the number of octants that succceed
223  // to use the template triangulator
224 
226  vtkHyperOctreeContourPointsGrabber *Grabber;
227 
229  int SortBy;
230  int Iter; // iterate over contour values in case of VTK_SORT_BY_CELL
231 
233  double LeftValue;
234  double LeftCoord;
235 
236  //BTX
237  friend class vtkHyperOctreeContourPointsGrabber;
238  //ETX
239 private:
240  vtkHyperOctreeContourFilter(const vtkHyperOctreeContourFilter&); // Not implemented.
241  void operator=(const vtkHyperOctreeContourFilter&); // Not implemented.
242 };
243 #endif
vtkHyperOctreeContourFilter::GetValues
double * GetValues()
Definition: vtkHyperOctreeContourFilter.h:103
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkHyperOctreeContourFilter::RequestData
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
vtkHyperOctreeContourFilter::ComputePointValue
double ComputePointValue(int ptIndices[3])
vtkHyperOctreeContourFilter::SetValue
void SetValue(int i, double value)
Definition: vtkHyperOctreeContourFilter.h:86
vtkPointData
represent and manipulate point attribute data
Definition: vtkPointData.h:37
vtkHyperOctreeContourFilter::OutPD
vtkPointData * OutPD
Definition: vtkHyperOctreeContourFilter.h:205
vtkHyperOctreeContourFilter::Triangulator
vtkOrderedTriangulator * Triangulator
Definition: vtkHyperOctreeContourFilter.h:206
vtkIdType
int vtkIdType
Definition: vtkType.h:275
vtkPolygon
a cell that represents an n-sided polygon
Definition: vtkPolygon.h:45
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkHyperOctreeContourFilter::vtkHyperOctreeContourFilter
vtkHyperOctreeContourFilter()
vtkHyperOctreeContourFilter::CellPts
vtkIdList * CellPts
Definition: vtkHyperOctreeContourFilter.h:193
vtkHyperOctreeContourFilter::OutCD
vtkCellData * OutCD
Definition: vtkHyperOctreeContourFilter.h:204
vtkUnsignedCharArray
dynamic, self-adjusting array of unsigned char
Definition: vtkUnsignedCharArray.h:49
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkHyperOctreeCursor
Objects that can traverse hyperoctree nodes.
Definition: vtkHyperOctreeCursor.h:51
vtkHyperOctreeContourFilter::NewLines
vtkCellArray * NewLines
Definition: vtkHyperOctreeContourFilter.h:199
vtkHyperOctreeContourFilter::SortBy
int SortBy
Definition: vtkHyperOctreeContourFilter.h:229
vtkHyperOctreeContourFilter::TetScalars
vtkDoubleArray * TetScalars
Definition: vtkHyperOctreeContourFilter.h:213
vtkHyperOctreeContourFilter::GetNumberOfContours
int GetNumberOfContours()
Definition: vtkHyperOctreeContourFilter.h:131
vtkHyperOctreeContourFilter::NewVerts
vtkCellArray * NewVerts
Definition: vtkHyperOctreeContourFilter.h:198
vtkHyperOctreeContourFilter::SetNumberOfContours
void SetNumberOfContours(int number)
Definition: vtkHyperOctreeContourFilter.h:123
vtkHyperOctreeContourFilter::ContourValues
vtkContourValues * ContourValues
Definition: vtkHyperOctreeContourFilter.h:190
vtkDataArray
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
vtkHyperOctreeContourFilter::ContourNode
void ContourNode()
vtkgl::range
GLenum GLint * range
Definition: vtkgl.h:14180
vtkHyperOctreeContourFilter::ContourNode1D
void ContourNode1D()
vtkHyperOctreeContourFilter::GenerateValues
void GenerateValues(int numContours, double range[2])
Definition: vtkHyperOctreeContourFilter.h:140
vtkHyperOctreeContourFilter::Iter
int Iter
Definition: vtkHyperOctreeContourFilter.h:230
vtkFiltersHyperTreeModule.h
vtkLine
cell represents a 1D line
Definition: vtkLine.h:35
vtkOrderedTriangulator
helper class to generate triangulations
Definition: vtkOrderedTriangulator.h:117
vtkHyperOctreeContourFilter::Sibling
vtkHyperOctreeCursor * Sibling
Definition: vtkHyperOctreeContourFilter.h:208
vtkPolyDataAlgorithm.h
vtkHyperOctreeContourFilter::GenerateValues
void GenerateValues(int numContours, double rangeStart, double rangeEnd)
Definition: vtkHyperOctreeContourFilter.h:149
vtkX3D::port
@ port
Definition: vtkX3D.h:447
VTKFILTERSHYPERTREE_EXPORT
#define VTKFILTERSHYPERTREE_EXPORT
Definition: vtkFiltersHyperTreeModule.h:15
vtkgl::value
GLsizei const GLfloat * value
Definition: vtkgl.h:12021
vtkHyperOctreeContourFilter::GetValues
void GetValues(double *contourValues)
Definition: vtkHyperOctreeContourFilter.h:113
vtkHyperOctreeContourFilter::SetLocator
void SetLocator(vtkIncrementalPointLocator *locator)
vtkContourValues
helper object to manage setting and generating contour values
Definition: vtkContourValues.h:35
vtkHyperOctreeContourFilter::CreateDefaultLocator
void CreateDefaultLocator()
vtkHyperOctreeContourFilter::InScalars
vtkDataArray * InScalars
Definition: vtkHyperOctreeContourFilter.h:225
vtkCellData
represent and manipulate cell attribute data
Definition: vtkCellData.h:38
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkCellArray
object to represent cell connectivity
Definition: vtkCellArray.h:50
vtkHyperOctreeContourFilter::PointScalars
vtkDoubleArray * PointScalars
Definition: vtkHyperOctreeContourFilter.h:228
vtkHyperOctreeContourFilter::CellScalars
vtkDoubleArray * CellScalars
Definition: vtkHyperOctreeContourFilter.h:211
vtkHyperOctreeContourFilter::New
static vtkHyperOctreeContourFilter * New()
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
vtkHyperOctreeContourFilter::Input
vtkHyperOctree * Input
Definition: vtkHyperOctreeContourFilter.h:195
vtkHyperOctreeContourFilter
generate isosurfaces/isolines from scalar values
Definition: vtkHyperOctreeContourFilter.h:72
vtkHyperOctreeContourFilter::LeftCoord
double LeftCoord
Definition: vtkHyperOctreeContourFilter.h:234
vtkHyperOctreeContourFilter::Output
vtkPolyData * Output
Definition: vtkHyperOctreeContourFilter.h:196
vtkHyperOctreeContourFilter::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkContourValues.h
vtkHyperOctreeContourFilter::Tetra
vtkTetra * Tetra
Definition: vtkHyperOctreeContourFilter.h:212
vtkHyperOctreeContourFilter::NeighborCursor
vtkHyperOctreeCursor * NeighborCursor
Definition: vtkHyperOctreeContourFilter.h:218
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkHyperOctreeContourFilter::GetMTime
unsigned long GetMTime()
vtkX3D::info
@ info
Definition: vtkX3D.h:376
vtkHyperOctreeContourFilter::TemplateCounter
vtkIdType TemplateCounter
Definition: vtkHyperOctreeContourFilter.h:222
vtkHyperOctreeContourFilter::Locator
vtkIncrementalPointLocator * Locator
Definition: vtkHyperOctreeContourFilter.h:191
vtkHyperOctreeContourFilter::RequestUpdateExtent
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkIdTypeArray
dynamic, self-adjusting array of vtkIdType
Definition: vtkIdTypeArray.h:49
vtkHyperOctreeContourFilter::InCD
vtkCellData * InCD
Definition: vtkHyperOctreeContourFilter.h:202
vtkHyperOctreeContourFilter::Line
vtkLine * Line
Definition: vtkHyperOctreeContourFilter.h:232
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:84
vtkHyperOctreeContourFilter::TotalCounter
vtkIdType TotalCounter
Definition: vtkHyperOctreeContourFilter.h:221
vtkHyperOctreeContourFilter::NewPolys
vtkCellArray * NewPolys
Definition: vtkHyperOctreeContourFilter.h:200
vtkHyperOctreeContourFilter::Grabber
vtkHyperOctreeContourPointsGrabber * Grabber
Definition: vtkHyperOctreeContourFilter.h:226
vtkHyperOctreeContourFilter::FillInputPortInformation
virtual int FillInputPortInformation(int port, vtkInformation *info)
vtkBitArray
dynamic, self-adjusting array of bits
Definition: vtkBitArray.h:36
vtkDoubleArray
dynamic, self-adjusting array of double
Definition: vtkDoubleArray.h:49
vtkHyperOctreeContourFilter::InPD
vtkPointData * InPD
Definition: vtkHyperOctreeContourFilter.h:203
vtkHyperOctreeContourFilter::GetValue
double GetValue(int i)
Definition: vtkHyperOctreeContourFilter.h:94
vtkUnstructuredGrid
dataset represents arbitrary combinations of all possible cell types
Definition: vtkUnstructuredGrid.h:82
vtkHyperOctreeContourFilter::~vtkHyperOctreeContourFilter
~vtkHyperOctreeContourFilter()
vtkCutter.h
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
vtkHyperOctreeContourFilter::Cursor
vtkHyperOctreeCursor * Cursor
Definition: vtkHyperOctreeContourFilter.h:217
vtkHyperOctreeContourFilter::LeftValue
double LeftValue
Definition: vtkHyperOctreeContourFilter.h:233
vtkHyperOctreeContourFilter::Polygon
vtkPolygon * Polygon
Definition: vtkHyperOctreeContourFilter.h:215
vtkPolyDataAlgorithm
Superclass for algorithms that produce only polydata as output.
Definition: vtkPolyDataAlgorithm.h:44