VTK  9.0.20200606
vtkLabelHierarchyIterator.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkLabelHierarchyIterator.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 2008 Sandia Corporation.
17  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
18  the U.S. Government retains certain rights in this software.
19 -------------------------------------------------------------------------*/
28 #ifndef vtkLabelHierarchyIterator_h
29 #define vtkLabelHierarchyIterator_h
30 
31 #include "vtkObject.h"
32 #include "vtkRenderingLabelModule.h" // For export macro
33 #include "vtkStdString.h" // for std string
34 #include "vtkUnicodeString.h" // for unicode string
35 
36 class vtkIdTypeArray;
37 class vtkLabelHierarchy;
38 class vtkPolyData;
39 
40 class VTKRENDERINGLABEL_EXPORT vtkLabelHierarchyIterator : public vtkObject
41 {
42 public:
44  void PrintSelf(ostream& os, vtkIndent indent) override;
45 
52  virtual void Begin(vtkIdTypeArray*) {}
53 
57  virtual void Next() {}
58 
62  virtual bool IsAtEnd() { return true; }
63 
67  virtual void GetPoint(double x[3]);
68 
72  virtual void GetSize(double sz[2]);
73 
77  virtual void GetBoundedSize(double sz[2]);
78 
82  virtual int GetType();
83 
87  virtual vtkStdString GetLabel();
88 
92  virtual vtkUnicodeString GetUnicodeLabel();
93 
97  virtual double GetOrientation();
98 
102  virtual vtkIdType GetLabelId() { return -1; }
103 
105 
108  vtkGetObjectMacro(Hierarchy, vtkLabelHierarchy);
110 
115  virtual void SetTraversedBounds(vtkPolyData*);
116 
123  virtual void GetNodeGeometry(double ctr[3], double& size) = 0;
124 
130  virtual void BoxNode();
131 
137  virtual void BoxAllNodes(vtkPolyData*);
138 
140 
146  vtkSetMacro(AllBounds, int);
147  vtkGetMacro(AllBounds, int);
149 
150 protected:
152  ~vtkLabelHierarchyIterator() override;
153 
154  void BoxNodeInternal3(const double* ctr, double sz);
155  void BoxNodeInternal2(const double* ctr, double sz);
156 
160  virtual void SetHierarchy(vtkLabelHierarchy* h);
161 
164  double BoundsFactor;
167 
168 private:
170  void operator=(const vtkLabelHierarchyIterator&) = delete;
171 };
172 
173 #endif // vtkLabelHierarchyIterator_h
vtkStdString.h
vtkLabelHierarchyIterator::GetLabelId
virtual vtkIdType GetLabelId()
Retrieves the current label id.
Definition: vtkLabelHierarchyIterator.h:102
vtkLabelHierarchyIterator::TraversedBounds
vtkPolyData * TraversedBounds
Definition: vtkLabelHierarchyIterator.h:163
vtkLabelHierarchy
contains an octree of labels
Definition: vtkLabelHierarchy.h:79
vtkIdType
int vtkIdType
Definition: vtkType.h:330
vtkUnicodeString.h
vtkLabelHierarchyIterator::IsAtEnd
virtual bool IsAtEnd()
Returns true if the iterator is at the end.
Definition: vtkLabelHierarchyIterator.h:62
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:62
vtkLabelHierarchyIterator::AllBounds
int AllBounds
Definition: vtkLabelHierarchyIterator.h:165
vtkLabelHierarchyIterator
iterator over vtkLabelHierarchy
Definition: vtkLabelHierarchyIterator.h:40
GetPoint
void GetPoint(const int i, const int j, const int k, double pnt[3])
vtkLabelHierarchyIterator::BoundsFactor
double BoundsFactor
Definition: vtkLabelHierarchyIterator.h:164
vtkLabelHierarchyIterator::Begin
virtual void Begin(vtkIdTypeArray *)
Initializes the iterator.
Definition: vtkLabelHierarchyIterator.h:52
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkUnicodeString
String class that stores Unicode text.
Definition: vtkUnicodeString.h:69
vtkX3D::size
Definition: vtkX3D.h:259
vtkObject::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkObject.h
vtkLabelHierarchyIterator::Next
virtual void Next()
Advance the iterator.
Definition: vtkLabelHierarchyIterator.h:57
vtkLabelHierarchyIterator::AllBoundsRecorded
int AllBoundsRecorded
Definition: vtkLabelHierarchyIterator.h:166
vtkIdTypeArray
dynamic, self-adjusting array of vtkIdType
Definition: vtkIdTypeArray.h:35
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:85
vtkStdString
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:34
vtkLabelHierarchyIterator::Hierarchy
vtkLabelHierarchy * Hierarchy
Definition: vtkLabelHierarchyIterator.h:162
h