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