VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkBoostPrimMinimumSpanningTree.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00015 /*------------------------------------------------------------------------- 00016 Copyright 2008 Sandia Corporation. 00017 Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, 00018 the U.S. Government retains certain rights in this software. 00019 -------------------------------------------------------------------------*/ 00045 #ifndef __vtkBoostPrimMinimumSpanningTree_h 00046 #define __vtkBoostPrimMinimumSpanningTree_h 00047 00048 #include "vtkStdString.h" // For string type 00049 #include "vtkVariant.h" // For variant type 00050 00051 #include "vtkTreeAlgorithm.h" 00052 00053 class VTK_INFOVIS_EXPORT vtkBoostPrimMinimumSpanningTree : public vtkTreeAlgorithm 00054 { 00055 public: 00056 static vtkBoostPrimMinimumSpanningTree *New(); 00057 vtkTypeRevisionMacro(vtkBoostPrimMinimumSpanningTree, vtkTreeAlgorithm); 00058 void PrintSelf(ostream& os, vtkIndent indent); 00059 00061 00065 vtkSetStringMacro(EdgeWeightArrayName); 00067 00070 void SetOriginVertex(vtkIdType index); 00071 00072 //BTX 00073 00075 00079 void SetOriginVertex(vtkStdString arrayName, vtkVariant value); 00080 //ETX 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&); // Not implemented. 00137 void operator=(const vtkBoostPrimMinimumSpanningTree&); // Not implemented. 00138 }; 00139 00140 #endif