VTK  9.1.0
vtkBoostPrimMinimumSpanningTree.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: Visualization Toolkit
4 Module: vtkBoostPrimMinimumSpanningTree.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 =========================================================================*/
15 /*-------------------------------------------------------------------------
16  Copyright 2008 Sandia Corporation.
17  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
18  the U.S. Government retains certain rights in this software.
19  -------------------------------------------------------------------------*/
75 #ifndef vtkBoostPrimMinimumSpanningTree_h
76 #define vtkBoostPrimMinimumSpanningTree_h
77 
78 #include "vtkInfovisBoostGraphAlgorithmsModule.h" // For export macro
79 #include "vtkStdString.h" // For string type
80 #include "vtkVariant.h" // For variant type
81 
82 #include "vtkTreeAlgorithm.h"
83 
84 class VTKINFOVISBOOSTGRAPHALGORITHMS_EXPORT vtkBoostPrimMinimumSpanningTree
85  : public vtkTreeAlgorithm
86 {
87 public:
90  void PrintSelf(ostream& os, vtkIndent indent) override;
91 
93 
100  vtkSetStringMacro(EdgeWeightArrayName);
102 
108 
117 
119 
123  vtkSetMacro(CreateGraphVertexIdArray, bool);
124  vtkGetMacro(CreateGraphVertexIdArray, bool);
125  vtkBooleanMacro(CreateGraphVertexIdArray, bool);
127 
129 
137  vtkGetMacro(NegateEdgeWeights, bool);
138  vtkBooleanMacro(NegateEdgeWeights, bool);
140 
141 protected:
144 
146 
148 
149 private:
150  char* EdgeWeightArrayName;
151  vtkIdType OriginVertexIndex;
152  vtkVariant OriginValue;
153  bool CreateGraphVertexIdArray;
154  bool ArrayNameSet;
155  char* ArrayName;
156  bool NegateEdgeWeights;
157  float EdgeWeightMultiplier;
158 
160 
163  vtkSetStringMacro(ArrayName);
165 
170  vtkIdType GetVertexIndex(vtkAbstractArray* abstract, vtkVariant value);
171 
173  void operator=(const vtkBoostPrimMinimumSpanningTree&) = delete;
174 };
175 
176 #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:113
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:105
Superclass for algorithms that produce only Tree as output.
A atomic type representing the union of many types.
Definition: vtkVariant.h:155
@ info
Definition: vtkX3D.h:382
@ value
Definition: vtkX3D.h:226
@ port
Definition: vtkX3D.h:453
@ index
Definition: vtkX3D.h:252
int vtkIdType
Definition: vtkType.h:332