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 =========================================================================*/
39 #ifndef vtkSimple3DCirclesStrategy_h
40 #define vtkSimple3DCirclesStrategy_h
41 
42 #include "vtkInfovisLayoutModule.h" // For export macro
43 #include "vtkGraphLayoutStrategy.h"
44 #include "vtkVariant.h" // For variant API
45 
46 class vtkAbstractArray;
47 class vtkDirectedGraph;
48 class vtkIdTypeArray;
49 class vtkIntArray;
50 class vtkSimple3DCirclesStrategyInternal;
51 
52 class VTKINFOVISLAYOUT_EXPORT vtkSimple3DCirclesStrategy : public vtkGraphLayoutStrategy
53 {
54 public:
57  void PrintSelf( ostream& os, vtkIndent indent ) override;
58 
59  enum
60  {
61  FixedRadiusMethod = 0, FixedDistanceMethod = 1
62  };
63 
65 
68  vtkSetMacro(Method,int);
69  vtkGetMacro(Method,int);
71 
72 
76  vtkSetMacro(Radius,double);
77  vtkGetMacro(Radius,double);
79 
80 
84  vtkSetMacro(Height,double);
85  vtkGetMacro(Height,double);
87 
88 
91  vtkSetVector3Macro(Origin,double);
92  vtkGetVector3Macro(Origin,double);
94 
95 
99  virtual void SetDirection( double dx, double dy, double dz );
100  virtual void SetDirection( double d[3] );
101  vtkGetVector3Macro(Direction,double);
103 
104 
110  virtual void SetMarkedStartVertices( vtkAbstractArray * _arg );
111  vtkGetObjectMacro(MarkedStartVertices,vtkAbstractArray);
113 
114 
117  virtual void SetMarkedValue( vtkVariant _arg );
118  virtual vtkVariant GetMarkedValue( void );
120 
121 
125  vtkSetMacro(ForceToUseUniversalStartPointsFinder,vtkTypeBool);
126  vtkGetMacro(ForceToUseUniversalStartPointsFinder,vtkTypeBool);
127  vtkBooleanMacro(ForceToUseUniversalStartPointsFinder,vtkTypeBool);
129 
130 
134  vtkSetMacro(AutoHeight,vtkTypeBool);
135  vtkGetMacro(AutoHeight,vtkTypeBool);
136  vtkBooleanMacro(AutoHeight,vtkTypeBool);
138 
139 
142  vtkSetMacro(MinimumRadian,double);
143  vtkGetMacro(MinimumRadian,double);
145 
146 
149  virtual void SetMinimumDegree( double degree );
150  virtual double GetMinimumDegree( void );
152 
153 
157  virtual void SetHierarchicalLayers( vtkIntArray * _arg );
158  vtkGetObjectMacro(HierarchicalLayers,vtkIntArray);
160 
161 
165  virtual void SetHierarchicalOrder( vtkIdTypeArray * _arg );
166  vtkGetObjectMacro(HierarchicalOrder,vtkIdTypeArray);
168 
171  void Layout( void ) override;
175  void SetGraph( vtkGraph * graph ) override;
176 protected:
177 
179  ~vtkSimple3DCirclesStrategy( void ) override;
180 
181  inline void Transform( double Local[], double Global[] );
182 
183  double Radius;
184  double Height;
185  double Origin[3];
186  double Direction[3];
187  int Method;
193 
196 
197 private:
198 
203  virtual int UniversalStartPoints( vtkDirectedGraph * input, vtkSimple3DCirclesStrategyInternal * target, vtkSimple3DCirclesStrategyInternal *StandAlones, vtkIntArray * layers );
207  virtual int BuildLayers( vtkDirectedGraph * input, vtkSimple3DCirclesStrategyInternal * source, vtkIntArray * layers );
211  virtual void BuildPointOrder( vtkDirectedGraph * input, vtkSimple3DCirclesStrategyInternal *source, vtkSimple3DCirclesStrategyInternal *StandAlones, vtkIntArray * layers, vtkIdTypeArray * order );
212 
213  double T[3][3];
214 
216  void operator=(const vtkSimple3DCirclesStrategy&) = delete;
217 };
218 
219 #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:65
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:281
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:39
a simple class to control print indentation
Definition: vtkIndent.h:33
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