47 #ifndef vtkParallelRenderManager_h 48 #define vtkParallelRenderManager_h 50 #include "vtkRenderingParallelModule.h" 107 virtual void InitializePieces();
116 virtual void InitializeOffScreen();
124 virtual void StartInteractor();
130 virtual void StartServices();
135 virtual void StopServices();
141 virtual void StartRender();
142 virtual void EndRender();
143 virtual void SatelliteStartRender();
144 virtual void SatelliteEndRender();
145 virtual void RenderRMI();
147 virtual void ResetCameraClippingRange(
vtkRenderer *ren);
148 virtual void ComputeVisiblePropBoundsRMI(
int renderId);
151 virtual void InitializeRMIs();
158 virtual void ResetAllCameras();
163 virtual void ComputeVisiblePropBounds(
vtkRenderer *ren,
double bounds[6]);
172 vtkSetMacro(ParallelRendering,
int);
173 vtkGetMacro(ParallelRendering,
int);
174 vtkBooleanMacro(ParallelRendering,
int);
184 vtkSetMacro(RenderEventPropagation,
int);
185 vtkGetMacro(RenderEventPropagation,
int);
186 vtkBooleanMacro(RenderEventPropagation,
int);
205 vtkSetMacro(UseCompositing,
int);
206 vtkGetMacro(UseCompositing,
int);
207 vtkBooleanMacro(UseCompositing,
int);
224 virtual void SetImageReductionFactor(
double factor);
225 vtkGetMacro(ImageReductionFactor,
double);
228 vtkSetMacro(MaxImageReductionFactor,
double);
229 vtkGetMacro(MaxImageReductionFactor,
double);
237 virtual void SetImageReductionFactorForUpdateRate(
double DesiredUpdateRate);
245 vtkSetMacro(AutoImageReductionFactor,
int);
246 vtkGetMacro(AutoImageReductionFactor,
int);
247 vtkBooleanMacro(AutoImageReductionFactor,
int);
254 vtkGetMacro(RenderTime,
double);
255 vtkGetMacro(ImageProcessingTime,
double);
268 vtkGetMacro(SyncRenderWindowRenderers,
int);
269 vtkSetMacro(SyncRenderWindowRenderers,
int);
270 vtkBooleanMacro(SyncRenderWindowRenderers,
int);
273 virtual void RemoveAllRenderers();
286 vtkSetMacro(WriteBackImages,
int);
287 vtkGetMacro(WriteBackImages,
int);
288 vtkBooleanMacro(WriteBackImages,
int);
297 vtkSetMacro(MagnifyImages,
int);
298 vtkGetMacro(MagnifyImages,
int);
299 vtkBooleanMacro(MagnifyImages,
int);
310 virtual void SetMagnifyImageMethod(
int method);
311 vtkGetMacro(MagnifyImageMethod,
int);
313 this->SetMagnifyImageMethod(NEAREST);
316 this->SetMagnifyImageMethod(LINEAR);
325 const int fullImageSize[2],
327 const int reducedImageSize[2],
328 const int fullImageViewport[4] =
nullptr,
329 const int reducedImageViewport[4] =
nullptr);
331 const int fullImageSize[2],
333 const int reducedImageSize[2],
334 const int fullImageViewport[4] =
nullptr,
335 const int reducedImageViewport[4] =
nullptr);
337 const int fullImageSize[2],
339 const int reducedImageSize[2],
340 const int fullImageViewport[4] =
nullptr,
341 const int reducedImageViewport[4] =
nullptr);
353 virtual void GetPixelData(
int x1,
int y1,
int x2,
int y2,
366 virtual void GetReducedPixelData(
int x1,
int y1,
int x2,
int y2,
374 vtkGetVector2Macro(FullImageSize,
int);
380 vtkGetVector2Macro(ReducedImageSize,
int);
387 void TileWindows(
int xsize,
int ysize,
int nColumns);
394 vtkSetMacro(UseRGBA,
int);
395 vtkGetMacro(UseRGBA,
int);
403 vtkSetMacro(ForceRenderWindowSize,
int);
404 vtkGetMacro(ForceRenderWindowSize,
int);
412 vtkSetVector2Macro(ForcedRenderWindowSize,
int);
413 vtkGetVector2Macro(ForcedRenderWindowSize,
int);
417 RENDER_RMI_TAG=34532,
418 COMPUTE_VISIBLE_PROP_BOUNDS_RMI_TAG=54636,
421 LIGHT_INFO_TAG=87838,
436 vtkSetMacro(UseBackBuffer,
int);
437 vtkGetMacro(UseBackBuffer,
int);
438 vtkBooleanMacro(UseBackBuffer,
int);
447 vtkSetMacro(SynchronizeTileProperties,
int);
448 vtkGetMacro(SynchronizeTileProperties,
int);
449 vtkBooleanMacro(SynchronizeTileProperties,
int);
458 virtual void GenericStartRenderCallback();
459 virtual void GenericEndRenderCallback();
471 void AddRenderWindowEventHandlers();
472 void RemoveRenderWindowEventHandlers();
482 int ForcedRenderWindowSize[2];
513 int FullImageSize[2];
514 int ReducedImageSize[2];
574 virtual void PreRenderProcessing() = 0;
575 virtual void PostRenderProcessing() = 0;
582 virtual void SetRenderWindowSize();
589 virtual void LocalComputeVisiblePropBounds(
vtkRenderer *ren,
double bounds[6]);
594 virtual void MagnifyReducedImage();
599 virtual void WriteFullImage();
604 virtual void ReadReducedImage();
610 virtual int LastRenderInFrontBuffer();
615 virtual int ChooseBuffer();
621 const int pixelDimensions[2]);
640 double TileViewport[4];
655 double CameraPosition[3];
656 double CameraFocalPoint[3];
657 double CameraViewUp[3];
658 double WindowCenter[2];
659 double CameraClippingRange[2];
662 double Background2[3];
678 double FocalPoint[3];
702 #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