23#ifndef _SO_VOLUME_DATA_
24#define _SO_VOLUME_DATA_
27#pragma warning( push )
28#pragma warning(disable:4251)
31#include <Inventor/STL/map>
32#include <Inventor/STL/vector>
34#include <Inventor/SbBox.h>
35#include <Inventor/SbPList.h>
36#include <Inventor/fields/SoSFBool.h>
37#include <Inventor/fields/SoSFEnum.h>
38#include <Inventor/fields/SoSFMemObj.h>
39#include <Inventor/fields/SoSFString.h>
40#include <Inventor/fields/SoSFUShort.h>
41#include <Inventor/fields/SoSFInt32.h>
42#include <Inventor/fields/SoSFArray3D.h>
44#include <LDM/SoLDMDataAccess.h>
45#include <LDM/SoLDMMediator.h>
46#include <LDM/SoLDMTileID.h>
47#include <LDM/nodes/SoDataSet.h>
48#include <LDM/nodes/SoTransferFunction.h>
49#include <LDM/readers/SoVolumeReader.h>
51#include <VolumeViz/nodes/SoVolumeRendering.h>
59class SoGLVolCacheList;
66class SoLDMTileManager;
67class SoLDMTileVisitor;
68class SoLDMNodeFrontManager;
69class SoLDMTextureManager;
75class LDMDefaultSliceAccessor;
733 using SoDataSet::getTexData;
968 const std::vector<SbVec3i32>& boxCenters,
970 const double& newValue
983 virtual SbBool saveEditing(
bool recomputeLowerResolution = TRUE,
const std::vector<char*> convertionParameters = std::vector<char*>(),
SaveEditingCB* callback = NULL );
985#if 1 SoDEPRECATED enum
1004#ifndef HIDDEN_FROM_DOC
1015#if 1 SoDEPRECATED enum
1082 virtual void doAction(
SoAction *action );
1088 virtual int32_t getRenderUnitID()
const;
1108 virtual void notify(SoNotList *list);
1114 static void initClass();
1115 static void exitClass();
1119 SoTransferFunction::GLColorMapType getColorMapType(
SoState*);
1126 void setLightIntensity(
SoState* state,
float);
1128 virtual bool isPalettedTexture(
SoState* state);
1131 void getVolumeTexGen(
SbVec4d texGen[3])
const;
1137 SbVec3f getVolumeTextureRatio()
const;
1145 virtual int getTexPrec(
SoState*state);
1169 const std::vector<float>& getInvertedRectilinearCoordinates(
Axis axis)
const;
1180 virtual void drawIJKBox(
SoGLRenderAction* action, BoxColor color,
const SbBox3f& box,
bool fullRes,
bool subTile =
false );
1181 virtual void drawIJKBox(
SoGLRenderAction* action, BoxColor color,
const SbBox3f& box,
bool subTile =
false );
1183 void setupRectilinearCoordinates(
const SbVec3i32&);
1185 void resetRectilinearCoordinatesUpdated(
const SoVolumeShader* s);
1190 SbVec3f computeInvertedRectilinearCoordinate(
const SbVec3f& vertex)
const;
1191 SbBox3f computeInvertedRectilinearCoordinate(
const SbBox3f& box);
1193 void setDefaultValue(
const double defValue );
1194 double getDefaultValue()
const;
1219 virtual void readerChanged();
1224 virtual void setElement(
SoState* state);
1230 void releaseMemory();
1232 virtual bool enableMultidata(
SoState* state);
1237 virtual void unload();
1242 virtual void updateFilename();
1247 virtual SbBool isRGBAData();
1258 virtual SoLDMGeomElement* getAppropriateElement(
SoLDMGeometry* v );
1263 void commonConstructor();
1272 friend class ::SoVolumeState;
1276#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> 3D vector class ...
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> 4D vector class ...
Abstract base class for all actions.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Abstract base cl...
Performs a generic traversal of a scene graph or path.
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> Data set...
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> Data set...
friend class SoLDMGeometry
SbBool saveEditing()
Commit all transactions.
SbBool SaveEditingCB(SoDataSet *dataSet, SoVolumeWriter *writer, int tilesRemaining, int totalTiles)
This is the declaration to use for saveEditing callback functions.
Renders a scene graph using Open Inventor's Render Engine.
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> Volume d...
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> Base cla...
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> Resource...
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> Defines ...
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> Tile ID
Abstract base class for all database nodes.
Field containing a 3D array value.
Field containing a single Boolean value.
Field containing an enumerated value.
Field containing a int32_t integer.
<a href="IconLegend.html"><img src="extVR.gif" alt="VolumeViz" border="0"></a> Volume data property ...
SoSFBool useExtendedData
If TRUE, VolumeViz stores an additional copy of each loaded tile.
SoSFArray3D data
Specifies the volume data, including dimensions, data type and number of significant bits.
SoDEPRECATED int getTexMemorySize()
Returns the maximum texture memory size to use in mega texels.
virtual SbBool saveEditing(bool recomputeLowerResolution=TRUE, const std::vector< char * > convertionParameters=std::vector< char * >(), SaveEditingCB *callback=NULL)
Commit all transactions.
void updateTilesInTextureMemory(SoLDMTileID *tiles, int numTiles)
Reloads textures corresponding to the given tile IDs.
void setRGBAData(const bool flag)
Force data to be considered as RGBA values.
CoordinateType
Coordinate type used by this data set.
@ COORDINATES_RECTILINEAR
Grid spacing defined by x, y, z values.
@ COORDINATES_UNIFORM
Uniform grid spacing along each axis.
CoordinateType getCoordinateType() const
virtual int editTile(const SoLDMTileID &tileId, SoBufferObject *userData)
Replaces the contents of a tile with the given data.
SoSFBool useSharedPalettedTexture
Note: On graphics boards that support programmable shaders, this field is ignored (virtually all grap...
virtual int editSubVolume(const SbBox3i32 &subVolume, SoBufferObject *userData)
Replaces the contents of a subvolume with the given data.
virtual SbBool undoEditing(int transactionId)
Undo all modifications associated with the specified transaction id.
virtual int editSolidShape(const SoNode *solidShape, const double &value)
Replaces all voxels intersecting the given shape with the specified value.
OverMethod
Over sampling method mode.
void updateRegions(const SbBox3i32 *region, int num_regions)
Updates regions of the volume that have been modified.
virtual SbBool redoEditing(int transactionId)
Redo all modifications associated with the specified transaction id.
virtual SbBool getMinMax(double &min, double &max)
Returns min and max values of the data set.
SoSFBool dataRGBA
Contains TRUE if the volume contains RGBA values rather than scalar values.
SbBool getHistogram(int &length, int64_t *&histogram)
Returns the histogram of the volume data.
virtual SbBool finishEditing(int transactionId)
Terminates an editing transaction.
StorageHint
Storage Hints mode TODO: this enum should be in the private section as its storageHints deprecated fi...
@ TEX2D_MULTI
Multi-texture 2D.
@ TEX2D
(synonym for TEXT2D_MULTI)
::SoLDMResourceParameters SoLDMResourceParameters
SoDEPRECATED SoVolumeData * reSampling(const SbVec3i32 &dimension, SoVolumeData::SubMethod subMethod, SoVolumeData::OverMethod=NONE)
Re-samples the volume down to or up to the given dimension using the sub-sampling method SubMethod(...
virtual int editSurfaceShape(const SoNode *surfaceShape, const float &thickness, const double &newValue)
Replaces all voxels intersecting the polygons or lines defined by the surfaceShape and given thicknes...
virtual int editBoxes(const std::vector< SbVec3i32 > &boxCenters, const int &boxSize, const double &newValue)
Replace all voxels in the region defined by a list of boxes with the specified value.
Axis
Which axis to handle.
SoLDMDataAccess LDMDataAccess
SoSFBool usePalettedTexture
For a volume containing scalar data values, controls whether scalar values (true) or RGBA values (fal...
virtual int editSubVolume(const SbBox3i32 &subVolume, const double &value)
Replaces the contents of a subvolume with the specified value.
SubMethod
Sub sampling method mode.
virtual int editTile(const SoLDMTileID &tileId, const double &value)
Replaces the contents of a tile with the specified value.
SoDEPRECATED void setTexMemorySize(int size)
Specifies the maximum texture memory size to use in mega texels.
const std::vector< float > & getRectilinearCoordinates(Axis axis) const
Returns a vector describing mapping from uniform space to rectilinear space.
SoDEPRECATED SoVolumeData * subSetting(const SbBox3i32 ®ion)
Extracts the data volume defined by region.
SoVolumeData()
Constructor.
virtual SbBool getMinMax(int64_t &min, int64_t &max)
Returns min and max values of the data set data.
virtual SbBool startEditing(int &transactionId)
Initiate an editing transaction.
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> Abstract...
@ COORDINATES_UNIFORM
Uniform grid spacing along each axis.
@ COORDINATES_RECTILINEAR
Grid spacing defined by x, y, z values.
<a href="IconLegend.html"><img src="extVR.gif" alt="VolumeViz" border="0"></a> Initializes the Volum...
<a href="IconLegend.html"><img src="extVR.gif" alt="VolumeViz" border="0"></a> Shader node for volum...
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> Abstract...
Writes a scene graph to a file.
std::pair< SoDataSet *, int > DataSetIdPair
Pair containing an SoDataset and its dataSetId.