VTK
vtkBSPCuts.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkBSPCuts.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 =========================================================================*/
15 /*----------------------------------------------------------------------------
16  Copyright (c) Sandia Corporation
17  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
18 ----------------------------------------------------------------------------*/
19 
35 #ifndef vtkBSPCuts_h
36 #define vtkBSPCuts_h
37 
38 #include "vtkCommonDataModelModule.h" // For export macro
39 #include "vtkDataObject.h"
40 
41 class vtkKdNode;
42 
44 {
45 public:
46  static vtkBSPCuts *New();
48  void PrintSelf(ostream& os, vtkIndent indent);
49 
62  void CreateCuts(double *bounds,
63  int ncuts, int *dim, double *coord,
64  int *lower, int *upper,
65  double *lowerDataCoord, double *upperDataCoord,
66  int *npoints);
67 
70  void CreateCuts(vtkKdNode *kd);
71 
75  vtkKdNode *GetKdNodeTree(){return this->Top;}
76 
80  vtkGetMacro(NumberOfCuts, int);
81 
84  int GetArrays(int len, int *dim, double *coord, int *lower, int *upper,
85  double *lowerDataCoord, double *upperDataCoord, int *npoints);
86 
89  int Equals(vtkBSPCuts *other, double tolerance = 0.0);
90 
91  void PrintTree();
92  void PrintArrays();
93 
94  //BTX
96 
99  //ETX
101 
103  virtual void Initialize();
104 
106 
108  virtual void ShallowCopy(vtkDataObject *src);
109  virtual void DeepCopy(vtkDataObject *src);
111 
112 protected:
113 
116 
117  static void DeleteAllDescendants(vtkKdNode *kd);
118 
119  static int CountNodes(vtkKdNode *kd);
120  static void SetMinMaxId(vtkKdNode *kd);
121  static void _PrintTree(vtkKdNode *kd, int depth);
122 
123  void BuildTree(vtkKdNode *kd, int idx);
124  int WriteArray(vtkKdNode *kd, int loc);
125 
126  void ResetArrays();
127  void AllocateArrays(int size);
128 
130 
131  // required cut information
132 
133  int NumberOfCuts;// number of cuts, also length of each array
134  int *Dim; // dimension (x/y/z - 0/1/2) where cut occurs
135  double *Coord; // location of cut along axis
136  int *Lower; // location in arrays of left (lower) child info
137  int *Upper; // location in arrays of right (lower) child info
138 
139  // optional cut information
140 
141  double *LowerDataCoord; // coordinate of uppermost data in lower half
142  double *UpperDataCoord; // coordinate of lowermost data in upper half
143  int *Npoints; // number of data values in partition
144 
145  double Bounds[6];
146 
147  vtkBSPCuts(const vtkBSPCuts&); // Not implemented
148  void operator=(const vtkBSPCuts&); // Not implemented
149 };
150 
151 #endif
vtkBSPCuts::~vtkBSPCuts
~vtkBSPCuts()
vtkKdNode
This class represents a single spatial region in an 3D axis aligned binary spatial partitioning....
Definition: vtkKdNode.h:45
vtkBSPCuts::GetArrays
int GetArrays(int len, int *dim, double *coord, int *lower, int *upper, double *lowerDataCoord, double *upperDataCoord, int *npoints)
vtkCommonDataModelModule.h
vtkBSPCuts::WriteArray
int WriteArray(vtkKdNode *kd, int loc)
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkBSPCuts::operator=
void operator=(const vtkBSPCuts &)
vtkBSPCuts::DeleteAllDescendants
static void DeleteAllDescendants(vtkKdNode *kd)
vtkBSPCuts::CreateCuts
void CreateCuts(vtkKdNode *kd)
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkBSPCuts::PrintTree
void PrintTree()
vtkBSPCuts::Equals
int Equals(vtkBSPCuts *other, double tolerance=0.0)
vtkgl::v
const GLdouble * v
Definition: vtkgl.h:11595
vtkgl::coord
GLuint coord
Definition: vtkgl.h:16713
vtkBSPCuts::Upper
int * Upper
Definition: vtkBSPCuts.h:137
vtkBSPCuts::Initialize
virtual void Initialize()
vtkBSPCuts::vtkBSPCuts
vtkBSPCuts(const vtkBSPCuts &)
vtkBSPCuts::DeepCopy
virtual void DeepCopy(vtkDataObject *src)
vtkBSPCuts::GetKdNodeTree
vtkKdNode * GetKdNodeTree()
Definition: vtkBSPCuts.h:75
vtkBSPCuts::AllocateArrays
void AllocateArrays(int size)
vtkBSPCuts::Lower
int * Lower
Definition: vtkBSPCuts.h:136
vtkBSPCuts::GetData
static vtkBSPCuts * GetData(vtkInformationVector *v, int i=0)
vtkBSPCuts::New
static vtkBSPCuts * New()
vtkBSPCuts::Top
vtkKdNode * Top
Definition: vtkBSPCuts.h:129
vtkgl::depth
GLint GLint GLsizei GLsizei GLsizei depth
Definition: vtkgl.h:11316
vtkBSPCuts::vtkBSPCuts
vtkBSPCuts()
vtkBSPCuts::_PrintTree
static void _PrintTree(vtkKdNode *kd, int depth)
vtkgl::src
GLenum src
Definition: vtkgl.h:12525
vtkBSPCuts::PrintArrays
void PrintArrays()
vtkBSPCuts::SetMinMaxId
static void SetMinMaxId(vtkKdNode *kd)
vtkBSPCuts::ResetArrays
void ResetArrays()
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkBSPCuts::CreateCuts
void CreateCuts(double *bounds, int ncuts, int *dim, double *coord, int *lower, int *upper, double *lowerDataCoord, double *upperDataCoord, int *npoints)
vtkBSPCuts
This class represents an axis-aligned Binary Spatial Partitioning of a 3D space.
Definition: vtkBSPCuts.h:44
vtkBSPCuts::NumberOfCuts
int NumberOfCuts
Definition: vtkBSPCuts.h:133
vtkBSPCuts::Dim
int * Dim
Definition: vtkBSPCuts.h:134
vtkBSPCuts::LowerDataCoord
double * LowerDataCoord
Definition: vtkBSPCuts.h:141
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkBSPCuts::UpperDataCoord
double * UpperDataCoord
Definition: vtkBSPCuts.h:142
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkX3D::info
@ info
Definition: vtkX3D.h:376
vtkBSPCuts::CountNodes
static int CountNodes(vtkKdNode *kd)
vtkDataObject.h
vtkBSPCuts::GetData
static vtkBSPCuts * GetData(vtkInformation *info)
vtkgl::len
GLenum GLsizei len
Definition: vtkgl.h:13010
VTKCOMMONDATAMODEL_EXPORT
#define VTKCOMMONDATAMODEL_EXPORT
Definition: vtkCommonDataModelModule.h:15
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:65
vtkBSPCuts::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkBSPCuts::Npoints
int * Npoints
Definition: vtkBSPCuts.h:143
vtkBSPCuts::Coord
double * Coord
Definition: vtkBSPCuts.h:135
vtkgl::size
GLsizeiptr size
Definition: vtkgl.h:11843
vtkBSPCuts::BuildTree
void BuildTree(vtkKdNode *kd, int idx)
vtkBSPCuts::ShallowCopy
virtual void ShallowCopy(vtkDataObject *src)