00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00028 #ifndef __vtkCompositer_h
00029 #define __vtkCompositer_h
00030 
00031 #include "vtkObject.h"
00032 
00033 class vtkMultiProcessController;
00034 class vtkCompositer;
00035 class vtkDataArray;
00036 class vtkFloatArray;
00037 class vtkUnsignedCharArray;
00038 
00039 class VTK_PARALLEL_EXPORT vtkCompositer : public vtkObject
00040 {
00041 public:
00042   static vtkCompositer *New();
00043   vtkTypeMacro(vtkCompositer,vtkObject);
00044   void PrintSelf(ostream& os, vtkIndent indent);
00045 
00047 
00049   virtual void CompositeBuffer(vtkDataArray *pBuf, vtkFloatArray *zBuf,
00050                                vtkDataArray *pTmp, vtkFloatArray *zTmp);
00052 
00054 
00055   virtual void SetController(vtkMultiProcessController*);
00056   vtkGetObjectMacro(Controller,vtkMultiProcessController);
00058 
00060 
00061   vtkSetMacro(NumberOfProcesses, int);
00062   vtkGetMacro(NumberOfProcesses, int);
00064 
00066 
00067   static void DeleteArray(vtkDataArray* da);
00068   static void ResizeFloatArray(vtkFloatArray* fa, int numComp,
00069                                vtkIdType size);
00070   static void ResizeUnsignedCharArray(vtkUnsignedCharArray* uca, 
00071                                       int numComp, vtkIdType size);
00073   
00074 protected:
00075   vtkCompositer();
00076   ~vtkCompositer();
00077   
00078   vtkMultiProcessController *Controller;
00079   int NumberOfProcesses;
00080 
00081 private:
00082   vtkCompositer(const vtkCompositer&); 
00083   void operator=(const vtkCompositer&); 
00084 };
00085 
00086 #endif