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 =========================================================================*/
41 #ifndef vtkSimple3DCirclesStrategyH
42 #define vtkSimple3DCirclesStrategyH 1
43 
44 #include "vtkInfovisLayoutModule.h" // For export macro
45 #include "vtkGraphLayoutStrategy.h"
46 #include "vtkVariant.h" // For variant API
47 
48 class vtkAbstractArray;
49 class vtkDirectedGraph;
50 class vtkIdTypeArray;
51 class vtkIntArray;
52 class vtkSimple3DCirclesStrategyInternal;
53 
55  {
56 public:
59  void PrintSelf( ostream& os, vtkIndent indent );
60 
61 //BTX
62  enum
63  {
64  FixedRadiusMethod = 0, FixedDistanceMethod = 1
65  };
66 //ETX
68 
71  vtkSetMacro(Method,int);
72  vtkGetMacro(Method,int);
74 
75 
78  vtkSetMacro(Radius,double);
79  vtkGetMacro(Radius,double);
81 
82 
85  vtkSetMacro(Height,double);
86  vtkGetMacro(Height,double);
88 
89 
91  vtkSetVector3Macro(Origin,double);
92  vtkGetVector3Macro(Origin,double);
94 
95 
98  virtual void SetDirection( double dx, double dy, double dz );
99  virtual void SetDirection( double d[3] );
100  vtkGetVector3Macro(Direction,double);
102 
103 
109  virtual void SetMarkedStartVertices( vtkAbstractArray * _arg );
110  vtkGetObjectMacro(MarkedStartVertices,vtkAbstractArray);
112 
113 
114  virtual void SetMarkedValue( vtkVariant _arg );
115  virtual vtkVariant GetMarkedValue( void );
117 
118 
122  vtkSetMacro(ForceToUseUniversalStartPointsFinder,int);
123  vtkGetMacro(ForceToUseUniversalStartPointsFinder,int);
124  vtkBooleanMacro(ForceToUseUniversalStartPointsFinder,int);
126 
127 
131  vtkSetMacro(AutoHeight,int);
132  vtkGetMacro(AutoHeight,int);
133  vtkBooleanMacro(AutoHeight,int);
135 
136 
137  vtkSetMacro(MinimumRadian,double);
138  vtkGetMacro(MinimumRadian,double);
140 
141 
143  virtual void SetMinimumDegree( double degree );
144  virtual double GetMinimumDegree( void );
146 
147 
151  virtual void SetHierarchicalLayers( vtkIntArray * _arg );
152  vtkGetObjectMacro(HierarchicalLayers,vtkIntArray);
154 
155 
159  virtual void SetHierarchicalOrder( vtkIdTypeArray * _arg );
160  vtkGetObjectMacro(HierarchicalOrder,vtkIdTypeArray);
162 
163  virtual void Layout( void );
165 
167  virtual void SetGraph( vtkGraph * graph );
168 protected:
169 //BTX
173 
174  inline void Transform( double Local[], double Global[] );
175 
176  double Radius;
177  double Height;
178  double Origin[3];
179  double Direction[3];
180  int Method;
186 
189 //ETX
190 private:
191 //BTX
195  virtual int UniversalStartPoints( vtkDirectedGraph * input, vtkSimple3DCirclesStrategyInternal * target, vtkSimple3DCirclesStrategyInternal *StandAlones, vtkIntArray * layers );
199  virtual int BuildLayers( vtkDirectedGraph * input, vtkSimple3DCirclesStrategyInternal * source, vtkIntArray * layers );
201  virtual void BuildPointOrder( vtkDirectedGraph * input, vtkSimple3DCirclesStrategyInternal *source, vtkSimple3DCirclesStrategyInternal *StandAlones, vtkIntArray * layers, vtkIdTypeArray * order );
202 
203  double T[3][3];
204 //ETX
205 
206  vtkSimple3DCirclesStrategy(const vtkSimple3DCirclesStrategy&); // Not implemented.
207  void operator=(const vtkSimple3DCirclesStrategy&); // Not implemented.
208  };
209 
210 #endif
vtkSimple3DCirclesStrategy::New
static vtkSimple3DCirclesStrategy * New()
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkSimple3DCirclesStrategy::~vtkSimple3DCirclesStrategy
virtual ~vtkSimple3DCirclesStrategy(void)
vtkVariant.h
vtkSimple3DCirclesStrategy::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkSetVector3Macro
#define vtkSetVector3Macro(name, type)
Definition: vtkSetGet.h:287
vtkSimple3DCirclesStrategy::SetHierarchicalLayers
virtual void SetHierarchicalLayers(vtkIntArray *_arg)
vtkSimple3DCirclesStrategy::SetMarkedValue
virtual void SetMarkedValue(vtkVariant _arg)
vtkGraphLayoutStrategy
abstract superclass for all graph layout strategies
Definition: vtkGraphLayoutStrategy.h:45
vtkSimple3DCirclesStrategy::vtkSimple3DCirclesStrategy
vtkSimple3DCirclesStrategy(void)
vtkSimple3DCirclesStrategy::Height
double Height
Definition: vtkSimple3DCirclesStrategy.h:177
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkDirectedGraph
A directed graph.
Definition: vtkDirectedGraph.h:47
vtkSimple3DCirclesStrategy::ForceToUseUniversalStartPointsFinder
int ForceToUseUniversalStartPointsFinder
Definition: vtkSimple3DCirclesStrategy.h:183
vtkSimple3DCirclesStrategy::HierarchicalOrder
vtkIdTypeArray * HierarchicalOrder
Definition: vtkSimple3DCirclesStrategy.h:188
vtkSimple3DCirclesStrategy::SetDirection
virtual void SetDirection(double dx, double dy, double dz)
vtkSimple3DCirclesStrategy::MarkedStartVertices
vtkAbstractArray * MarkedStartVertices
Definition: vtkSimple3DCirclesStrategy.h:181
vtkgl::input
GLenum GLenum GLenum input
Definition: vtkgl.h:15941
vtkSimple3DCirclesStrategy::SetHierarchicalOrder
virtual void SetHierarchicalOrder(vtkIdTypeArray *_arg)
vtkSimple3DCirclesStrategy::GetMarkedValue
virtual vtkVariant GetMarkedValue(void)
vtkSimple3DCirclesStrategy::SetGraph
virtual void SetGraph(vtkGraph *graph)
vtkSimple3DCirclesStrategy::SetMinimumDegree
virtual void SetMinimumDegree(double degree)
source
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
Definition: vtkBoostGraphAdapter.h:821
vtkGetVector3Macro
#define vtkGetVector3Macro(name, type)
Definition: vtkSetGet.h:304
vtkSimple3DCirclesStrategy::GetMinimumDegree
virtual double GetMinimumDegree(void)
vtkSimple3DCirclesStrategy::HierarchicalLayers
vtkIntArray * HierarchicalLayers
Definition: vtkSimple3DCirclesStrategy.h:187
vtkSimple3DCirclesStrategy::Transform
void Transform(double Local[], double Global[])
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkIntArray
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:53
vtkVariant
A atomic type representing the union of many types.
Definition: vtkVariant.h:79
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
VTKINFOVISLAYOUT_EXPORT
#define VTKINFOVISLAYOUT_EXPORT
Definition: vtkInfovisLayoutModule.h:15
vtkGraphLayoutStrategy.h
degree
boost::graph_traits< vtkGraph * >::degree_size_type degree(boost::graph_traits< vtkGraph * >::vertex_descriptor u, vtkGraph *g)
Definition: vtkBoostGraphAdapter.h:927
vtkInfovisLayoutModule.h
vtkgl::order
GLuint GLdouble GLdouble GLint GLint order
Definition: vtkgl.h:18750
vtkAbstractArray
Abstract superclass for all arrays.
Definition: vtkAbstractArray.h:65
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkSimple3DCirclesStrategy::SetDirection
virtual void SetDirection(double d[3])
vtkSimple3DCirclesStrategy::Method
int Method
Definition: vtkSimple3DCirclesStrategy.h:180
vtkSimple3DCirclesStrategy::SetMarkedStartVertices
virtual void SetMarkedStartVertices(vtkAbstractArray *_arg)
vtkIdTypeArray
dynamic, self-adjusting array of vtkIdType
Definition: vtkIdTypeArray.h:49
vtkSimple3DCirclesStrategy::Layout
virtual void Layout(void)
vtkSimple3DCirclesStrategy::MinimumRadian
double MinimumRadian
Definition: vtkSimple3DCirclesStrategy.h:185
vtkSimple3DCirclesStrategy::MarkedValue
vtkVariant MarkedValue
Definition: vtkSimple3DCirclesStrategy.h:182
vtkSimple3DCirclesStrategy::AutoHeight
int AutoHeight
Definition: vtkSimple3DCirclesStrategy.h:184
vtkSimple3DCirclesStrategy::Radius
double Radius
Definition: vtkSimple3DCirclesStrategy.h:176
vtkGraph
Base class for graph data types.
Definition: vtkGraph.h:289
target
boost::graph_traits< vtkGraph * >::vertex_descriptor target(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
Definition: vtkBoostGraphAdapter.h:828
vtkSimple3DCirclesStrategy
places vertices on circles in 3D
Definition: vtkSimple3DCirclesStrategy.h:55