VTK  9.2.6
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=========================================================================*/
45#ifndef vtkSimple3DCirclesStrategy_h
46#define vtkSimple3DCirclesStrategy_h
47
49#include "vtkInfovisLayoutModule.h" // For export macro
50#include "vtkVariant.h" // For variant API
51
54class vtkIdTypeArray;
55class vtkIntArray;
56class vtkSimple3DCirclesStrategyInternal;
57
58class VTKINFOVISLAYOUT_EXPORT vtkSimple3DCirclesStrategy : public vtkGraphLayoutStrategy
59{
60public:
63 void PrintSelf(ostream& os, vtkIndent indent) override;
64
65 enum
66 {
67 FixedRadiusMethod = 0,
68 FixedDistanceMethod = 1
69 };
70
72
76 vtkSetMacro(Method, int);
77 vtkGetMacro(Method, int);
80
84 vtkSetMacro(Radius, double);
85 vtkGetMacro(Radius, double);
88
92 vtkSetMacro(Height, double);
93 vtkGetMacro(Height, double);
96
99 vtkSetVector3Macro(Origin, double);
100 vtkGetVector3Macro(Origin, double);
103
107 virtual void SetDirection(double dx, double dy, double dz);
108 virtual void SetDirection(double d[3]);
109 vtkGetVector3Macro(Direction, double);
112
120 vtkGetObjectMacro(MarkedStartVertices, vtkAbstractArray);
123
126 virtual void SetMarkedValue(vtkVariant _arg);
130
135 vtkSetMacro(ForceToUseUniversalStartPointsFinder, vtkTypeBool);
136 vtkGetMacro(ForceToUseUniversalStartPointsFinder, vtkTypeBool);
137 vtkBooleanMacro(ForceToUseUniversalStartPointsFinder, vtkTypeBool);
140
145 vtkSetMacro(AutoHeight, vtkTypeBool);
146 vtkGetMacro(AutoHeight, vtkTypeBool);
147 vtkBooleanMacro(AutoHeight, vtkTypeBool);
150
153 vtkSetMacro(MinimumRadian, double);
154 vtkGetMacro(MinimumRadian, double);
157
161 virtual void SetMinimumDegree(double degree);
162 virtual double GetMinimumDegree(void);
165
171 vtkGetObjectMacro(HierarchicalLayers, vtkIntArray);
174
180 vtkGetObjectMacro(HierarchicalOrder, vtkIdTypeArray);
182
185 void Layout(void) override;
190 void SetGraph(vtkGraph* graph) override;
191
192protected:
195
196 inline void Transform(double Local[], double Global[]);
197
198 double Radius;
199 double Height;
200 double Origin[3];
201 double Direction[3];
208
211
212private:
217 virtual int UniversalStartPoints(vtkDirectedGraph* input,
218 vtkSimple3DCirclesStrategyInternal* target, vtkSimple3DCirclesStrategyInternal* StandAlones,
219 vtkIntArray* layers);
224 virtual int BuildLayers(
225 vtkDirectedGraph* input, vtkSimple3DCirclesStrategyInternal* source, vtkIntArray* layers);
229 virtual void BuildPointOrder(vtkDirectedGraph* input, vtkSimple3DCirclesStrategyInternal* source,
230 vtkSimple3DCirclesStrategyInternal* StandAlones, vtkIntArray* layers, vtkIdTypeArray* order);
231
232 double T[3][3];
233
235 void operator=(const vtkSimple3DCirclesStrategy&) = delete;
236};
237
238#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:296
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
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:70
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)