00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 #if !defined SODATAEXTRACT_H
00024 #define SODATAEXTRACT_H
00025 
00026 #include <Inventor/SbDataType.h>
00027 
00028 #include <Inventor/STL/vector>
00029 
00030 #include <Inventor/algorithms/SoAlgorithmsDefs.h>
00031 
00032 class SoBufferObject;
00033 class SoCpuBufferObject;
00034 
00053 class   SoDataExtract
00054 {
00055 public:
00056 
00058   SoDataExtract();
00059 
00060 private:
00062   virtual ~SoDataExtract();
00063 
00065   static void initClass();
00066 
00068   static void exitClass();
00069 
00070 public:
00076   virtual int getXSliceFromTile( SoBufferObject* inputTile, int dimx,int dimy,int dimz, int datumSize, int slice, SoBufferObject* outputSlice);
00077 
00083   virtual int getYSliceFromTile( SoBufferObject* inputTile, int dimx,int dimy,int dimz, int datumSize, int slice, SoBufferObject* outputSlice);
00084 
00090   virtual int getZSliceFromTile( SoBufferObject* inputTile, int dimx,int dimy,int dimz, int datumSize, int slice, SoBufferObject* outputSlice);
00091 
00095   virtual int copyTile( SoBufferObject* inputTile,int tileDimx, int tileDimy, int tileDimz, int originX, int originY, int originZ, int datumSize,
00096                        int bufDimX, int bufDimY, int bufDimZ,int vMinX, int vMinY, int vMinZ, int vMaxX, int vMaxY, int vMaxZ,
00097                        SoBufferObject* outputBuffer );
00098 
00102   virtual int copyPlane( SoBufferObject* inputTile, int tileDimX, int tileDimY, int tileDimZ, int originX, int originY, int originZ,
00103                          int datumSize, int bufDimX, int qminX, int qminY, int qminZ,
00104                          int qmaxX, int qmaxY, int qmaxZ, float normI, float normJ, float normK,
00105                          float distance, int xAxis, int yAxis, int zAxis, SoBufferObject* outputBuffer );
00106 
00107 };
00108 
00109 #endif //SODATAEXTRACT_H
00110 
00111