00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00026 #ifndef __vtkCollectGraph_h
00027 #define __vtkCollectGraph_h
00028
00029 #include "vtkGraphAlgorithm.h"
00030
00031 class vtkMultiProcessController;
00032 class vtkSocketController;
00033
00034 class VTK_PARALLEL_EXPORT vtkCollectGraph : public vtkGraphAlgorithm
00035 {
00036 public:
00037 static vtkCollectGraph *New();
00038 vtkTypeMacro(vtkCollectGraph, vtkGraphAlgorithm);
00039 void PrintSelf(ostream& os, vtkIndent indent);
00040
00042
00044 virtual void SetController(vtkMultiProcessController*);
00045 vtkGetObjectMacro(Controller, vtkMultiProcessController);
00047
00049
00052 virtual void SetSocketController(vtkSocketController*);
00053 vtkGetObjectMacro(SocketController, vtkSocketController);
00055
00057
00058 vtkSetMacro(PassThrough, int);
00059 vtkGetMacro(PassThrough, int);
00060 vtkBooleanMacro(PassThrough, int);
00062
00063
00064 enum {
00065 DIRECTED_OUTPUT,
00066 UNDIRECTED_OUTPUT,
00067 USE_INPUT_TYPE
00068 };
00069
00070
00072
00079 vtkSetMacro(OutputType, int);
00080 vtkGetMacro(OutputType, int);
00082
00083 protected:
00084 vtkCollectGraph();
00085 ~vtkCollectGraph();
00086
00087 int PassThrough;
00088 int OutputType;
00089
00090
00091 virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00092 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00093 virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00094 virtual int RequestDataObject(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00095
00096 vtkMultiProcessController *Controller;
00097 vtkSocketController *SocketController;
00098
00099 private:
00100 vtkCollectGraph(const vtkCollectGraph&);
00101 void operator=(const vtkCollectGraph&);
00102 };
00103
00104 #endif