VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkPBGLCollectGraph.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 -------------------------------------------------------------------------*/ 00047 #ifndef __vtkPBGLCollectGraph_h 00048 #define __vtkPBGLCollectGraph_h 00049 00050 #include "vtkStdString.h" // For string type 00051 00052 #include <vtksys/stl/utility> // for pair 00053 #include <vtksys/stl/numeric> // for accumulate, partial_sum 00054 #include <vtksys/stl/functional> // for plus 00055 00056 #include "vtkGraphAlgorithm.h" 00057 00058 class vtkSelection; 00059 class vtkDistributedGraphHelper; 00060 00061 class VTK_PARALLEL_EXPORT vtkPBGLCollectGraph : public vtkGraphAlgorithm 00062 { 00063 public: 00064 static vtkPBGLCollectGraph *New(); 00065 vtkTypeRevisionMacro(vtkPBGLCollectGraph, vtkGraphAlgorithm); 00066 void PrintSelf(ostream& os, vtkIndent indent); 00067 00069 00073 vtkGetMacro(TargetProcessor, int); 00074 vtkSetMacro(TargetProcessor, int); 00076 00078 00082 vtkGetMacro(ReplicateGraph, bool); 00083 vtkSetMacro(ReplicateGraph, bool); 00084 vtkBooleanMacro(ReplicateGraph, bool); 00086 00088 00090 vtkGetMacro(CopyVertexData, bool); 00091 vtkSetMacro(CopyVertexData, bool); 00092 vtkBooleanMacro(CopyVertexData, bool); 00094 00096 00098 vtkGetMacro(CopyEdgeData, bool); 00099 vtkSetMacro(CopyEdgeData, bool); 00100 vtkBooleanMacro(CopyEdgeData, bool); 00102 00103 protected: 00104 vtkPBGLCollectGraph(); 00105 ~vtkPBGLCollectGraph(); 00106 00107 virtual int RequestData( 00108 vtkInformation *, 00109 vtkInformationVector **, 00110 vtkInformationVector *); 00111 00112 virtual int FillInputPortInformation( 00113 int port, vtkInformation* info); 00114 00115 virtual int FillOutputPortInformation( 00116 int port, vtkInformation* info); 00117 00119 00122 void CopyStructureOfDataSetAttributes(vtkDataSetAttributes *inAttrs, 00123 vtkDataSetAttributes *outAttrs, 00124 vtkIdType numberOfTuples); 00126 00127 private: 00128 int TargetProcessor; 00129 bool ReplicateGraph; 00130 bool CopyVertexData; 00131 bool CopyEdgeData; 00132 00133 vtkPBGLCollectGraph(const vtkPBGLCollectGraph&); // Not implemented. 00134 void operator=(const vtkPBGLCollectGraph&); // Not implemented. 00135 00136 }; 00137 00138 #endif