1#ifndef COIN_SOVOLUMEREADER_H
2#define COIN_SOVOLUMEREADER_H
36#include <VolumeViz/nodes/SoVolumeData.h>
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;
The main interface for setting up volume data sets.
Definition: SoVolumeData.h:54
Abstract superclass for all volume data reader classes.
Definition: SoVolumeReader.h:43
virtual void getSubSlice(SbBox2s &slice, int slicenumber, void *voxels)=0
virtual void getDataChar(SbBox3f &size, SoVolumeData::DataType &type, SbVec3s &dim)=0