VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkPBGLCollectGraph.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 -------------------------------------------------------------------------*/ 00052 #ifndef vtkPBGLCollectGraph_h 00053 #define vtkPBGLCollectGraph_h 00054 00055 #include "vtkInfovisParallelModule.h" // For export macro 00056 #include "vtkStdString.h" // For string type 00057 00058 #include <vtksys/stl/utility> // for pair 00059 #include <vtksys/stl/numeric> // for accumulate, partial_sum 00060 #include <vtksys/stl/functional> // for plus 00061 00062 #include "vtkGraphAlgorithm.h" 00063 00064 class vtkSelection; 00065 class vtkDistributedGraphHelper; 00066 00067 #if !defined(VTK_LEGACY_REMOVE) 00068 class VTKINFOVISPARALLEL_EXPORT vtkPBGLCollectGraph : public vtkGraphAlgorithm 00069 { 00070 public: 00071 static vtkPBGLCollectGraph *New(); 00072 vtkTypeMacro(vtkPBGLCollectGraph, vtkGraphAlgorithm); 00073 void PrintSelf(ostream& os, vtkIndent indent); 00074 00076 00080 vtkGetMacro(TargetProcessor, int); 00081 vtkSetMacro(TargetProcessor, int); 00083 00085 00089 vtkGetMacro(ReplicateGraph, bool); 00090 vtkSetMacro(ReplicateGraph, bool); 00091 vtkBooleanMacro(ReplicateGraph, bool); 00093 00095 00097 vtkGetMacro(CopyVertexData, bool); 00098 vtkSetMacro(CopyVertexData, bool); 00099 vtkBooleanMacro(CopyVertexData, bool); 00101 00103 00105 vtkGetMacro(CopyEdgeData, bool); 00106 vtkSetMacro(CopyEdgeData, bool); 00107 vtkBooleanMacro(CopyEdgeData, bool); 00109 00111 00114 vtkGetMacro(CreateOriginProcessArray, bool); 00115 vtkSetMacro(CreateOriginProcessArray, bool); 00116 vtkBooleanMacro(CreateOriginProcessArray, bool); 00118 00120 00122 vtkSetStringMacro(OriginProcessArrayName); 00124 00125 protected: 00126 vtkPBGLCollectGraph(); 00127 ~vtkPBGLCollectGraph(); 00128 00129 virtual int RequestData( 00130 vtkInformation *, 00131 vtkInformationVector **, 00132 vtkInformationVector *); 00133 00134 virtual int FillInputPortInformation( 00135 int port, vtkInformation* info); 00136 00137 virtual int FillOutputPortInformation( 00138 int port, vtkInformation* info); 00139 00141 00144 void CopyStructureOfDataSetAttributes(vtkDataSetAttributes *inAttrs, 00145 vtkDataSetAttributes *outAttrs, 00146 vtkIdType numberOfTuples); 00148 00149 private: 00150 int TargetProcessor; 00151 bool ReplicateGraph; 00152 bool CopyVertexData; 00153 bool CopyEdgeData; 00154 bool CreateOriginProcessArray; 00155 char * OriginProcessArrayName; 00156 00157 vtkPBGLCollectGraph(const vtkPBGLCollectGraph&); // Not implemented. 00158 void operator=(const vtkPBGLCollectGraph&); // Not implemented. 00159 00160 }; 00161 00162 #endif //VTK_LEGACY_REMOVE 00163 #endif