VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkPBGLShortestPaths.h 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 -------------------------------------------------------------------------*/ 00039 #ifndef vtkPBGLShortestPaths_h 00040 #define vtkPBGLShortestPaths_h 00041 00042 #include "vtkInfovisParallelModule.h" // For export macro 00043 #include "vtkStdString.h" // For string type 00044 #include "vtkVariant.h" // For variant type 00045 00046 #include "vtkGraphAlgorithm.h" 00047 00048 class vtkSelection; 00049 00050 #if !defined(VTK_LEGACY_REMOVE) 00051 class VTKINFOVISPARALLEL_EXPORT vtkPBGLShortestPaths : public vtkGraphAlgorithm 00052 { 00053 public: 00054 static vtkPBGLShortestPaths *New(); 00055 vtkTypeMacro(vtkPBGLShortestPaths, vtkGraphAlgorithm); 00056 void PrintSelf(ostream& os, vtkIndent indent); 00057 00059 00060 void SetOriginSelection(vtkSelection *s); 00061 void SetOriginSelectionConnection(vtkAlgorithmOutput* algOutput) 00062 { 00063 this->SetInputConnection(1, algOutput); 00064 } 00066 00069 void SetOriginVertex(vtkIdType index); 00070 00075 void SetOriginVertex(vtkStdString arrayName, vtkVariant value); 00076 00081 void SetOriginVertexString(char* arrayName, char* value); 00082 00084 00088 vtkSetStringMacro(EdgeWeightArrayName); 00090 00092 00102 vtkSetMacro(Delta,double); 00104 00106 00111 vtkSetStringMacro(PredecessorArrayName); 00113 00115 00121 vtkSetStringMacro(PathLengthArrayName); 00123 00125 00129 vtkSetMacro(OriginFromSelection, bool); 00130 vtkGetMacro(OriginFromSelection, bool); 00131 vtkBooleanMacro(OriginFromSelection, bool); 00133 00135 00138 vtkGetMacro(OutputSelection, bool); 00139 vtkSetMacro(OutputSelection, bool); 00140 vtkBooleanMacro(OutputSelection, bool); 00142 00144 00147 vtkSetStringMacro(OutputSelectionType); 00149 00151 00154 vtkSetMacro(UseUniformEdgeWeights, bool); 00155 vtkGetMacro(UseUniformEdgeWeights, bool); 00156 vtkBooleanMacro(UseUniformEdgeWeights, bool); 00158 00159 00160 protected: 00161 vtkPBGLShortestPaths(); 00162 ~vtkPBGLShortestPaths(); 00163 00164 virtual int RequestData( 00165 vtkInformation *, 00166 vtkInformationVector **, 00167 vtkInformationVector *); 00168 00169 virtual int FillInputPortInformation( 00170 int port, vtkInformation* info); 00171 00172 virtual int FillOutputPortInformation( 00173 int port, vtkInformation* info); 00174 00175 private: 00176 00177 vtkIdType OriginVertexIndex; 00178 char* InputArrayName; 00179 char* EdgeWeightArrayName; 00180 double Delta; 00181 char* PredecessorArrayName; 00182 char* PathLengthArrayName; 00183 vtkVariant OriginValue; 00184 bool OutputSelection; 00185 bool OriginFromSelection; 00186 bool UseUniformEdgeWeights; 00187 char* OutputSelectionType; 00188 00190 00191 vtkSetStringMacro(InputArrayName); 00193 00195 00197 vtkIdType GetVertexIndex( 00198 vtkAbstractArray *abstract,vtkVariant value); 00200 00201 vtkPBGLShortestPaths(const vtkPBGLShortestPaths&); // Not implemented. 00202 void operator=(const vtkPBGLShortestPaths&); // Not implemented. 00203 }; 00204 00205 #endif //VTK_LEGACY_REMOVE 00206 #endif