00001 #include <Inventor/sys/port.h>
00002
00003 #include <LDM/nodes/SoDataCompositor.h>
00004 #include <Inventor/fields/SoSFBool.h>
00005
00006
00007
00008
00009
00010 #ifdef BUILDING_DLL
00011 #define DLL_EXPORT VC_DLL_EXPORT
00012 #else
00013 #define DLL_EXPORT VC_DLL_IMPORT
00014 #endif
00015
00016
00018
00019
00021
00022 class DLL_EXPORT MedicalCPUDataCompositor : public SoDataCompositor
00023 {
00024 SO_NODE_HEADER( MedicalCPUDataCompositor );
00025
00026 public:
00027
00028
00029 MedicalCPUDataCompositor();
00030
00031
00032 virtual ~MedicalCPUDataCompositor();
00033
00034 static void initClass();
00035 static void exitClass();
00036
00037
00038
00039 virtual void compose(int numVolumeData, const SbVec3i32& tileDimension,
00040 int* vdid, SoBufferObject** inputBuffer, SoBufferObject* outputBuffer);
00041
00042
00043
00044 virtual void compose(int numDataSet, const SbVec3i32& tileDimension,
00045 int* vdid, SoBufferObject** inputBuffer, SoDataCompositor::DataType* dataTypes,
00046 SoBufferObject* outputBuffer);
00047
00048 private:
00049
00050
00051 void composeRGBAInCPU( int numVolumeData, const SbVec3i32& tileDimension,
00052 int* vdid, SoBufferObject** inputBufferObject, SoBufferObject* outputBufferObject );
00053
00054
00055 void composeInCPU(int numVolumeData, const SbVec3i32& tileDimension,
00056 int* vdid, SoBufferObject** inputBuffer, SoBufferObject* outputBuffer);
00057
00058 };
00059
00060