Open Inventor Release 2024.1.1
 
Loading...
Searching...
No Matches
SoVRMemoryReader.h
1/*=======================================================================
2 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
3 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
4 *** ***
5 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
6 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
7 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
8 *** ***
9 *** RESTRICTED RIGHTS LEGEND ***
10 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
11 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
12 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
13 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
14 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
15 *** ***
16 *** COPYRIGHT (C) 1996-2023 BY FEI S.A.S, ***
17 *** BORDEAUX, FRANCE ***
18 *** ALL RIGHTS RESERVED ***
19**=======================================================================*/
20/*=======================================================================
21** Author : J.HUMMEL (Oct 2003)
22**=======================================================================*/
23#ifndef _SO_VR_MEMORY_READER_
24#define _SO_VR_MEMORY_READER_
25
26#include <LDM/readers/SoVolumeReader.h>
27
28#ifdef _MSC_VER
29#pragma warning( push )
30#pragma warning(disable:4251)
31#endif
32
33class SoBufferObject;
34
46{
47
48 SO_FIELDCONTAINER_HEADER(SoVRMemoryReader);
49
50public:
51
56
60 virtual ReadError getDataChar( SbBox3f &size, SoDataSet::DataType &type, SbVec3i32 &dim ) override;
61
65 virtual void getSubSlice( const SbBox2i32& subSlice, int sliceNumber, void * data );
66
71 virtual void getSubSlice(const SbBox2i32& subSlice, int sliceNumber, SoBufferObject * dataBuffer);
72
76 void setProperties ( const SbBox3f& size, SoDataSet::DataType type, const SbVec3i32 &dim,
77 const SbVec2i32 &padding, SoBufferObject* internalData, int sigBits);
78
82 void setProperties ( const SbBox3f& size, SoDataSet::DataType type, const SbVec3i32 &dim,
83 SoBufferObject* internalData, int sigBits);
84
89 SoBufferObject* internalData, int sigBits = 0);
93 virtual int getNumSignificantBits();
94
100
104 virtual SbBool isThreadSafe() const;
105
109
110private:
111 SoBufferObject* getInternalBuffer() const
112 {
113 return m_internalBuffer.ptr();
114 }
115
116 const SbVec2i32& getPadding() const
117 {
118 return m_padding;
119 }
120
121private:
122 SbBox3f m_size;
123 SbVec3i32 m_dim;
124 SbVec2i32 m_padding;
125 SoDataSet::DataType m_type;
126 int m_headerSize;
127 SoRef<SoBufferObject> m_internalBuffer;
128 int m_sigBits;
129};
130
131#ifdef _MSC_VER
132#pragma warning( pop )
133#endif
134
135#endif // _SO_VR_MEMORY_READER_
136
137
2D box class.
Definition SbBox.h:2383
3D box class.
Definition SbBox.h:649
2D vector class.
Definition SbVec.h:517
3D vector class.
Definition SbVec.h:1517
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> 3D vector class.
Definition SbVec.h:1797
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Abstract base cl...
DataType
Supported data type.
Definition SoDataSet.h:604
Smart pointer for any class inheriting SoRefCounter.
Definition SoRef.h:90
T * ptr() const
Cast to C pointer.
Definition SoRef.h:167
<a href="IconLegend.html"><img src="extVR.gif" alt="VolumeViz" border="0"></a> Reads volume data sto...
virtual void getSubSlice(const SbBox2i32 &subSlice, int sliceNumber, SoBufferObject *dataBuffer)
Same as getSubSlice( const SbBox2i32& subSlice, int sliceNumber, void * data ) but using SoBufferObje...
virtual SoVolumeWriter * getConfiguredWriter()
Return a writer with the same parameters as this reader and writing in the same block of memory.
virtual SoVolumeReader::ReaderType getReaderType()
Returns the reader type.
virtual ReadError getDataChar(SbBox3f &size, SoDataSet::DataType &type, SbVec3i32 &dim) override
Gets the characteristics (file header) of the data volume.
void setProperties(const SbBox3f &size, SoDataSet::DataType type, const SbVec3i32 &dim, const SbVec2i32 &padding, SoBufferObject *internalData, int sigBits)
Sets properties of the reader.
virtual SbBool isThreadSafe() const
Return true as this reader is thread safe.
SoVRMemoryReader()
Constructor.
void setProperties(SbBox3f size, SoDataSet::DataType type, SbVec3s dim, SoBufferObject *internalData, int sigBits=0)
Sets properties of the reader.
virtual void getSubSlice(const SbBox2i32 &subSlice, int sliceNumber, void *data)
Must copy the rectangular part defined by subSlice of the XY slice sliceNumber to the memory refe...
void setProperties(const SbBox3f &size, SoDataSet::DataType type, const SbVec3i32 &dim, SoBufferObject *internalData, int sigBits)
Sets properties of the reader.
virtual int getNumSignificantBits()
Returns the number of significant bits of the volume data.
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> Abstract...
ReaderType
Available reader type.
@ MEMORY
In memory.
ReadError
Read error.
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> Abstract...
int SbBool
Boolean type.
Definition SbBase.h:87