VTK
vtkSimple3DCirclesStrategy.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkSimple3DCirclesStrategy.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 =========================================================================*/
42 #ifndef vtkSimple3DCirclesStrategy_h
43 #define vtkSimple3DCirclesStrategy_h
44 
45 #include "vtkInfovisLayoutModule.h" // For export macro
46 #include "vtkGraphLayoutStrategy.h"
47 #include "vtkVariant.h" // For variant API
48 
49 class vtkAbstractArray;
50 class vtkDirectedGraph;
51 class vtkIdTypeArray;
52 class vtkIntArray;
53 class vtkSimple3DCirclesStrategyInternal;
54 
55 class VTKINFOVISLAYOUT_EXPORT vtkSimple3DCirclesStrategy : public vtkGraphLayoutStrategy
56 {
57 public:
60  void PrintSelf( ostream& os, vtkIndent indent ) override;
61 
62  enum
63  {
64  FixedRadiusMethod = 0, FixedDistanceMethod = 1
65  };
66 
68 
71  vtkSetMacro(Method,int);
72  vtkGetMacro(Method,int);
74 
75 
79  vtkSetMacro(Radius,double);
80  vtkGetMacro(Radius,double);
82 
83 
87  vtkSetMacro(Height,double);
88  vtkGetMacro(Height,double);
90 
91 
94  vtkSetVector3Macro(Origin,double);
95  vtkGetVector3Macro(Origin,double);
97 
98 
102  virtual void SetDirection( double dx, double dy, double dz );
103  virtual void SetDirection( double d[3] );
104  vtkGetVector3Macro(Direction,double);
106 
107 
113  virtual void SetMarkedStartVertices( vtkAbstractArray * _arg );
114  vtkGetObjectMacro(MarkedStartVertices,vtkAbstractArray);
116 
117 
120  virtual void SetMarkedValue( vtkVariant _arg );
121  virtual vtkVariant GetMarkedValue( void );
123 
124 
128  vtkSetMacro(ForceToUseUniversalStartPointsFinder,vtkTypeBool);
129  vtkGetMacro(ForceToUseUniversalStartPointsFinder,vtkTypeBool);
130  vtkBooleanMacro(ForceToUseUniversalStartPointsFinder,vtkTypeBool);
132 
133 
137  vtkSetMacro(AutoHeight,vtkTypeBool);
138  vtkGetMacro(AutoHeight,vtkTypeBool);
139  vtkBooleanMacro(AutoHeight,vtkTypeBool);
141 
142 
145  vtkSetMacro(MinimumRadian,double);
146  vtkGetMacro(MinimumRadian,double);
148 
149 
152  virtual void SetMinimumDegree( double degree );
153  virtual double GetMinimumDegree( void );
155 
156 
160  virtual void SetHierarchicalLayers( vtkIntArray * _arg );
161  vtkGetObjectMacro(HierarchicalLayers,vtkIntArray);
163 
164 
168  virtual void SetHierarchicalOrder( vtkIdTypeArray * _arg );
169  vtkGetObjectMacro(HierarchicalOrder,vtkIdTypeArray);
171 
174  void Layout( void ) override;
178  void SetGraph( vtkGraph * graph ) override;
179 protected:
180 
182  ~vtkSimple3DCirclesStrategy( void ) override;
183 
184  inline void Transform( double Local[], double Global[] );
185 
186  double Radius;
187  double Height;
188  double Origin[3];
189  double Direction[3];
190  int Method;
196 
199 
200 private:
201 
206  virtual int UniversalStartPoints( vtkDirectedGraph * input, vtkSimple3DCirclesStrategyInternal * target, vtkSimple3DCirclesStrategyInternal *StandAlones, vtkIntArray * layers );
210  virtual int BuildLayers( vtkDirectedGraph * input, vtkSimple3DCirclesStrategyInternal * source, vtkIntArray * layers );
214  virtual void BuildPointOrder( vtkDirectedGraph * input, vtkSimple3DCirclesStrategyInternal *source, vtkSimple3DCirclesStrategyInternal *StandAlones, vtkIntArray * layers, vtkIdTypeArray * order );
215 
216  double T[3][3];
217 
219  void operator=(const vtkSimple3DCirclesStrategy&) = delete;
220 };
221 
222 #endif
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
boost::graph_traits< vtkGraph * >::vertex_descriptor target(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
virtual void SetGraph(vtkGraph *graph)
Setting the graph for the layout strategy.
Abstract superclass for all arrays.
dynamic, self-adjusting array of vtkIdType
A atomic type representing the union of many types.
Definition: vtkVariant.h:71
abstract superclass for all graph layout strategies
A directed graph.
int vtkTypeBool
Definition: vtkABI.h:69
Base class for graph data types.
Definition: vtkGraph.h:287
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:45
a simple class to control print indentation
Definition: vtkIndent.h:39
places vertices on circles in 3D
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
boost::graph_traits< vtkGraph * >::degree_size_type degree(boost::graph_traits< vtkGraph * >::vertex_descriptor u, vtkGraph *g)
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
virtual void Layout()=0
This is the layout method where the graph that was set in SetGraph() is laid out. ...
Transform
Definition: ADIOSDefs.h:40