VTK  9.1.0
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
46#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) override;
61
62 enum
63 {
64 FixedRadiusMethod = 0,
65 FixedDistanceMethod = 1
66 };
67
69
73 vtkSetMacro(Method, int);
74 vtkGetMacro(Method, int);
77
81 vtkSetMacro(Radius, double);
82 vtkGetMacro(Radius, double);
85
89 vtkSetMacro(Height, double);
90 vtkGetMacro(Height, double);
93
96 vtkSetVector3Macro(Origin, double);
97 vtkGetVector3Macro(Origin, double);
100
104 virtual void SetDirection(double dx, double dy, double dz);
105 virtual void SetDirection(double d[3]);
106 vtkGetVector3Macro(Direction, double);
109
117 vtkGetObjectMacro(MarkedStartVertices, vtkAbstractArray);
120
123 virtual void SetMarkedValue(vtkVariant _arg);
127
132 vtkSetMacro(ForceToUseUniversalStartPointsFinder, vtkTypeBool);
133 vtkGetMacro(ForceToUseUniversalStartPointsFinder, vtkTypeBool);
134 vtkBooleanMacro(ForceToUseUniversalStartPointsFinder, vtkTypeBool);
137
142 vtkSetMacro(AutoHeight, vtkTypeBool);
143 vtkGetMacro(AutoHeight, vtkTypeBool);
144 vtkBooleanMacro(AutoHeight, vtkTypeBool);
147
150 vtkSetMacro(MinimumRadian, double);
151 vtkGetMacro(MinimumRadian, double);
154
158 virtual void SetMinimumDegree(double degree);
159 virtual double GetMinimumDegree(void);
162
168 vtkGetObjectMacro(HierarchicalLayers, vtkIntArray);
171
177 vtkGetObjectMacro(HierarchicalOrder, vtkIdTypeArray);
179
182 void Layout(void) override;
187 void SetGraph(vtkGraph* graph) override;
188
189protected:
192
193 inline void Transform(double Local[], double Global[]);
194
195 double Radius;
196 double Height;
197 double Origin[3];
198 double Direction[3];
205
208
209private:
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
Abstract superclass for all arrays.
A directed graph.
abstract superclass for all graph layout strategies
Base class for graph data types.
Definition: vtkGraph.h:339
dynamic, self-adjusting array of vtkIdType
a simple class to control print indentation
Definition: vtkIndent.h:113
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:149
places vertices on circles in 3D
void Layout(void) override
Standard layout method.
virtual double GetMinimumDegree(void)
Set or get minimum degree (used by auto height).
virtual void SetMarkedStartVertices(vtkAbstractArray *_arg)
Set or get initial vertices.
void SetGraph(vtkGraph *graph) override
Set graph (warning: HierarchicalOrder and HierarchicalLayers will set to zero.
~vtkSimple3DCirclesStrategy() override
virtual void SetDirection(double dx, double dy, double dz)
Set or get the normal vector of the circles plain.
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.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual vtkVariant GetMarkedValue(void)
Set or get MarkedValue.
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])
Set or get the normal vector of the circles plain.
void Transform(double Local[], double Global[])
A atomic type representing the union of many types.
Definition: vtkVariant.h:145
@ order
Definition: vtkX3D.h:446
int vtkTypeBool
Definition: vtkABI.h:69
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)