VTK  9.0.1
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 "vtkGraphLayoutStrategy.h"
46 #include "vtkInfovisLayoutModule.h" // For export macro
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,
65  FixedDistanceMethod = 1
66  };
67 
69 
73  vtkSetMacro(Method, int);
74  vtkGetMacro(Method, int);
76 
77 
81  vtkSetMacro(Radius, double);
82  vtkGetMacro(Radius, double);
84 
85 
89  vtkSetMacro(Height, double);
90  vtkGetMacro(Height, double);
92 
93 
96  vtkSetVector3Macro(Origin, double);
97  vtkGetVector3Macro(Origin, double);
99 
100 
104  virtual void SetDirection(double dx, double dy, double dz);
105  virtual void SetDirection(double d[3]);
106  vtkGetVector3Macro(Direction, double);
108 
109 
116  virtual void SetMarkedStartVertices(vtkAbstractArray* _arg);
117  vtkGetObjectMacro(MarkedStartVertices, vtkAbstractArray);
119 
120 
123  virtual void SetMarkedValue(vtkVariant _arg);
124  virtual vtkVariant GetMarkedValue(void);
126 
127 
132  vtkSetMacro(ForceToUseUniversalStartPointsFinder, vtkTypeBool);
133  vtkGetMacro(ForceToUseUniversalStartPointsFinder, vtkTypeBool);
134  vtkBooleanMacro(ForceToUseUniversalStartPointsFinder, vtkTypeBool);
136 
137 
142  vtkSetMacro(AutoHeight, vtkTypeBool);
143  vtkGetMacro(AutoHeight, vtkTypeBool);
144  vtkBooleanMacro(AutoHeight, vtkTypeBool);
146 
147 
150  vtkSetMacro(MinimumRadian, double);
151  vtkGetMacro(MinimumRadian, double);
153 
154 
158  virtual void SetMinimumDegree(double degree);
159  virtual double GetMinimumDegree(void);
161 
162 
167  virtual void SetHierarchicalLayers(vtkIntArray* _arg);
168  vtkGetObjectMacro(HierarchicalLayers, vtkIntArray);
170 
171 
176  virtual void SetHierarchicalOrder(vtkIdTypeArray* _arg);
177  vtkGetObjectMacro(HierarchicalOrder, vtkIdTypeArray);
179 
182  void Layout(void) override;
187  void SetGraph(vtkGraph* graph) override;
188 
189 protected:
191  ~vtkSimple3DCirclesStrategy() override;
192 
193  inline void Transform(double Local[], double Global[]);
194 
195  double Radius;
196  double Height;
197  double Origin[3];
198  double Direction[3];
199  int Method;
205 
208 
209 private:
214  virtual int UniversalStartPoints(vtkDirectedGraph* input,
215  vtkSimple3DCirclesStrategyInternal* target, vtkSimple3DCirclesStrategyInternal* StandAlones,
216  vtkIntArray* layers);
221  virtual int BuildLayers(
222  vtkDirectedGraph* input, vtkSimple3DCirclesStrategyInternal* source, vtkIntArray* layers);
226  virtual void BuildPointOrder(vtkDirectedGraph* input, vtkSimple3DCirclesStrategyInternal* source,
227  vtkSimple3DCirclesStrategyInternal* StandAlones, vtkIntArray* layers, vtkIdTypeArray* order);
228 
229  double T[3][3];
230 
232  void operator=(const vtkSimple3DCirclesStrategy&) = delete;
233 };
234 
235 #endif
vtkVariant.h
degree
boost::graph_traits< vtkGraph * >::degree_size_type degree(boost::graph_traits< vtkGraph * >::vertex_descriptor u, vtkGraph *g)
Definition: vtkBoostGraphAdapter.h:1044
vtkObject::New
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
vtkGraphLayoutStrategy
abstract superclass for all graph layout strategies
Definition: vtkGraphLayoutStrategy.h:45
vtkSimple3DCirclesStrategy::Height
double Height
Definition: vtkSimple3DCirclesStrategy.h:196
vtkDirectedGraph
A directed graph.
Definition: vtkDirectedGraph.h:44
vtkSimple3DCirclesStrategy::HierarchicalOrder
vtkIdTypeArray * HierarchicalOrder
Definition: vtkSimple3DCirclesStrategy.h:207
vtkSimple3DCirclesStrategy::MarkedStartVertices
vtkAbstractArray * MarkedStartVertices
Definition: vtkSimple3DCirclesStrategy.h:200
vtkGraphLayoutStrategy::Layout
virtual void Layout()=0
This is the layout method where the graph that was set in SetGraph() is laid out.
vtkX3D::Transform
@ Transform
Definition: vtkX3D.h:47
target
boost::graph_traits< vtkGraph * >::vertex_descriptor target(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
Definition: vtkBoostGraphAdapter.h:965
vtkSimple3DCirclesStrategy::ForceToUseUniversalStartPointsFinder
vtkTypeBool ForceToUseUniversalStartPointsFinder
Definition: vtkSimple3DCirclesStrategy.h:202
vtkSimple3DCirclesStrategy::HierarchicalLayers
vtkIntArray * HierarchicalLayers
Definition: vtkSimple3DCirclesStrategy.h:206
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkIntArray
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:39
vtkVariant
A atomic type representing the union of many types.
Definition: vtkVariant.h:65
vtkGraphLayoutStrategy::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkGraphLayoutStrategy.h
vtkGraphLayoutStrategy::SetGraph
virtual void SetGraph(vtkGraph *graph)
Setting the graph for the layout strategy.
vtkX3D::order
@ order
Definition: vtkX3D.h:446
vtkAbstractArray
Abstract superclass for all arrays.
Definition: vtkAbstractArray.h:75
vtkSimple3DCirclesStrategy::Method
int Method
Definition: vtkSimple3DCirclesStrategy.h:199
vtkIdTypeArray
dynamic, self-adjusting array of vtkIdType
Definition: vtkIdTypeArray.h:35
vtkSimple3DCirclesStrategy::MinimumRadian
double MinimumRadian
Definition: vtkSimple3DCirclesStrategy.h:204
vtkSimple3DCirclesStrategy::MarkedValue
vtkVariant MarkedValue
Definition: vtkSimple3DCirclesStrategy.h:201
vtkSimple3DCirclesStrategy::AutoHeight
vtkTypeBool AutoHeight
Definition: vtkSimple3DCirclesStrategy.h:203
source
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
Definition: vtkBoostGraphAdapter.h:959
vtkSimple3DCirclesStrategy::Radius
double Radius
Definition: vtkSimple3DCirclesStrategy.h:195
vtkGraph
Base class for graph data types.
Definition: vtkGraph.h:289
vtkSimple3DCirclesStrategy
places vertices on circles in 3D
Definition: vtkSimple3DCirclesStrategy.h:55
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69