1 /*=========================================================================
3 Program: Visualization Toolkit
4 Module: $RCSfile: vtkCompositer.h,v $
6 Date: $Date: 2002/08/12 15:20:30 $
7 Version: $Revision: 1.4 $
9 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
11 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
13 This software is distributed WITHOUT ANY WARRANTY; without even
14 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 PURPOSE. See the above copyright notice for more information.
17 =========================================================================*/
18 // .NAME vtkCompositer - Super class for composite algorthms.
19 // .SECTION Description
20 // vtkCompositer operates in multiple processes. Each compositer has
21 // a render window. They use vtkMultiProcessControllers to comunicate
22 // the color and depth buffer to process 0's render window.
23 // It will not handle transparency well.
24 // vtkCompositeManager.
26 #ifndef __vtkCompositer_h
27 #define __vtkCompositer_h
29 #include "vtkObject.h"
31 class vtkMultiProcessController;
36 class VTK_PARALLEL_EXPORT vtkCompositer : public vtkObject
39 static vtkCompositer *New();
40 vtkTypeRevisionMacro(vtkCompositer,vtkObject);
41 void PrintSelf(ostream& os, vtkIndent indent);
44 // This method gets called on every process. The final image gets
45 // put into pBuf and zBuf.
46 virtual void CompositeBuffer(vtkDataArray *pBuf, vtkFloatArray *zBuf,
47 vtkDataArray *pTmp, vtkFloatArray *zTmp);
50 // Access to the controller.
51 virtual void SetController(vtkMultiProcessController*);
52 vtkGetObjectMacro(Controller,vtkMultiProcessController);
55 // A hack to get a sub world until I can get communicators working.
56 vtkSetMacro(NumberOfProcesses, int);
57 vtkGetMacro(NumberOfProcesses, int);
63 vtkMultiProcessController *Controller;
64 int NumberOfProcesses;
67 vtkCompositer(const vtkCompositer&); // Not implemented
68 void operator=(const vtkCompositer&); // Not implemented