1 #ifndef COIN_SOVOLUMEREADER_H
2 #define COIN_SOVOLUMEREADER_H
27 #include <VolumeViz/nodes/SoVolumeData.h>
39 virtual void setUserData(
void * data);
40 virtual int getNumSignificantBits(
void);
42 virtual void getDataChar(SbBox3f & size, SoVolumeData::DataType & type,
45 enum CopyPolicy { COPY, NO_COPY, NO_COPY_AND_DELETE };
47 virtual void getSubSlice(SbBox2s & slice,
int slicenumber,
void * voxels) = 0;
48 virtual SbBool getSubVolume(SbBox3s & volume,
void * voxels);
49 virtual SbBool getSubVolume(
const SbBox3s & volume,
50 const SbVec3s subsamplelevel,
void *& voxels);
51 virtual SbBool getSubVolumeInfo(SbBox3s & volume,
52 SbVec3s reqsubsamplelevel,
53 SbVec3s & subsamplelevel,
54 SoVolumeReader::CopyPolicy & policy);
56 SbVec3s getNumVoxels(SbVec3s realsize, SbVec3s subsamplinglevel)
const;
57 SbVec3s getSizeToAllocate(SbVec3s realsize, SbVec3s subsamplinglevel)
const;
59 int setFilename(
const char * filename);
62 void * getBuffer(int64_t offset,
unsigned int size);
63 int bytesToInt(
unsigned char * ptr,
int sizeBytes);
64 void swapBytes(
int * intPtr,
int sizeBytes);
65 int64_t fileSize(
void);
70 friend class SoVolumeReaderP;
71 class SoVolumeReaderP * pimpl;
79 #endif // !COIN_SOVOLUMEREADER_H