00001 /*======================================================================= 00002 ** VSG_COPYRIGHT_TAG 00003 **=======================================================================*/ 00004 /*======================================================================= 00005 ** Author : M.Mathiaut (Oct 2014) 00006 **=======================================================================*/ 00007 00008 #ifndef _SO_VR_TIFF_FILE_READER_ 00009 #define _SO_VR_TIFF_FILE_READER_ 00010 00011 #include <Inventor/misc/SoRef.h> 00012 #include <Inventor/misc/SoRefCounter.h> 00013 #include <LDM/readers/SoVolumeReader.h> 00014 #include <VolumeViz/nodes/SoVolumeData.h> 00015 #include <Inventor/STL/vector> 00016 #include <Inventor/SbPImpl.h> 00017 00018 00019 SO_PIMPL_BASE_PUBLIC_DECLARATION(SoVRTiffFileReader); 00020 00045 class SoVRTiffFileReader : public SoVolumeReader 00046 { 00047 00048 SO_FIELDCONTAINER_HEADER(SoVRTiffFileReader); 00049 SO_PIMPL_BASE_PUBLIC_HEADER(SoVRTiffFileReader); 00050 00051 public: 00052 00054 SoVRTiffFileReader(); 00055 00059 virtual int setFilename( const SbString& filename ); 00060 00067 virtual ReadError getDataChar( SbBox3f& size, SoDataSet::DataType& type, SbVec3i32& dim ); 00068 00074 virtual void getSubSlice( const SbBox2i32& subSlice, int sliceNumber, void* data ); 00075 00079 virtual void getSubSlice( const SbBox2i32& subSlice, int sliceNumber, SoBufferObject* dataBuffer ); 00080 00084 virtual SoVolumeReader::ReaderType getReaderType() 00085 { 00086 return TIFF; 00087 } 00088 00092 SbBool isThreadSafe() const; 00093 00094 private: 00095 00097 virtual ~SoVRTiffFileReader(); 00098 }; 00099 00100 #endif /* _SO_VR_TIFF_FILE_READER_ */ 00101 00102 00103