OSDN Git Service

FIRST REPOSITORY
[eos/hostdependOTHERS.git] / I386LINUX / util / I386LINUX / include / vtk / vtkCompositer.h
1 /*=========================================================================
2
3   Program:   Visualization Toolkit
4   Module:    $RCSfile: vtkCompositer.h,v $
5   Language:  C++
6   Date:      $Date: 2002/08/12 15:20:30 $
7   Version:   $Revision: 1.4 $
8
9   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 
10   All rights reserved.
11   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
12
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.
16
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.
25
26 #ifndef __vtkCompositer_h
27 #define __vtkCompositer_h
28
29 #include "vtkObject.h"
30
31 class vtkMultiProcessController;
32 class vtkCompositer;
33 class vtkDataArray;
34 class vtkFloatArray;
35
36 class VTK_PARALLEL_EXPORT vtkCompositer : public vtkObject
37 {
38 public:
39   static vtkCompositer *New();
40   vtkTypeRevisionMacro(vtkCompositer,vtkObject);
41   void PrintSelf(ostream& os, vtkIndent indent);
42
43   // Description:
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);
48
49   // Description:
50   // Access to the controller.
51   virtual void SetController(vtkMultiProcessController*);
52   vtkGetObjectMacro(Controller,vtkMultiProcessController);
53
54   // Description:
55   // A hack to get a sub world until I can get communicators working.
56   vtkSetMacro(NumberOfProcesses, int);
57   vtkGetMacro(NumberOfProcesses, int);
58
59 protected:
60   vtkCompositer();
61   ~vtkCompositer();
62   
63   vtkMultiProcessController *Controller;
64   int NumberOfProcesses;
65
66 private:
67   vtkCompositer(const vtkCompositer&); // Not implemented
68   void operator=(const vtkCompositer&); // Not implemented
69 };
70
71 #endif