VTK  9.3.20240327
vtkBoostPrimMinimumSpanningTree.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-FileCopyrightText: Copyright 2008 Sandia Corporation
3 // SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov
62 #ifndef vtkBoostPrimMinimumSpanningTree_h
63 #define vtkBoostPrimMinimumSpanningTree_h
64 
65 #include "vtkInfovisBoostGraphAlgorithmsModule.h" // For export macro
66 #include "vtkStdString.h" // For string type
67 #include "vtkVariant.h" // For variant type
68 
69 #include "vtkTreeAlgorithm.h"
70 
71 VTK_ABI_NAMESPACE_BEGIN
72 class VTKINFOVISBOOSTGRAPHALGORITHMS_EXPORT vtkBoostPrimMinimumSpanningTree
73  : public vtkTreeAlgorithm
74 {
75 public:
78  void PrintSelf(ostream& os, vtkIndent indent) override;
79 
81 
88  vtkSetStringMacro(EdgeWeightArrayName);
90 
96 
105 
107 
111  vtkSetMacro(CreateGraphVertexIdArray, bool);
112  vtkGetMacro(CreateGraphVertexIdArray, bool);
113  vtkBooleanMacro(CreateGraphVertexIdArray, bool);
115 
117 
125  vtkGetMacro(NegateEdgeWeights, bool);
126  vtkBooleanMacro(NegateEdgeWeights, bool);
128 
129 protected:
132 
134 
136 
137 private:
138  char* EdgeWeightArrayName;
139  vtkIdType OriginVertexIndex;
140  vtkVariant OriginValue;
141  bool CreateGraphVertexIdArray;
142  bool ArrayNameSet;
143  char* ArrayName;
144  bool NegateEdgeWeights;
145  float EdgeWeightMultiplier;
146 
148 
151  vtkSetStringMacro(ArrayName);
153 
158  vtkIdType GetVertexIndex(vtkAbstractArray* abstract, vtkVariant value);
159 
161  void operator=(const vtkBoostPrimMinimumSpanningTree&) = delete;
162 };
163 
164 VTK_ABI_NAMESPACE_END
165 #endif
Abstract superclass for all arrays.
Constructs a minimum spanning tree from a graph, start node, and the weighting array.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
static vtkBoostPrimMinimumSpanningTree * New()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetNegateEdgeWeights(bool value)
Whether to negate the edge weights.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
void SetOriginVertex(vtkIdType index)
Set the index (into the vertex array) of the minimum spanning tree 'origin' vertex.
void SetOriginVertex(vtkStdString arrayName, vtkVariant value)
Set the minimum spanning tree 'origin' vertex.
a simple class to control print indentation
Definition: vtkIndent.h:108
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:78
Superclass for algorithms that produce only Tree as output.
A type representing the union of many types.
Definition: vtkVariant.h:162
@ info
Definition: vtkX3D.h:376
@ value
Definition: vtkX3D.h:220
@ port
Definition: vtkX3D.h:447
@ index
Definition: vtkX3D.h:246
int vtkIdType
Definition: vtkType.h:315