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) override;
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:
195  ~vtkHierarchicalBinningFilter() override;
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 
208  vtkInformationVector *) override;
209  int FillInputPortInformation(int port, vtkInformation *info) override;
210 
211 private:
213  void operator=(const vtkHierarchicalBinningFilter&) = delete;
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:347
static vtkPolyDataAlgorithm * New()
Superclass for algorithms that produce only polydata as output.
a simple class to control print indentation
Definition: vtkIndent.h:39
#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.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.