ParaView
vtkIceTSynchronizedRenderers.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: ParaView
4  Module: vtkIceTSynchronizedRenderers.h
5 
6  Copyright (c) Kitware, Inc.
7  All rights reserved.
8  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
30 #ifndef vtkIceTSynchronizedRenderers_h
31 #define vtkIceTSynchronizedRenderers_h
32 
33 #include "vtkIceTCompositePass.h" // needed for inline methods.
34 #include "vtkPVClientServerCoreRenderingModule.h" //needed for exports
35 #include "vtkSynchronizedRenderers.h"
36 
37 class vtkCameraPass;
38 class vtkImageProcessingPass;
39 class vtkMyImagePasterPass;
40 
41 class VTKPVCLIENTSERVERCORERENDERING_EXPORT vtkIceTSynchronizedRenderers
42  : public vtkSynchronizedRenderers
43 {
44 public:
45  static vtkIceTSynchronizedRenderers* New();
46  vtkTypeMacro(vtkIceTSynchronizedRenderers, vtkSynchronizedRenderers);
47  void PrintSelf(ostream& os, vtkIndent indent);
48 
50 
53  vtkSetMacro(Identifier, unsigned int);
54  vtkGetMacro(Identifier, unsigned int);
56 
63  virtual void SetRenderer(vtkRenderer*);
64 
69  void SetTileDimensions(int x, int y) { this->IceTCompositePass->SetTileDimensions(x, y); }
70 
75  void SetTileMullions(int x, int y) { this->IceTCompositePass->SetTileMullions(x, y); }
76 
83  {
84  this->IceTCompositePass->SetDataReplicatedOnAllProcesses(val);
85  }
86 
92  {
93  this->IceTCompositePass->SetPartitionOrdering(partitionOrdering);
94  }
95 
103  {
104  this->IceTCompositePass->SetUseOrderedCompositing(uoc);
105  }
106 
110  virtual void SetImageReductionFactor(int val);
112  {
113  return this->IceTCompositePass->GetImageReductionFactor();
114  }
115 
117 
121  virtual void SetParallelController(vtkMultiProcessController* cont)
122  {
123  this->Superclass::SetParallelController(cont);
124  this->IceTCompositePass->SetController(cont);
125  }
127 
129 
132  void SetImageProcessingPass(vtkImageProcessingPass*);
133  vtkGetObjectMacro(ImageProcessingPass, vtkImageProcessingPass);
135 
139  void SetUseDepthBuffer(bool);
140 
146  void SetRenderEmptyImages(bool);
147 
149 
156  void SetRenderPass(vtkRenderPass*);
157  vtkGetObjectMacro(RenderPass, vtkRenderPass);
159 
161 
165  vtkGetObjectMacro(IceTCompositePass, vtkIceTCompositePass);
167 
168 protected:
171 
172  unsigned int Identifier;
173 
174  virtual void HandleEndRender();
175 
179  virtual vtkRawImage& CaptureRenderedImage();
180 
181  // We use vtkIceTCompositePass internally.
182  vtkCameraPass* CameraRenderPass;
184  vtkMyImagePasterPass* ImagePastingPass;
185 
186  // User specified custom passes
187  vtkRenderPass* RenderPass;
188  vtkImageProcessingPass* ImageProcessingPass;
189 
190  virtual void SlaveStartRender();
191 
192 private:
194  void operator=(const vtkIceTSynchronizedRenderers&) VTK_DELETE_FUNCTION;
195 };
196 
197 #endif
vtkSynchronizedRenderers subclass that uses IceT for parallel rendering and compositing.
void SetUseOrderedCompositing(bool uoc)
Set this to true, if compositing must be done in a specific order.
void SetPartitionOrdering(vtkPartitionOrderingInterface *partitionOrdering)
partition ordering that gives processes ordering.
void SetTileDimensions(int x, int y)
Set the tile dimensions.
void SetDataReplicatedOnAllProcesses(bool val)
Set to true if data is replicated on all processes.
void SetTileMullions(int x, int y)
Set the tile mullions.
vtkImageProcessingPass * ImageProcessingPass
virtual void SetParallelController(vtkMultiProcessController *cont)
Set the parallel message communicator.
Interface for ordering compositing.
vtkRenderPass subclass for compositing renderings across processes using IceT.