VTK
vtkHyperOctreeLimiter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkHyperOctreeLimiter.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 =========================================================================*/
28 #ifndef vtkHyperOctreeLimiter_h
29 #define vtkHyperOctreeLimiter_h
30 
31 #include "vtkFiltersHyperTreeModule.h" // For export macro
32 #include "vtkDataSetAlgorithm.h"
33 
34 class vtkHyperOctree;
36 
37 class VTKFILTERSHYPERTREE_EXPORT vtkHyperOctreeLimiter : public vtkDataSetAlgorithm
38 {
39 public:
40  static vtkHyperOctreeLimiter *New();
42 
46  int GetMaximumLevel();
47 
51  void SetMaximumLevel(int levels);
52 
53 protected:
55  ~vtkHyperOctreeLimiter() VTK_OVERRIDE;
56 
57  int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
58  int FillInputPortInformation(int port, vtkInformation *info) VTK_OVERRIDE;
59  int FillOutputPortInformation(int port, vtkInformation *info) VTK_OVERRIDE;
60 
62  vtkHyperOctree *Output;
63 
64  void BuildNextCell(vtkHyperOctreeCursor *, vtkHyperOctreeCursor *, int);
65 
66  void AddInteriorAttributes(vtkHyperOctreeCursor *, int);
67  double MeasureCell(int);
68 
69  int MaximumLevel;
70  double TopSize;
71  int Dimension;
72  int NumChildren;
73  double SizeAtPrunePoint;
74 
75  double *AccumScratch;
76  int AccumSize;
77 
78 private:
79  vtkHyperOctreeLimiter(const vtkHyperOctreeLimiter&) VTK_DELETE_FUNCTION;
80  void operator=(const vtkHyperOctreeLimiter&) VTK_DELETE_FUNCTION;
81 };
82 
83 #endif
Store vtkAlgorithm input/output information.
A dataset structured as a tree where each node has exactly 2^n children.
Objects that can traverse hyperoctree nodes.
Store zero or more vtkInformation instances.
Superclass for algorithms that produce output of the same type as input.
static vtkDataSetAlgorithm * New()
Limit the tree's depth, averaging data from lower level branches into the new leaves at the cut point...