VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkBoostBreadthFirstSearch.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 -------------------------------------------------------------------------*/ 00036 #ifndef __vtkBoostBreadthFirstSearch_h 00037 #define __vtkBoostBreadthFirstSearch_h 00038 00039 #include "vtkStdString.h" // For string type 00040 #include "vtkVariant.h" // For variant type 00041 00042 #include "vtkGraphAlgorithm.h" 00043 00044 class vtkSelection; 00045 00046 class VTK_INFOVIS_EXPORT vtkBoostBreadthFirstSearch : public vtkGraphAlgorithm 00047 { 00048 public: 00049 static vtkBoostBreadthFirstSearch *New(); 00050 vtkTypeRevisionMacro(vtkBoostBreadthFirstSearch, vtkGraphAlgorithm); 00051 void PrintSelf(ostream& os, vtkIndent indent); 00052 00054 00055 void SetOriginSelection(vtkSelection *s); 00056 void SetOriginSelectionConnection(vtkAlgorithmOutput* algOutput) 00057 { 00058 this->SetInputConnection(1, algOutput); 00059 } 00061 00064 void SetOriginVertex(vtkIdType index); 00065 00066 //BTX 00067 00069 00073 void SetOriginVertex(vtkStdString arrayName, vtkVariant value); 00074 //ETX 00076 00081 void SetOriginVertexString(char* arrayName, char* value); 00082 00084 00086 vtkSetStringMacro(OutputArrayName); 00088 00090 00094 vtkSetMacro(OriginFromSelection, bool); 00095 vtkGetMacro(OriginFromSelection, bool); 00096 vtkBooleanMacro(OriginFromSelection, bool); 00098 00100 00103 vtkGetMacro(OutputSelection, bool); 00104 vtkSetMacro(OutputSelection, bool); 00105 vtkBooleanMacro(OutputSelection, bool); 00107 00109 00112 vtkSetStringMacro(OutputSelectionType); 00114 00115 protected: 00116 vtkBoostBreadthFirstSearch(); 00117 ~vtkBoostBreadthFirstSearch(); 00118 00119 virtual int RequestData( 00120 vtkInformation *, 00121 vtkInformationVector **, 00122 vtkInformationVector *); 00123 00124 virtual int FillInputPortInformation( 00125 int port, vtkInformation* info); 00126 00127 virtual int FillOutputPortInformation( 00128 int port, vtkInformation* info); 00129 00130 private: 00131 00132 vtkIdType OriginVertexIndex; 00133 char* InputArrayName; 00134 char* OutputArrayName; 00135 //BTX 00136 vtkVariant OriginValue; 00137 //ETX 00138 bool OutputSelection; 00139 bool OriginFromSelection; 00140 char* OutputSelectionType; 00141 00143 00144 vtkSetStringMacro(InputArrayName); 00146 00147 //BTX 00148 00150 00152 vtkIdType GetVertexIndex( 00153 vtkAbstractArray *abstract,vtkVariant value); 00154 //ETX 00156 00157 vtkBoostBreadthFirstSearch(const vtkBoostBreadthFirstSearch&); // Not implemented. 00158 void operator=(const vtkBoostBreadthFirstSearch&); // Not implemented. 00159 }; 00160 00161 #endif