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