Open Inventor Release 2024.2.0
 
Loading...
Searching...
No Matches
SoVRGenericFileReader.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 : G. SEGUIN (Oct 2001)
22**=======================================================================*/
23#ifndef _SO_VR_GENERIC_FILE_READER_
24#define _SO_VR_GENERIC_FILE_READER_
25
26#include <LDM/readers/SoVolumeReader.h>
27#include <VolumeViz/nodes/SoVolumeData.h>
28
29
56{
57 SO_FIELDCONTAINER_HEADER(SoVRGenericFileReader);
58
59 public:
62
66 virtual ReadError getDataChar( SbBox3f &size, SoDataSet::DataType &type, SbVec3i32 &dim ) override
67 {
68 size = m_size;
69 type = m_type;
70 dim = m_dim;
71 return RD_NO_ERROR;
72 };
73
77 virtual void getSubSlice( const SbBox2i32& subSlice, int sliceNumber, void * data );
78
84 void setDataChar( const SbBox3f &size, const SoDataSet::DataType &type, const SbVec3i32 &dim, int headerSize = 0) {
85 m_size = size;
86 m_type = type;
87 m_dim = dim;
88 m_bytesPerVoxel = SoVolumeData::dataSize( type );
89 m_headerSize = headerSize;
90 }
91
97
98#if 1 SoDEPRECATED
104 void setDataChar( SbBox3f &size, SoDataSet::DataType &type, SbVec3s &smalldim, int headerSize = 0) {
105 SbVec3i32 dim(smalldim[0],smalldim[1],smalldim[2]);
106 setDataChar( size, type, dim, headerSize );
107 }
108
109#endif
111 private:
112 SbBox3f m_size;
113 SbVec3i32 m_dim;
114 SoDataSet::DataType m_type;
115
116 int m_headerSize;
117};
118
119#endif // _SO_VR_GENERIC_FILE_READER_
120
121
2D box class.
Definition SbBox.h:2383
3D box class.
Definition SbBox.h:649
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
static int dataSize(DataType dataType)
Returns the number of bytes per voxel of the specified data type.
DataType
Supported data type.
Definition SoDataSet.h:664
<a href="IconLegend.html"><img src="extVR.gif" alt="VolumeViz" border="0"></a> Generic file reader.
virtual SoVolumeReader::ReaderType getReaderType()
Returns the reader type.
SoVRGenericFileReader()
Constructor.
virtual ReadError getDataChar(SbBox3f &size, SoDataSet::DataType &type, SbVec3i32 &dim) override
Gets the characteristics (file header) of the data volume.
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...
SoDEPRECATED void setDataChar(SbBox3f &size, SoDataSet::DataType &type, SbVec3s &smalldim, int headerSize=0)
void setDataChar(const SbBox3f &size, const SoDataSet::DataType &type, const SbVec3i32 &dim, int headerSize=0)
Since the format is raw data, it is necessary to specify the dimension and data size of the volume.
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> Abstract...
ReaderType
Available reader type.
ReadError
Read error.
@ RD_NO_ERROR
No error.