30#ifndef vtkParallelRenderManager_h
31#define vtkParallelRenderManager_h
34#include "vtkRenderingParallelModule.h"
36VTK_ABI_NAMESPACE_BEGIN
156 vtkSetMacro(ParallelRendering,
int);
157 vtkGetMacro(ParallelRendering,
int);
158 vtkBooleanMacro(ParallelRendering,
int);
168 vtkSetMacro(RenderEventPropagation,
int);
169 vtkGetMacro(RenderEventPropagation,
int);
170 vtkBooleanMacro(RenderEventPropagation,
int);
193 vtkSetMacro(UseCompositing,
int);
194 vtkGetMacro(UseCompositing,
int);
195 vtkBooleanMacro(UseCompositing,
int);
213 vtkGetMacro(ImageReductionFactor,
double);
216 vtkSetMacro(MaxImageReductionFactor,
double);
217 vtkGetMacro(MaxImageReductionFactor,
double);
233 vtkSetMacro(AutoImageReductionFactor,
int);
234 vtkGetMacro(AutoImageReductionFactor,
int);
235 vtkBooleanMacro(AutoImageReductionFactor,
int);
242 vtkGetMacro(RenderTime,
double);
243 vtkGetMacro(ImageProcessingTime,
double);
256 vtkGetMacro(SyncRenderWindowRenderers,
int);
257 vtkSetMacro(SyncRenderWindowRenderers,
int);
258 vtkBooleanMacro(SyncRenderWindowRenderers,
int);
274 vtkSetMacro(WriteBackImages,
int);
275 vtkGetMacro(WriteBackImages,
int);
276 vtkBooleanMacro(WriteBackImages,
int);
285 vtkSetMacro(MagnifyImages,
int);
286 vtkGetMacro(MagnifyImages,
int);
287 vtkBooleanMacro(MagnifyImages,
int);
303 vtkGetMacro(MagnifyImageMethod,
int);
314 const int fullImageViewport[4] =
nullptr,
const int reducedImageViewport[4] =
nullptr);
317 const int fullImageViewport[4] =
nullptr,
const int reducedImageViewport[4] =
nullptr);
320 const int fullImageViewport[4] =
nullptr,
const int reducedImageViewport[4] =
nullptr);
351 vtkGetVector2Macro(FullImageSize,
int);
357 vtkGetVector2Macro(ReducedImageSize,
int);
371 vtkSetMacro(UseRGBA,
int);
372 vtkGetMacro(UseRGBA,
int);
380 vtkSetMacro(ForceRenderWindowSize,
int);
381 vtkGetMacro(ForceRenderWindowSize,
int);
389 vtkSetVector2Macro(ForcedRenderWindowSize,
int);
390 vtkGetVector2Macro(ForcedRenderWindowSize,
int);
395 RENDER_RMI_TAG = 34532,
396 COMPUTE_VISIBLE_PROP_BOUNDS_RMI_TAG = 54636,
397 WIN_INFO_TAG = 87834,
398 REN_INFO_TAG = 87836,
399 LIGHT_INFO_TAG = 87838,
414 vtkSetMacro(UseBackBuffer,
int);
415 vtkGetMacro(UseBackBuffer,
int);
416 vtkBooleanMacro(UseBackBuffer,
int);
425 vtkSetMacro(SynchronizeTileProperties,
int);
426 vtkGetMacro(SynchronizeTileProperties,
int);
427 vtkBooleanMacro(SynchronizeTileProperties,
int);
459 int ForcedRenderWindowSize[2];
490 int FullImageSize[2];
491 int ReducedImageSize[2];
613 double TileViewport[4];
626 int NumberOfLights = 0;
627 double Viewport[4] = { 0., 0., 0., 0. };
628 double CameraPosition[3] = { 0., 0., 0. };
629 double CameraFocalPoint[3] = { 0., 0., 0. };
630 double CameraViewUp[3] = { 0., 0., 0. };
631 double WindowCenter[2] = { 0., 0. };
632 double CameraClippingRange[2] = { 0., 0. };
633 double CameraViewAngle = 0.;
634 double Background[3] = { 0., 0., 0. };
635 double Background2[3] = { 0., 0., 0. };
636 bool GradientBackground =
false;
638 double ParallelScale = 0.;
651 double FocalPoint[3];
dynamic, self-adjusting array of double
a simple class to control print indentation
Multiprocessing communication superclass.
stream used to pass data across processes using vtkMultiProcessController.
abstract base class for most VTK objects
An object to control parallel rendering.
static void MagnifyImageNearest(vtkUnsignedCharArray *fullImage, const int fullImageSize[2], vtkUnsignedCharArray *reducedImage, const int reducedImageSize[2], const int fullImageViewport[4]=nullptr, const int reducedImageViewport[4]=nullptr)
Convenience functions for magnifying images.
virtual vtkRenderer * MakeRenderer()
Builds a vtkRenderer compatible with this render manager.
void RemoveRenderWindowEventHandlers()
Add/Remove event handlers for the render window.
virtual void PreRenderProcessing()=0
Here is a good place to handle processing of data before and after render.
virtual void ReceiveWindowInformation()
virtual void EndRender()
Callbacks that initialize and finish rendering and other tasks.
virtual int ImageReduceRenderer(vtkRenderer *)
Returns true if the image for the given renderer should be rendered at a reduced size to be magnified...
unsigned long StartRenderTag
virtual void ComputeVisiblePropBoundsRMI(int renderId)
Callbacks that initialize and finish rendering and other tasks.
static bool GetDefaultRenderEventPropagation()
double ImageProcessingTime
virtual void ResetCameraClippingRange(vtkRenderer *ren)
Callbacks that initialize and finish rendering and other tasks.
vtkParallelRenderManager()
virtual void SendRendererInformation(vtkRenderer *)
virtual void InitializeOffScreen()
Make all rendering windows not viewable set as off screen rendering.
int RenderWindowImageUpToDate
virtual void MagnifyReducedImage()
When called, fills FullImage.
virtual void SendWindowInformation()
Used to synchronize rendering information per frame.
virtual bool ProcessWindowInformation(vtkMultiProcessStream &)
virtual bool ProcessRendererInformation(vtkRenderer *, vtkMultiProcessStream &)
void SetMagnifyImageMethodToLinear()
Sets the method used to magnify images.
int AutoImageReductionFactor
int SynchronizeTileProperties
static bool DefaultRenderEventPropagation
virtual void GetPixelData(vtkUnsignedCharArray *data)
The most appropriate way to retrieve full size image data after a render.
virtual vtkRenderWindow * MakeRenderWindow()
Builds a vtkRenderWindow compatible with this render manager.
virtual int LastRenderInFrontBuffer()
Returns 1 if the RenderWindow's last image is in the front buffer, 0 if it is in the back.
virtual void RenderRMI()
Callbacks that initialize and finish rendering and other tasks.
virtual void SetImageReductionFactor(double factor)
Set/Get the reduction factor (for sort-last based parallel renderers).
virtual void GetReducedPixelData(int x1, int y1, int x2, int y2, vtkUnsignedCharArray *data)
The most appropriate way to retrieve reduced size image data after a render.
virtual void PostRenderProcessing()=0
Here is a good place to handle processing of data before and after render.
virtual void InitializePieces()
This method sets the piece and number of pieces for each actor with a polydata mapper.
unsigned long AbortRenderCheckTag
virtual void SetRenderWindowPixelData(vtkUnsignedCharArray *pixels, const int pixelDimensions[2])
Sets the current render window's pixel data.
static void MagnifyImageLinear(vtkUnsignedCharArray *fullImage, const int fullImageSize[2], vtkUnsignedCharArray *reducedImage, const int reducedImageSize[2], const int fullImageViewport[4]=nullptr, const int reducedImageViewport[4]=nullptr)
Convenience functions for magnifying images.
virtual void ReceiveRendererInformation(vtkRenderer *)
virtual void WriteFullImage()
Write the full image back to the RenderWindow.
virtual void GetPixelData(int x1, int y1, int x2, int y2, vtkUnsignedCharArray *data)
The most appropriate way to retrieve full size image data after a render.
virtual void GenericEndRenderCallback()
INTERNAL METHODS (DON NOT USE).
virtual void ReadReducedImage()
Reads in the reduced image from the RenderWindow.
vtkRendererCollection * Renderers
virtual void CollectWindowInformation(vtkMultiProcessStream &)
Subclass should override these methods (instead of SendWindowInformation/ReceiveWindowInformation or ...
static void SetDefaultRenderEventPropagation(bool val)
Get/Set the default value used for RenderEventPropagation when a new instance of vtkParallelRenderMan...
virtual void InitializeRMIs()
virtual void AddRenderer(vtkRenderer *)
By default, the state of all renderers in the root's render window is propagated to the rest of the p...
virtual void RemoveAllRenderers()
By default, the state of all renderers in the root's render window is propagated to the rest of the p...
vtkUnsignedCharArray * ReducedImage
void TileWindows(int xsize, int ysize, int nColumns)
Given the x and y size of the render windows, reposition them in a tile of n columns.
double AverageTimePerPixel
Used by SetImageReductionFactorForUpdateRate to smooth transitions transitions between image reductio...
virtual void GetReducedPixelData(vtkUnsignedCharArray *data)
The most appropriate way to retrieve reduced size image data after a render.
virtual void ResetAllCameras()
Resets the camera of each renderer contained in the RenderWindow.
virtual void MagnifyImage(vtkUnsignedCharArray *fullImage, const int fullImageSize[2], vtkUnsignedCharArray *reducedImage, const int reducedImageSize[2], const int fullImageViewport[4]=nullptr, const int reducedImageViewport[4]=nullptr)
Convenience functions for magnifying images.
virtual void SetRenderWindowSize()
Called in satellites to set the render window size to the current FullImageSize and ReducedImageSize ...
int RootProcessId
The "root" node's process id.
int ObservingRenderWindow
virtual void SetImageReductionFactorForUpdateRate(double DesiredUpdateRate)
Sets the ReductionFactor based on the given desired update rate and the rendering metrics taken from ...
virtual void SetRenderWindow(vtkRenderWindow *renWin)
Set/Get the RenderWindow to use for compositing.
unsigned long BoundsRMIId
vtkMultiProcessController * Controller
virtual void CollectRendererInformation(vtkRenderer *, vtkMultiProcessStream &)
virtual void SatelliteStartRender()
Callbacks that initialize and finish rendering and other tasks.
virtual void GenericStartRenderCallback()
INTERNAL METHODS (DON NOT USE).
int ForceRenderWindowSize
vtkRenderWindow * RenderWindow
vtkDoubleArray * Viewports
void AddRenderWindowEventHandlers()
Add/Remove event handlers for the render window.
vtkUnsignedCharArray * FullImage
int RenderEventPropagation
virtual void SetMagnifyImageMethod(int method)
Sets the method used to magnify images.
virtual void StartServices()
If on node other than root, starts serving RMI requests for parallel renders.
virtual void StartInteractor()
Initializes the RMIs and then, if on root node, starts the interactor on the attached render window.
virtual void SatelliteEndRender()
Callbacks that initialize and finish rendering and other tasks.
virtual void ComputeVisiblePropBounds(vtkRenderer *ren, double bounds[6])
Calculates the bounds by gathering information from all processes.
~vtkParallelRenderManager() override
virtual void SetController(vtkMultiProcessController *controller)
Set/Get the vtkMultiProcessController which will handle communications for the parallel rendering.
unsigned long EndRenderTag
unsigned long ResetCameraClippingRangeTag
virtual int CheckForAbortComposite()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void StopServices()
If on root node, stops the RMI processing on all service nodes.
virtual void LocalComputeVisiblePropBounds(vtkRenderer *ren, double bounds[6])
Called by ComputeVisiblePropBoundsRMI to get the bounds of a local renderer.
virtual void CheckForAbortRender()
virtual vtkRendererCollection * GetRenderers()
void SetMagnifyImageMethodToNearest()
Sets the method used to magnify images.
unsigned long RenderRMIId
int SyncRenderWindowRenderers
virtual void StartRender()
Callbacks that initialize and finish rendering and other tasks.
virtual void RemoveRenderer(vtkRenderer *)
By default, the state of all renderers in the root's render window is propagated to the rest of the p...
double ImageReductionFactor
double MaxImageReductionFactor
virtual int ChooseBuffer()
Select buffer to read from / render into.
virtual void ResetCamera(vtkRenderer *ren)
Callbacks that initialize and finish rendering and other tasks.
unsigned long ResetCameraTag
create a window for renderers to draw into
an ordered list of renderers
abstract specification for renderers
Timer support and logging.
dynamic, self-adjusting array of unsigned char
void Save(vtkMultiProcessStream &stream)
bool Restore(vtkMultiProcessStream &stream)
bool Restore(vtkMultiProcessStream &stream)
RenderWindowInfo()=default
double ImageReductionFactor
void Save(vtkMultiProcessStream &stream)
void Save(vtkMultiProcessStream &stream)
bool Restore(vtkMultiProcessStream &stream)