VTK  9.1.0
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=========================================================================*/
70#ifndef vtkHierarchicalBinningFilter_h
71#define vtkHierarchicalBinningFilter_h
72
73#include "vtkFiltersPointsModule.h" // For export macro
75
76#define VTK_MAX_LEVEL 12
77
78struct vtkBinTree;
79
80class VTKFILTERSPOINTS_EXPORT vtkHierarchicalBinningFilter : public vtkPolyDataAlgorithm
81{
82public:
84
90 void PrintSelf(ostream& os, vtkIndent indent) override;
92
94
98 vtkSetClampMacro(NumberOfLevels, int, 1, VTK_MAX_LEVEL);
99 vtkGetMacro(NumberOfLevels, int);
101
103
109 vtkSetMacro(Automatic, bool);
110 vtkGetMacro(Automatic, bool);
111 vtkBooleanMacro(Automatic, bool);
113
115
121 vtkSetVector3Macro(Divisions, int);
122 vtkGetVectorMacro(Divisions, int, 3);
124
126
133 vtkSetVector6Macro(Bounds, double);
134 vtkGetVectorMacro(Bounds, double, 6);
136
144
150 int GetNumberOfBins(int level);
151
158
165 vtkIdType GetBinOffset(int globalBin, vtkIdType& npts);
166
173 vtkIdType GetLocalBinOffset(int level, int localBin, vtkIdType& npts);
174
180 void GetBinBounds(int globalBin, double bounds[6]);
181
188 void GetLocalBinBounds(int level, int localBin, double bounds[6]);
189
190protected:
193
194 // IVars
197 int Divisions[3];
198 double Bounds[6];
199
200 // Handle to the underlying implementation. The representation is maintained so
201 // that the convenience functions can be invoked on the bin tree.
202 vtkBinTree* Tree;
203
205 int FillInputPortInformation(int port, vtkInformation* info) override;
206
207private:
209 void operator=(const vtkHierarchicalBinningFilter&) = delete;
210};
211
212#endif
uniform binning of points into a hierarchical structure
~vtkHierarchicalBinningFilter() override
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
static vtkHierarchicalBinningFilter * New()
Standard methods for instantiating, obtaining type information, and printing information.
void GetLocalBinBounds(int level, int localBin, double bounds[6])
Convenience methods for extracting useful information about a bin tree.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for instantiating, obtaining type information, and printing information.
vtkIdType GetLocalBinOffset(int level, int localBin, vtkIdType &npts)
Convenience methods for extracting useful information about this bin tree.
void GetBinBounds(int globalBin, double bounds[6])
Convenience methods for extracting useful information about a bin tree.
vtkIdType GetLevelOffset(int level, vtkIdType &npts)
Convenience methods for extracting useful information about this bin tree.
int GetNumberOfBins(int level)
Convenience methods for extracting useful information about this bin tree.
vtkIdType GetBinOffset(int globalBin, vtkIdType &npts)
Convenience methods for extracting useful information about this bin tree.
int GetNumberOfGlobalBins()
Convenience methods for extracting useful information about this bin tree.
a simple class to control print indentation
Definition: vtkIndent.h:113
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Superclass for algorithms that produce only polydata as output.
#define VTK_MAX_LEVEL
int vtkIdType
Definition: vtkType.h:332