VTK  9.1.0
vtkBoostPrimMinimumSpanningTree.h
Go to the documentation of this file.
1/*=========================================================================
2
3Program: Visualization Toolkit
4Module: vtkBoostPrimMinimumSpanningTree.h
5
6Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7All rights reserved.
8See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10This software is distributed WITHOUT ANY WARRANTY; without even
11the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12PURPOSE. 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
84class VTKINFOVISBOOSTGRAPHALGORITHMS_EXPORT vtkBoostPrimMinimumSpanningTree
85 : public vtkTreeAlgorithm
86{
87public:
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
136 void SetNegateEdgeWeights(bool value);
137 vtkGetMacro(NegateEdgeWeights, bool);
138 vtkBooleanMacro(NegateEdgeWeights, bool);
140
141protected:
144
146
147 int FillInputPortInformation(int port, vtkInformation* info) override;
148
149private:
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.
static vtkBoostPrimMinimumSpanningTree * New()
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
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:145
int vtkIdType
Definition: vtkType.h:332