VTK
/Users/kitware/Dashboards/MyTests/VTK_BLD_Release_docs/Utilities/Doxygen/dox/Infovis/Parallel/vtkPBGLCollectGraph.h
Go to the documentation of this file.
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