OSDN Git Service

FIRST REPOSITORY
[eos/hostdependOTHERS.git] / I386LINUX / util / I386LINUX / include / vtk / vtkCompressCompositer.h
1 /*=========================================================================
2
3   Program:   Visualization Toolkit
4   Module:    $RCSfile: vtkCompressCompositer.h,v $
5   Language:  C++
6   Date:      $Date: 2002/08/12 15:20:30 $
7   Version:   $Revision: 1.3 $
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 vtkCompressCompositer - Implements compressed tree based compositing.
19 // .SECTION Description
20 // vtkCompressCompositer 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.  Compositing is run length encoding
24 // of back ground pixels.
25 // vtkCompositeManager.
26
27 #ifndef __vtkCompressCompositer_h
28 #define __vtkCompressCompositer_h
29
30 #include "vtkCompositer.h"
31
32 class vtkTimerLog;
33 class vtkDataArray;
34 class vtkFloatArray;
35
36 class VTK_PARALLEL_EXPORT vtkCompressCompositer : public vtkCompositer
37 {
38 public:
39   static vtkCompressCompositer *New();
40   vtkTypeRevisionMacro(vtkCompressCompositer,vtkCompositer);
41   void PrintSelf(ostream& os, vtkIndent indent);
42
43   virtual void CompositeBuffer(vtkDataArray *pBuf, vtkFloatArray *zBuf,
44                                vtkDataArray *pTmp, vtkFloatArray *zTmp);
45
46 protected:
47   vtkCompressCompositer();
48   ~vtkCompressCompositer();
49   
50   void Compress(vtkFloatArray *zIn, vtkDataArray *pIn,
51                 vtkFloatArray *zOut, vtkDataArray *pOut);
52
53   void Uncompress(vtkFloatArray *zIn, vtkDataArray *pIn,
54                   vtkDataArray *pOut, int finalLength);
55
56   void CompositeImagePair(vtkFloatArray *localZ, vtkDataArray *localP,
57                           vtkFloatArray *remoteZ, vtkDataArray *remoteP,
58                           vtkFloatArray *outZ, vtkDataArray *outP); 
59
60   vtkDataArray *InternalPData;
61   vtkFloatArray *InternalZData;
62
63   vtkTimerLog *Timer;
64
65 private:
66   vtkCompressCompositer(const vtkCompressCompositer&); // Not implemented
67   void operator=(const vtkCompressCompositer&); // Not implemented
68 };
69
70 #endif