48 virtual void setUserData(
void * data);
49 virtual int getNumSignificantBits(
void);
51 virtual void getDataChar(SbBox3f & size, SoVolumeData::DataType & type,
54 enum CopyPolicy { COPY, NO_COPY, NO_COPY_AND_DELETE };
56 virtual void getSubSlice(SbBox2s & slice,
int slicenumber,
void * voxels) = 0;
57 virtual SbBool getSubVolume(SbBox3s & volume,
void * voxels);
58 virtual SbBool getSubVolume(
const SbBox3s & volume,
59 const SbVec3s subsamplelevel,
void *& voxels);
60 virtual SbBool getSubVolumeInfo(SbBox3s & volume,
61 SbVec3s reqsubsamplelevel,
62 SbVec3s & subsamplelevel,
63 SoVolumeReader::CopyPolicy & policy);
65 SbVec3s getNumVoxels(SbVec3s realsize, SbVec3s subsamplinglevel)
const;
66 SbVec3s getSizeToAllocate(SbVec3s realsize, SbVec3s subsamplinglevel)
const;
68 int setFilename(
const char * filename);
71 void * getBuffer(int64_t offset,
unsigned int size);
72 int bytesToInt(
unsigned char * ptr,
int sizeBytes);
73 void swapBytes(
int * intPtr,
int sizeBytes);
74 int64_t fileSize(
void);
79 friend class SoVolumeReaderP;
80 class SoVolumeReaderP * pimpl;