VTK
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 "vtkRenderingLabelModule.h" // For export macro
32 #include "vtkObject.h"
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 
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:
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
vtkLabelHierarchyIterator::vtkLabelHierarchyIterator
vtkLabelHierarchyIterator()
vtkStdString.h
vtkLabelHierarchyIterator::GetLabelId
virtual vtkIdType GetLabelId()
Retrieves the current label id.
Definition: vtkLabelHierarchyIterator.h:102
vtkLabelHierarchyIterator::TraversedBounds
vtkPolyData * TraversedBounds
Definition: vtkLabelHierarchyIterator.h:163
vtkLabelHierarchyIterator::GetPoint
virtual void GetPoint(double x[3])
Retrieves the current label location.
vtkLabelHierarchy
contains an octree of labels
Definition: vtkLabelHierarchy.h:82
vtkIdType
int vtkIdType
Definition: vtkType.h:347
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:60
vtkLabelHierarchyIterator::AllBounds
int AllBounds
Definition: vtkLabelHierarchyIterator.h:165
vtkLabelHierarchyIterator
iterator over vtkLabelHierarchy
Definition: vtkLabelHierarchyIterator.h:41
vtkLabelHierarchyIterator::~vtkLabelHierarchyIterator
~vtkLabelHierarchyIterator() override
vtkLabelHierarchyIterator::SetHierarchy
virtual void SetHierarchy(vtkLabelHierarchy *h)
The hierarchy being traversed by this iterator.
vtkLabelHierarchyIterator::GetUnicodeLabel
virtual vtkUnicodeString GetUnicodeLabel()
Retrieves the current label as a unicode string.
vtkLabelHierarchyIterator::BoundsFactor
double BoundsFactor
Definition: vtkLabelHierarchyIterator.h:164
vtkLabelHierarchyIterator::GetOrientation
virtual double GetOrientation()
Retrieves the current label orientation.
vtkLabelHierarchyIterator::Begin
virtual void Begin(vtkIdTypeArray *)
Initializes the iterator.
Definition: vtkLabelHierarchyIterator.h:52
vtkLabelHierarchyIterator::SetTraversedBounds
virtual void SetTraversedBounds(vtkPolyData *)
Sets a polydata to fill with geometry representing the bounding boxes of the traversed octree nodes.
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:40
vtkUnicodeString
String class that stores Unicode text.
Definition: vtkUnicodeString.h:73
vtkLabelHierarchyIterator::GetBoundedSize
virtual void GetBoundedSize(double sz[2])
Retrieves the current label maximum width in world coordinates.
vtkX3D::size
@ size
Definition: vtkX3D.h:253
vtkLabelHierarchyIterator::BoxNodeInternal2
void BoxNodeInternal2(const double *ctr, double sz)
vtkLabelHierarchyIterator::BoxNodeInternal3
void BoxNodeInternal3(const double *ctr, double sz)
vtkLabelHierarchyIterator::GetType
virtual int GetType()
Retrieves the current label type.
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:42
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:86
vtkLabelHierarchyIterator::GetSize
virtual void GetSize(double sz[2])
Retrieves the current label size.
vtkLabelHierarchyIterator::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkLabelHierarchyIterator::BoxNode
virtual void BoxNode()
Add a representation to TraversedBounds for the current octree node.
vtkStdString
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:41
vtkLabelHierarchyIterator::BoxAllNodes
virtual void BoxAllNodes(vtkPolyData *)
Add a representation for all existing octree nodes to the specified polydata.
vtkLabelHierarchyIterator::GetNodeGeometry
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.
vtkLabelHierarchyIterator::Hierarchy
vtkLabelHierarchy * Hierarchy
Definition: vtkLabelHierarchyIterator.h:162
h
vtkLabelHierarchyIterator::GetLabel
virtual vtkStdString GetLabel()
Retrieves the current label string.