VTK
vtkHierarchicalBinningFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkHierarchicalBinningFilter.h
5 
6  Copyright (c) Kitware, Inc.
7  All rights reserved.
8  See LICENSE file 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 =========================================================================*/
73 #ifndef vtkHierarchicalBinningFilter_h
74 #define vtkHierarchicalBinningFilter_h
75 
76 #include "vtkFiltersPointsModule.h" // For export macro
77 #include "vtkPolyDataAlgorithm.h"
78 
79 #define VTK_MAX_LEVEL 12
80 
81 struct vtkBinTree;
82 
83 class VTKFILTERSPOINTS_EXPORT vtkHierarchicalBinningFilter : public vtkPolyDataAlgorithm
84 {
85 public:
87 
93  void PrintSelf(ostream& os, vtkIndent indent);
95 
97 
101  vtkSetClampMacro(NumberOfLevels,int,1,VTK_MAX_LEVEL);
102  vtkGetMacro(NumberOfLevels,int);
104 
106 
112  vtkSetMacro(Automatic,bool);
113  vtkGetMacro(Automatic,bool);
114  vtkBooleanMacro(Automatic,bool);
116 
118 
124  vtkSetVector3Macro(Divisions,int);
125  vtkGetVectorMacro(Divisions,int,3);
127 
129 
136  vtkSetVector6Macro(Bounds,double);
137  vtkGetVectorMacro(Bounds,double,6);
139 
146  int GetNumberOfGlobalBins();
147 
153  int GetNumberOfBins(int level);
154 
160  vtkIdType GetLevelOffset(int level, vtkIdType& npts);
161 
168  vtkIdType GetBinOffset(int globalBin, vtkIdType& npts);
169 
176  vtkIdType GetLocalBinOffset(int level, int localBin, vtkIdType& npts);
177 
183  void GetBinBounds(int globalBin, double bounds[6]);
184 
191  void GetLocalBinBounds(int level, int localBin, double bounds[6]);
192 
193 protected:
196 
197  // IVars
199  bool Automatic;
200  int Divisions[3];
201  double Bounds[6];
202 
203  // Handle to the underlying implementation. The representation is maintained so
204  // that the convenience functions can be invoked on the bin tree.
205  vtkBinTree *Tree;
206 
210 
211 private:
213  void operator=(const vtkHierarchicalBinningFilter&) VTK_DELETE_FUNCTION;
214 
215 };
216 
217 #endif
uniform binning of points into a hierarchical structure
Store vtkAlgorithm input/output information.
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
int vtkIdType
Definition: vtkType.h:287
static vtkPolyDataAlgorithm * New()
Superclass for algorithms that produce only polydata as output.
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
#define VTK_MAX_LEVEL
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
Store zero or more vtkInformation instances.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.