8#ifndef SO_LDM_BORDER_READER_H
9#define SO_LDM_BORDER_READER_H
11#include <Inventor/SbLinear.h>
12#include <Inventor/STL/map>
13#include <Inventor/STL/list>
15#include <Inventor/nodes/SoNode.h>
16#include <Inventor/fields/SoSubField.h>
18#include <Inventor/fields/SoSFNode.h>
19#include <Inventor/fields/SoSFInt32.h>
20#include <Inventor/fields/SoSFUInt32.h>
21#include <Inventor/fields/SoSFEnum.h>
22#include <Inventor/fields/SoSFFilePathString.h>
23#include <Inventor/threads/SbThread.h>
24#include <LDM/nodes/SoDataSet.h>
25#include <LDM/readers/SoVolumeReader.h>
26#include <LDM/readers/SoVRLdmFileReader.h>
27#include <LDM/SoLDMTopoOctree.h>
30#pragma warning( push )
31#pragma warning(disable:4251)
118 std::vector<int> m_deltaZOiv8;
127 SoLDMBorderTopoOctree* m_topoOctreeVirtual;
130 SoLDMBorderTopoOctree* m_topoOcotreeReal;
140 void copyBlock(
void* destMem,
void* srcMem,
const SbVec3i32& blockDestPos,
const SbBox3i32& blockSrcBox,
const SbVec3i32& arrayDim);
143 void copyScaledBlockUV(
void* destMem,
void* srcMem,
const SbBox3i32& blockDestPos,
150 void handleBorders(
SbBox3i32& tileBox,
int border);
156 inline T getInterpolatedValue(T* src,
const SbVec3i32& arrayDim,
160 inline static float trilinearInterpolate(
const SbVec3f& factor,
float v000,
float v100,
float v010,
float v110,
161 float v001,
float v101,
float v011,
float v111);
169#pragma warning( pop )
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> 3D box class.
Class for smart character strings.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Abstract base cl...
DataType
Supported data type.
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> Tile ID
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> Octree t...
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> LDM file...
BuildTileMethod
Enum use to set the method for building tiles in lower resolution from full resolution.
@ AVERAGE
Apply a average method on the the full resolution tile to build lower resolution tile.
@ DECIMATION
Apply a decimation on the the full resolution tile to build lower resolution tile.
virtual int getBorderFlag()
Returns the border flag.
virtual SbBool isThreadSafe() const
Return true as this reader is thread safe.
virtual SoBufferObject * readTile(int index, const SbBox3i32 &tilePosition)
Given an index, reads a tile if the data is organized in tiles (for LDM).
BuildTileMethod getBuildTileMethod()
Return the current method used to build tiles in lower resolution.
virtual SbBool getTileSize(SbVec3i32 &size)
Returns the size of a data tile.
virtual int setFilename(const SbString &filename)
Specifies the path of the file.
SoVRLdmFileBorderReader()
Default Constructor.
void setBuildTileMethod(BuildTileMethod method)
Set the method used to build tiles in lower resolution.
virtual ReadError getDataChar(SbBox3f &size, SoDataSet::DataType &type, SbVec3i32 &dim) override
Gets the characteristics (file header) of the data volume.
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> LDM file...
std::vector< SoLDMTileID > TileIdVector
Vector of SoLDMTileID.