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
47#include "vtkVariant.h" // For variant API
48
51class vtkIdTypeArray;
52class vtkIntArray;
53class vtkSimple3DCirclesStrategyInternal;
54
55class VTKINFOVISLAYOUT_EXPORT vtkSimple3DCirclesStrategy : public vtkGraphLayoutStrategy
56{
57public:
60 void PrintSelf( ostream& os, vtkIndent indent );
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
114 vtkGetObjectMacro(MarkedStartVertices,vtkAbstractArray);
116
117
120 virtual void SetMarkedValue( vtkVariant _arg );
121 virtual vtkVariant GetMarkedValue( void );
123
124
128 vtkSetMacro(ForceToUseUniversalStartPointsFinder,int);
129 vtkGetMacro(ForceToUseUniversalStartPointsFinder,int);
130 vtkBooleanMacro(ForceToUseUniversalStartPointsFinder,int);
132
133
137 vtkSetMacro(AutoHeight,int);
138 vtkGetMacro(AutoHeight,int);
139 vtkBooleanMacro(AutoHeight,int);
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 virtual void Layout( void );
178 virtual void SetGraph( vtkGraph * graph );
179protected:
180
183
184 inline void Transform( double Local[], double Global[] );
185
186 double Radius;
187 double Height;
188 double Origin[3];
189 double Direction[3];
196
199
200private:
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
218 vtkSimple3DCirclesStrategy(const vtkSimple3DCirclesStrategy&) VTK_DELETE_FUNCTION;
219 void operator=(const vtkSimple3DCirclesStrategy&) VTK_DELETE_FUNCTION;
220};
221
222#endif
Abstract superclass for all arrays.
A directed graph.
abstract superclass for all graph layout strategies
Base class for graph data types.
Definition: vtkGraph.h:288
dynamic, self-adjusting array of vtkIdType
a simple class to control print indentation
Definition: vtkIndent.h:40
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:46
places vertices on circles in 3D
virtual void SetGraph(vtkGraph *graph)
Set graph (warning: HierarchicalOrder and HierarchicalLayers will set to zero.
virtual double GetMinimumDegree(void)
virtual ~vtkSimple3DCirclesStrategy(void)
virtual void SetMarkedStartVertices(vtkAbstractArray *_arg)
Set or get initial vertices.
virtual void SetDirection(double dx, double dy, double dz)
Set or get the normal vector of the circles plain.
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual void SetMinimumDegree(double degree)
Set or get minimum degree (used by auto height).
static vtkSimple3DCirclesStrategy * New()
virtual void SetMarkedValue(vtkVariant _arg)
Set or get MarkedValue.
virtual vtkVariant GetMarkedValue(void)
virtual void SetHierarchicalOrder(vtkIdTypeArray *_arg)
Set or get hierarchical ordering of vertices (The array starts from the first vertex's id.
virtual void SetHierarchicalLayers(vtkIntArray *_arg)
Set or get hierarchical layers id by vertices (An usual vertex's layer id is greater or equal to zero...
virtual void SetDirection(double d[3])
virtual void Layout(void)
Standard layout method.
void Transform(double Local[], double Global[])
A atomic type representing the union of many types.
Definition: vtkVariant.h:76
@ order
Definition: vtkX3D.h:440
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
boost::graph_traits< vtkGraph * >::vertex_descriptor target(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)
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.