00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00045 #ifndef __vtkBoostPrimMinimumSpanningTree_h
00046 #define __vtkBoostPrimMinimumSpanningTree_h
00047
00048 #include "vtkStdString.h"
00049 #include "vtkVariant.h"
00050
00051 #include "vtkTreeAlgorithm.h"
00052
00053 class VTK_INFOVIS_EXPORT vtkBoostPrimMinimumSpanningTree : public vtkTreeAlgorithm
00054 {
00055 public:
00056 static vtkBoostPrimMinimumSpanningTree *New();
00057 vtkTypeMacro(vtkBoostPrimMinimumSpanningTree, vtkTreeAlgorithm);
00058 void PrintSelf(ostream& os, vtkIndent indent);
00059
00061
00065 vtkSetStringMacro(EdgeWeightArrayName);
00067
00070 void SetOriginVertex(vtkIdType index);
00071
00072
00073
00075
00079 void SetOriginVertex(vtkStdString arrayName, vtkVariant value);
00080
00082
00084
00086 vtkSetMacro(CreateGraphVertexIdArray, bool);
00087 vtkGetMacro(CreateGraphVertexIdArray, bool);
00088 vtkBooleanMacro(CreateGraphVertexIdArray, bool);
00090
00091
00093
00097 void SetNegateEdgeWeights(bool value);
00098 vtkGetMacro(NegateEdgeWeights, bool);
00099 vtkBooleanMacro(NegateEdgeWeights, bool);
00101
00102 protected:
00103 vtkBoostPrimMinimumSpanningTree();
00104 ~vtkBoostPrimMinimumSpanningTree();
00105
00106 int RequestData(
00107 vtkInformation *,
00108 vtkInformationVector **,
00109 vtkInformationVector *);
00110
00111 int FillInputPortInformation(
00112 int port, vtkInformation* info);
00113
00114 private:
00115 char* EdgeWeightArrayName;
00116 vtkIdType OriginVertexIndex;
00117 vtkVariant OriginValue;
00118 bool CreateGraphVertexIdArray;
00119 bool ArrayNameSet;
00120 char* ArrayName;
00121 bool NegateEdgeWeights;
00122 float EdgeWeightMultiplier;
00123
00125
00126 vtkSetStringMacro(ArrayName);
00128
00130
00132 vtkIdType GetVertexIndex(
00133 vtkAbstractArray *abstract,vtkVariant value);
00135
00136 vtkBoostPrimMinimumSpanningTree(const vtkBoostPrimMinimumSpanningTree&);
00137 void operator=(const vtkBoostPrimMinimumSpanningTree&);
00138 };
00139
00140 #endif