VTK
vtkCosmicTreeLayoutStrategy.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkCosmicTreeLayoutStrategy.h
5 
6 =========================================================================*/
7 /*----------------------------------------------------------------------------
8  Copyright (c) Sandia Corporation
9  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
10 ----------------------------------------------------------------------------*/
33 #ifndef vtkCosmicTreeLayoutStrategy_h
34 #define vtkCosmicTreeLayoutStrategy_h
35 
36 #include "vtkInfovisLayoutModule.h" // For export macro
37 #include "vtkGraphLayoutStrategy.h"
38 
39 class vtkDoubleArray;
40 class vtkDataArray;
41 class vtkPoints;
42 class vtkTree;
43 
44 class VTKINFOVISLAYOUT_EXPORT vtkCosmicTreeLayoutStrategy : public vtkGraphLayoutStrategy
45 {
46 public:
48  virtual void PrintSelf( ostream& os, vtkIndent indent );
50 
54  virtual void Layout();
55 
57 
65  vtkSetMacro(SizeLeafNodesOnly,int);
66  vtkGetMacro(SizeLeafNodesOnly,int);
67  vtkBooleanMacro(SizeLeafNodesOnly,int);
69 
71 
79  vtkSetMacro(LayoutDepth,int);
80  vtkGetMacro(LayoutDepth,int);
82 
84 
93  vtkSetMacro(LayoutRoot,vtkIdType);
94  vtkGetMacro(LayoutRoot,vtkIdType);
96 
98 
104  vtkSetStringMacro(NodeSizeArrayName);
105  vtkGetStringMacro(NodeSizeArrayName);
107 
108 protected:
109 
112  {
115  ALL
116  };
117 
119  virtual ~vtkCosmicTreeLayoutStrategy();
120 
124  void LayoutChildren(
125  vtkTree* tree, vtkPoints* newPoints, vtkDoubleArray* radii, vtkDoubleArray* scale,
126  vtkIdType root, int depth, RadiusMode mode );
127 
134  void OffsetChildren(
135  vtkTree* tree, vtkPoints* pts, vtkDoubleArray* radii, vtkDoubleArray* scale,
136  double parent[4], vtkIdType root, int depth, RadiusMode mode );
137 
146  vtkDoubleArray* CreateRadii( vtkIdType numVertices, double initialValue, vtkDataArray* inputRadii );
147 
154  vtkDoubleArray* CreateScaleFactors( vtkIdType numVertices );
155 
160 
161 private:
162  vtkCosmicTreeLayoutStrategy( const vtkCosmicTreeLayoutStrategy& ) VTK_DELETE_FUNCTION;
163  void operator = ( const vtkCosmicTreeLayoutStrategy& ) VTK_DELETE_FUNCTION;
164 };
165 
166 #endif // vtkCosmicTreeLayoutStrategy_h
int vtkIdType
Definition: vtkType.h:287
dynamic, self-adjusting array of double
abstract superclass for all graph layout strategies
a simple class to control print indentation
Definition: vtkIndent.h:39
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:54
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
tree layout strategy reminiscent of astronomical systems
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
RadiusMode
How are node sizes specified?
No node sizes specified... unit radius is assumed.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
A rooted tree data structure.
Definition: vtkTree.h:60
represent and manipulate 3D points
Definition: vtkPoints.h:39
virtual void Layout()=0
This is the layout method where the graph that was set in SetGraph() is laid out. ...
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
Only leaf node sizes specified... parents are calculated during layout.