44 #ifndef vtkParallelRenderManager_h 45 #define vtkParallelRenderManager_h 47 #include "vtkRenderingParallelModule.h" 104 virtual void InitializePieces();
113 virtual void InitializeOffScreen();
121 virtual void StartInteractor();
127 virtual void StartServices();
132 virtual void StopServices();
138 virtual void StartRender();
139 virtual void EndRender();
140 virtual void SatelliteStartRender();
141 virtual void SatelliteEndRender();
142 virtual void RenderRMI();
144 virtual void ResetCameraClippingRange(
vtkRenderer *ren);
145 virtual void ComputeVisiblePropBoundsRMI(
int renderId);
148 virtual void InitializeRMIs();
155 virtual void ResetAllCameras();
160 virtual void ComputeVisiblePropBounds(
vtkRenderer *ren,
double bounds[6]);
169 vtkSetMacro(ParallelRendering,
int);
170 vtkGetMacro(ParallelRendering,
int);
171 vtkBooleanMacro(ParallelRendering,
int);
181 vtkSetMacro(RenderEventPropagation,
int);
182 vtkGetMacro(RenderEventPropagation,
int);
183 vtkBooleanMacro(RenderEventPropagation,
int);
202 vtkSetMacro(UseCompositing,
int);
203 vtkGetMacro(UseCompositing,
int);
204 vtkBooleanMacro(UseCompositing,
int);
221 virtual void SetImageReductionFactor(
double factor);
222 vtkGetMacro(ImageReductionFactor,
double);
225 vtkSetMacro(MaxImageReductionFactor,
double);
226 vtkGetMacro(MaxImageReductionFactor,
double);
234 virtual void SetImageReductionFactorForUpdateRate(
double DesiredUpdateRate);
242 vtkSetMacro(AutoImageReductionFactor,
int);
243 vtkGetMacro(AutoImageReductionFactor,
int);
244 vtkBooleanMacro(AutoImageReductionFactor,
int);
251 vtkGetMacro(RenderTime,
double);
252 vtkGetMacro(ImageProcessingTime,
double);
265 vtkGetMacro(SyncRenderWindowRenderers,
int);
266 vtkSetMacro(SyncRenderWindowRenderers,
int);
267 vtkBooleanMacro(SyncRenderWindowRenderers,
int);
270 virtual void RemoveAllRenderers();
283 vtkSetMacro(WriteBackImages,
int);
284 vtkGetMacro(WriteBackImages,
int);
285 vtkBooleanMacro(WriteBackImages,
int);
294 vtkSetMacro(MagnifyImages,
int);
295 vtkGetMacro(MagnifyImages,
int);
296 vtkBooleanMacro(MagnifyImages,
int);
307 virtual void SetMagnifyImageMethod(
int method);
308 vtkGetMacro(MagnifyImageMethod,
int);
310 this->SetMagnifyImageMethod(NEAREST);
313 this->SetMagnifyImageMethod(LINEAR);
322 const int fullImageSize[2],
324 const int reducedImageSize[2],
325 const int fullImageViewport[4] =
nullptr,
326 const int reducedImageViewport[4] =
nullptr);
328 const int fullImageSize[2],
330 const int reducedImageSize[2],
331 const int fullImageViewport[4] =
nullptr,
332 const int reducedImageViewport[4] =
nullptr);
334 const int fullImageSize[2],
336 const int reducedImageSize[2],
337 const int fullImageViewport[4] =
nullptr,
338 const int reducedImageViewport[4] =
nullptr);
350 virtual void GetPixelData(
int x1,
int y1,
int x2,
int y2,
363 virtual void GetReducedPixelData(
int x1,
int y1,
int x2,
int y2,
371 vtkGetVector2Macro(FullImageSize,
int);
377 vtkGetVector2Macro(ReducedImageSize,
int);
384 void TileWindows(
int xsize,
int ysize,
int nColumns);
391 vtkSetMacro(UseRGBA,
int);
392 vtkGetMacro(UseRGBA,
int);
400 vtkSetMacro(ForceRenderWindowSize,
int);
401 vtkGetMacro(ForceRenderWindowSize,
int);
409 vtkSetVector2Macro(ForcedRenderWindowSize,
int);
410 vtkGetVector2Macro(ForcedRenderWindowSize,
int);
414 RENDER_RMI_TAG=34532,
415 COMPUTE_VISIBLE_PROP_BOUNDS_RMI_TAG=54636,
418 LIGHT_INFO_TAG=87838,
433 vtkSetMacro(UseBackBuffer,
int);
434 vtkGetMacro(UseBackBuffer,
int);
435 vtkBooleanMacro(UseBackBuffer,
int);
444 vtkSetMacro(SynchronizeTileProperties,
int);
445 vtkGetMacro(SynchronizeTileProperties,
int);
446 vtkBooleanMacro(SynchronizeTileProperties,
int);
455 virtual void GenericStartRenderCallback();
456 virtual void GenericEndRenderCallback();
468 void AddRenderWindowEventHandlers();
469 void RemoveRenderWindowEventHandlers();
479 int ForcedRenderWindowSize[2];
510 int FullImageSize[2];
511 int ReducedImageSize[2];
571 virtual void PreRenderProcessing() = 0;
572 virtual void PostRenderProcessing() = 0;
579 virtual void SetRenderWindowSize();
586 virtual void LocalComputeVisiblePropBounds(
vtkRenderer *ren,
double bounds[6]);
591 virtual void MagnifyReducedImage();
596 virtual void WriteFullImage();
601 virtual void ReadReducedImage();
607 virtual int LastRenderInFrontBuffer();
612 virtual int ChooseBuffer();
618 const int pixelDimensions[2]);
637 double TileViewport[4];
652 double CameraPosition[3];
653 double CameraFocalPoint[3];
654 double CameraViewUp[3];
655 double WindowCenter[2];
656 double CameraClippingRange[2];
659 double Background2[3];
675 double FocalPoint[3];
699 #endif //vtkParalleRenderManager_h
vtkUnsignedCharArray * FullImage
virtual bool ProcessWindowInformation(vtkMultiProcessStream &)
vtkMultiProcessController * Controller
virtual bool ProcessRendererInformation(vtkRenderer *, vtkMultiProcessStream &)
abstract base class for most VTK objects
virtual int CheckForAbortComposite()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
stream used to pass data across processes using vtkMultiProcessController.
vtkUnsignedCharArray * ReducedImage
An object to control parallel rendering.
int RenderWindowImageUpToDate
unsigned long EndRenderTag
unsigned long BoundsRMIId
int SyncRenderWindowRenderers
unsigned long StartRenderTag
double AverageTimePerPixel
Used by SetImageReductionFactorForUpdateRate to smooth transitions transitions between image reductio...
abstract specification for renderers
virtual void SendRendererInformation(vtkRenderer *)
static void SetDefaultRenderEventPropagation(bool val)
Get/Set the default value used for RenderEventPropagation when a new instance of vtkParallelRenderMan...
void SetMagnifyImageMethodToNearest()
Sets the method used to magnify images.
unsigned long AbortRenderCheckTag
double ImageReductionFactor
vtkDoubleArray * Viewports
dynamic, self-adjusting array of double
Timer support and logging.
int ObservingRenderWindow
an ordered list of renderers
virtual void CollectWindowInformation(vtkMultiProcessStream &)
Subclass should override these methods (instead of SendWindowInformation/ReceiveWindowInformation or ...
a simple class to control print indentation
double ImageProcessingTime
int ForceRenderWindowSize
vtkRenderWindow * RenderWindow
virtual void ReceiveRendererInformation(vtkRenderer *)
virtual void CheckForAbortRender()
virtual void ReceiveWindowInformation()
dynamic, self-adjusting array of unsigned char
static bool GetDefaultRenderEventPropagation()
create a window for renderers to draw into
virtual void SendWindowInformation()
Used to synchronize rendering information per frame.
int RootProcessId
The "root" node's process id.
unsigned long RenderRMIId
int AutoImageReductionFactor
unsigned long ResetCameraClippingRangeTag
double MaxImageReductionFactor
void SetMagnifyImageMethodToLinear()
Sets the method used to magnify images.
unsigned long ResetCameraTag
static bool DefaultRenderEventPropagation
int SynchronizeTileProperties
vtkRendererCollection * Renderers
int RenderEventPropagation
virtual void CollectRendererInformation(vtkRenderer *, vtkMultiProcessStream &)
virtual int ImageReduceRenderer(vtkRenderer *)
Returns true if the image for the given renderer should be rendered at a reduced size to be magnified...
Multiprocessing communication superclass.
double ImageReductionFactor