VTK  9.3.20240328
vtkGraphLayoutFilter.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
25 #ifndef vtkGraphLayoutFilter_h
26 #define vtkGraphLayoutFilter_h
27 
28 #include "vtkFiltersGeneralModule.h" // For export macro
29 #include "vtkPolyDataAlgorithm.h"
30 
31 VTK_ABI_NAMESPACE_BEGIN
32 class VTKFILTERSGENERAL_EXPORT vtkGraphLayoutFilter : public vtkPolyDataAlgorithm
33 {
34 public:
36 
38  void PrintSelf(ostream& os, vtkIndent indent) override;
39 
41 
46  vtkSetVector6Macro(GraphBounds, double);
47  vtkGetVectorMacro(GraphBounds, double, 6);
49 
51 
56  vtkSetMacro(AutomaticBoundsComputation, vtkTypeBool);
57  vtkGetMacro(AutomaticBoundsComputation, vtkTypeBool);
58  vtkBooleanMacro(AutomaticBoundsComputation, vtkTypeBool);
60 
62 
67  vtkSetClampMacro(MaxNumberOfIterations, int, 0, VTK_INT_MAX);
68  vtkGetMacro(MaxNumberOfIterations, int);
70 
72 
77  vtkSetClampMacro(CoolDownRate, double, 0.01, VTK_DOUBLE_MAX);
78  vtkGetMacro(CoolDownRate, double);
80 
81  // Turn on/off layout of graph in three dimensions. If off, graph
82  // layout occurs in two dimensions. By default, three dimensional
83  // layout is on.
84  vtkSetMacro(ThreeDimensionalLayout, vtkTypeBool);
85  vtkGetMacro(ThreeDimensionalLayout, vtkTypeBool);
86  vtkBooleanMacro(ThreeDimensionalLayout, vtkTypeBool);
87 
88 protected:
90  ~vtkGraphLayoutFilter() override = default;
91 
93 
94  double GraphBounds[6];
95  vtkTypeBool AutomaticBoundsComputation; // Boolean controls automatic bounds calc.
96  int MaxNumberOfIterations; // Maximum number of iterations.
97  double CoolDownRate; // Cool-down rate. Note: Higher # = Slower rate.
98  vtkTypeBool ThreeDimensionalLayout; // Boolean for a third dimension.
99 private:
101  void operator=(const vtkGraphLayoutFilter&) = delete;
102 };
103 
104 VTK_ABI_NAMESPACE_END
105 #endif
nice layout of undirected graphs in 3D
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
static vtkGraphLayoutFilter * New()
~vtkGraphLayoutFilter() override=default
vtkTypeBool AutomaticBoundsComputation
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkTypeBool ThreeDimensionalLayout
a simple class to control print indentation
Definition: vtkIndent.h:108
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Superclass for algorithms that produce only polydata as output.
int vtkTypeBool
Definition: vtkABI.h:64
#define VTK_DOUBLE_MAX
Definition: vtkType.h:154
#define VTK_INT_MAX
Definition: vtkType.h:144