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 vtkSimple3DCirclesStrategy_h
42 #define vtkSimple3DCirclesStrategy_h
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
171  virtual ~vtkSimple3DCirclesStrategy( void );
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
boost::graph_traits< vtkGraph * >::vertex_descriptor target(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
virtual void SetGraph(vtkGraph *graph)
Abstract superclass for all arrays.
#define VTKINFOVISLAYOUT_EXPORT
dynamic, self-adjusting array of vtkIdType
A atomic type representing the union of many types.
Definition: vtkVariant.h:78
abstract superclass for all graph layout strategies
A directed graph.
Base class for graph data types.
Definition: vtkGraph.h:288
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:49
a simple class to control print indentation
Definition: vtkIndent.h:38
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()
virtual void Layout()=0
void PrintSelf(ostream &os, vtkIndent indent)