vtkPushPipeline.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00035 #ifndef __vtkPushPipeline_h
00036 #define __vtkPushPipeline_h
00037
00038 #include "vtkObject.h"
00039 #define VTK_PP_MAX_INPUTS 128
00040
00041 class vtkProcessObject;
00042 class vtkDataObject;
00043 class vtkSource;
00044 class vtkPushPipelineConsumeCommand;
00045 class vtkRenderWindow;
00046 class vtkRenderer;
00047 class vtkPushPipelineProcessInfo;
00048 class vtkPushPipelineDataInfo;
00049
00050 class vtkPushPipelineWindowsType;
00051 class vtkPushPipelineProcessMapType;
00052 class vtkPushPipelineDataMapType;
00053
00054 class VTK_HYBRID_EXPORT vtkPushPipeline : public vtkObject
00055 {
00056 public:
00057 static vtkPushPipeline *New();
00058 vtkTypeRevisionMacro(vtkPushPipeline,vtkObject);
00059 void PrintSelf(ostream& os, vtkIndent indent);
00060
00062 void AddPusher(vtkProcessObject* pusher);
00063
00065
00066 void SetInputToExecutionRatio(vtkProcessObject *po, int inNum, int ratio);
00067 void SetExecutionToOutputRatio(vtkProcessObject *po, int ratio);
00069
00071 void Push(vtkSource *pusher);
00072
00074 void Run(vtkSource *pusher);
00075
00077
00079 vtkSetMacro(RunState,int);
00080 vtkGetMacro(RunState,int);
00082
00086 void AddWindow(vtkRenderWindow *win);
00087
00088 protected:
00089 vtkPushPipeline();
00090 ~vtkPushPipeline();
00091
00092
00093 friend class vtkPushPipelineProcessInfo;
00094 friend class vtkPushPipelineDataInfo;
00095 friend class vtkPushPipelineConsumeCommand;
00096
00097
00098 vtkPushPipelineWindowsType* Windows;
00099 vtkPushPipelineProcessMapType* ProcessMap;
00100 vtkPushPipelineDataMapType* DataMap;
00101
00102 vtkPushPipelineDataInfo *GetPushDataInfo(vtkDataObject *);
00103 vtkPushPipelineProcessInfo *GetPushProcessInfo(vtkProcessObject *);
00104 int RunState;
00105
00106 void AddData(vtkDataObject *);
00107 void AddProcess(vtkProcessObject *);
00108 void Trace(vtkDataObject *);
00109 void Trace(vtkProcessObject *);
00110 void ClearTraceMarkers();
00111 int IsRendererReady(vtkRenderer *);
00112 int IsRenderWindowReady(vtkRenderWindow *);
00113 void ConsumeRenderWindowInputs(vtkRenderWindow *);
00114 void ConsumeRendererInputs(vtkRenderer *);
00115 void RenderWindows();
00116 void SetupWindows();
00117 void SetupRenderWindow(vtkRenderWindow *);
00118 void SetupRenderer(vtkRenderer *);
00119
00120 private:
00121 vtkPushPipeline(const vtkPushPipeline&);
00122 void operator=(const vtkPushPipeline&);
00123 };
00124
00125 #endif
00126