VTK  9.1.20211230
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 
88 
92  VTK_DEPRECATED_IN_9_1_0("Use virtual vtkStdString GetLabel()")
93  virtual vtkUnicodeString GetUnicodeLabel();
94 
98  virtual double GetOrientation();
99 
103  virtual vtkIdType GetLabelId() { return -1; }
104 
106 
109  vtkGetObjectMacro(Hierarchy, vtkLabelHierarchy);
111 
117 
124  virtual void GetNodeGeometry(double ctr[3], double& size) = 0;
125 
131  virtual void BoxNode();
132 
138  virtual void BoxAllNodes(vtkPolyData*);
139 
141 
147  vtkSetMacro(AllBounds, int);
148  vtkGetMacro(AllBounds, int);
150 
151 protected:
154 
155  void BoxNodeInternal3(const double* ctr, double sz);
156  void BoxNodeInternal2(const double* ctr, double sz);
157 
162 
165  double BoundsFactor;
168 
169 private:
171  void operator=(const vtkLabelHierarchyIterator&) = delete;
172 };
173 
174 #endif // vtkLabelHierarchyIterator_h
vtkFrustumSelector is a vtkSelector that selects elements based on whether they are inside or interse...
dynamic, self-adjusting array of vtkIdType
a simple class to control print indentation
Definition: vtkIndent.h:113
iterator over vtkLabelHierarchy
virtual void Next()
Advance the iterator.
virtual void SetTraversedBounds(vtkPolyData *)
Sets a polydata to fill with geometry representing the bounding boxes of the traversed octree nodes.
virtual void SetHierarchy(vtkLabelHierarchy *h)
The hierarchy being traversed by this iterator.
virtual void GetPoint(double x[3])
Retrieves the current label location.
virtual void BoxNode()
Add a representation to TraversedBounds for the current octree node.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual vtkStdString GetLabel()
Retrieves the current label string.
virtual void GetNodeGeometry(double ctr[3], double &size)=0
Retrieve the coordinates of the center of the current hierarchy node and the size of the node.
virtual bool IsAtEnd()
Returns true if the iterator is at the end.
virtual void Begin(vtkIdTypeArray *)
Initializes the iterator.
virtual void BoxAllNodes(vtkPolyData *)
Add a representation for all existing octree nodes to the specified polydata.
virtual void GetBoundedSize(double sz[2])
Retrieves the current label maximum width in world coordinates.
~vtkLabelHierarchyIterator() override
virtual int GetType()
Retrieves the current label type.
void BoxNodeInternal3(const double *ctr, double sz)
virtual void GetSize(double sz[2])
Retrieves the current label size.
void BoxNodeInternal2(const double *ctr, double sz)
contains an octree of labels
abstract base class for most VTK objects
Definition: vtkObject.h:82
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:194
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:105
String class that stores Unicode text.
@ size
Definition: vtkX3D.h:259
#define VTK_DEPRECATED_IN_9_1_0(reason)
int vtkIdType
Definition: vtkType.h:332