Hybrid/vtkPushPipeline.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00046 #ifndef __vtkPushPipeline_h
00047 #define __vtkPushPipeline_h
00048
00049 #include "vtkObject.h"
00050 #define VTK_PP_MAX_INPUTS 128
00051
00052 class vtkProcessObject;
00053 class vtkDataObject;
00054 class vtkSource;
00055 class vtkPushPipelineConsumeCommand;
00056 class vtkRenderWindow;
00057 class vtkRenderer;
00058 class vtkPushPipelineProcessInfo;
00059 class vtkPushPipelineDataInfo;
00060
00061 class vtkPushPipelineWindowsType;
00062 class vtkPushPipelineProcessMapType;
00063 class vtkPushPipelineDataMapType;
00064
00065 class VTK_HYBRID_EXPORT vtkPushPipeline : public vtkObject
00066 {
00067 public:
00068 static vtkPushPipeline *New();
00069 vtkTypeRevisionMacro(vtkPushPipeline,vtkObject);
00070 void PrintSelf(ostream& os, vtkIndent indent);
00071
00073 void AddPusher(vtkProcessObject* pusher);
00074
00076
00077 void SetInputToExecutionRatio(vtkProcessObject *po, int inNum, int ratio);
00078 void SetExecutionToOutputRatio(vtkProcessObject *po, int ratio);
00080
00082 void Push(vtkSource *pusher);
00083
00085 void Run(vtkSource *pusher);
00086
00088
00090 vtkSetMacro(RunState,int);
00091 vtkGetMacro(RunState,int);
00093
00097 void AddWindow(vtkRenderWindow *win);
00098
00099 protected:
00100 vtkPushPipeline();
00101 ~vtkPushPipeline();
00102
00103
00104 friend class vtkPushPipelineProcessInfo;
00105 friend class vtkPushPipelineDataInfo;
00106 friend class vtkPushPipelineConsumeCommand;
00107
00108
00109 vtkPushPipelineWindowsType* Windows;
00110 vtkPushPipelineProcessMapType* ProcessMap;
00111 vtkPushPipelineDataMapType* DataMap;
00112
00113 vtkPushPipelineDataInfo *GetPushDataInfo(vtkDataObject *);
00114 vtkPushPipelineProcessInfo *GetPushProcessInfo(vtkProcessObject *);
00115 int RunState;
00116
00117 void AddData(vtkDataObject *);
00118 void AddProcess(vtkProcessObject *);
00119 void Trace(vtkDataObject *);
00120 void Trace(vtkProcessObject *);
00121 void ClearTraceMarkers();
00122 int IsRendererReady(vtkRenderer *);
00123 int IsRenderWindowReady(vtkRenderWindow *);
00124 void ConsumeRenderWindowInputs(vtkRenderWindow *);
00125 void ConsumeRendererInputs(vtkRenderer *);
00126 void RenderWindows();
00127 void SetupWindows();
00128 void SetupRenderWindow(vtkRenderWindow *);
00129 void SetupRenderer(vtkRenderer *);
00130
00131 private:
00132 vtkPushPipeline(const vtkPushPipeline&);
00133 void operator=(const vtkPushPipeline&);
00134 };
00135
00136 #endif
00137