public abstract class SoDataSet extends SoNode
SoVolumeData and SoMeshGeometry. These nodes provide the data for VolumeViz nodes (SoVolumeRender, SoOrthoSlice, SoObliqueSlice, etc.).
 The data set can be specified by:
fileName field Calling the setReader() method 
 
 This is the most general method because an application can specify one of the standard LDM readers or implement a customized subclass of SoVolumeReader. LDM will get the data set properties (dimensions, size, data type, etc) and access the data through the specified reader object. This allows the application to completely control how, and from where, the data is loaded.
 
See also:
SoDataSetId, SoDataCompositor, SoVolumeData, SoMeshGeometry, SoMeshProperty
| Modifier and Type | Class and Description | 
|---|---|
static class  | 
SoDataSet.DataTypes
Supported data type. 
 | 
class  | 
SoDataSet.LDMDataModifier
Deprecated. 
 
As of Open Inventor 9.9, should use
              
dataTransform field instead of
             setLDMDataModifier(LDMDataModifier) method. | 
Inventor.ConstructorCommand| Modifier and Type | Field and Description | 
|---|---|
SoSFBool | 
allocateResourceOnRender
Indicates if resource allocation is done only on first render traversal or as soon as the node is created. 
 | 
SoSFInt32 | 
dataSetId
 | 
SoSFLDMDataTransform | 
dataTransform
If set to an appropriate  
SoLDMDataTransform object, the object's transformFunction method is called after each tile is loaded, but before it is stored in main memory. | 
SoSFBox3f | 
extent
The real size (extent) of the volume in modeling coordinates. 
 | 
SoSFFilePathString | 
fileName
Indicates the file location containing the data set. 
 | 
static int | 
FLOAT
Deprecated. 
 
Use  
SoDataSet.DataTypes.FLOAT instead. | 
SoSFLDMResourceParameters | 
ldmResourceParameters
Contains an  
SoLDMResourceParameters object which allows you to set LDM resource parameters. | 
static int | 
SIGNED_BYTE
Deprecated. 
 
Use  
SoDataSet.DataTypes.SIGNED_BYTE instead. | 
static int | 
SIGNED_INT32
Deprecated. 
 
Use  
SoDataSet.DataTypes.SIGNED_INT32 instead. | 
static int | 
SIGNED_SHORT
Deprecated. 
 
Use  
SoDataSet.DataTypes.SIGNED_SHORT instead. | 
SoSFUShort | 
texturePrecision
For scalar (non-RGBA) data, specifies the size of voxel values on the GPU in bits. 
 | 
static int | 
UNSIGNED_BYTE
Deprecated. 
 
Use  
SoDataSet.DataTypes.UNSIGNED_BYTE instead. | 
static int | 
UNSIGNED_INT32
Deprecated. 
 
Use  
SoDataSet.DataTypes.UNSIGNED_INT32 instead. | 
static int | 
UNSIGNED_SHORT
Deprecated. 
 
Use  
SoDataSet.DataTypes.UNSIGNED_SHORT instead. | 
SoSFBool | 
useCompressedTexture
Controls use of OpenGL lossy texture compression for RGBA data (if available). 
 | 
VERBOSE_LEVEL, ZeroHandle| Modifier and Type | Method and Description | 
|---|---|
static int | 
dataSize(SoDataSet.DataTypes dataType)
Returns the number of bytes per voxel of the specified data type. 
 | 
int | 
editBoxes(java.util.Collection<SbVec3i32> boxCenters,
         int boxSize,
         double newValue)
Replace all voxels in the region defined by a list of boxes with the specified value. 
 | 
int | 
editSolidShape(SoNode solidShape,
              double value)
Replace all voxels intersecting the given shape with the specified value. 
 | 
int | 
editSubVolume(SbBox3i32 subVolume,
             double value)
Replace the contents of a subvolume with the specified value. 
 | 
int | 
editSubVolume(SbBox3i32 subVolume,
             SoBufferObject userData)
Replace the contents of a subvolume with the given data. 
 | 
int | 
editSurfaceShape(SoNode surfaceShape,
                float thickness,
                double value)
Replace all voxels intersecting the polygons or lines defined by the surfaceShape and given thickness with the specified value. 
 | 
int | 
editTile(SoLDMTileID tileId,
        double value)
Replace the contents of a tile with the specified value. 
 | 
int | 
editTile(SoLDMTileID tileId,
        SoBufferObject userData)
Replace the contents of a tile with the given data. 
 | 
boolean | 
finishEditing(int transactionId)
Terminate an editing transaction. 
 | 
int | 
getDataSize()
Returns the number of bytes per voxel in VolumeViz. 
 | 
SoDataSet.DataTypes | 
getDataType()
Returns the data type. 
 | 
int | 
getDatumSize()
Returns the number of bytes per voxel. 
 | 
SbVec3i32 | 
getDimension()
Returns the data set dimension. 
 | 
double[] | 
getDoubleMinMax()
Returns  min  and  max  values of the data set. 
 | 
SoLDMDataAccess | 
getLdmDataAccess()
Returns a reference to the  
SoLDMDataAccess object. | 
SoLDMMediator.LDMManagerAccess | 
getLdmManagerAccess()
Returns a reference to an LDMManagerAccess. 
 | 
SoLDMReader | 
getLDMReader()
Returns a pointer to the current data set reader object. 
 | 
static int | 
getMaxNumDataSets()
Returns the maximum number of data sets that can be render composited on the current hardware (essentially the number of texture units - 1). 
 | 
long[] | 
getMinMax()
Returns  min  and  max  values of the data set data. 
 | 
SoLDMNodeFrontManager | 
getNodeFrontManager()
Returns a pointer to the LDM node front manager. 
 | 
int | 
getNumTimeSteps()
Deprecated. 
 
As of Open Inventor 9000 See documentation for more details 
 | 
int | 
getOverlapping()
Deprecated. 
 
As of Open Inventor 9000 See documentation for more details 
 | 
SoVolumeReader | 
getReader()
Returns the current data set reader object. 
 | 
SbVec3i32 | 
getTileDimension()
Returns the tile dimension. 
 | 
SoLDMTileManager | 
getTileManager()
Returns a pointer to the LDM tile manager. 
 | 
SoLDMTileVisitor | 
getTileVisitor()
Deprecated. 
 
As of Open Inventor 9700 See documentation for more details 
 | 
SoLDMGeometry | 
getVVizGeometry()
Deprecated. 
 
As of Open Inventor 9700 See documentation for more details 
 | 
boolean | 
hasEditedTile()
Returns true if DataSet has edited tiles. 
 | 
static boolean | 
isDataFloat(SoDataSet.DataTypes dataType)
Returns true if the given data type is a float data type. 
 | 
static boolean | 
isDataSigned(SoDataSet.DataTypes dataType)
Returns true if the given data type is a signed integer data type. 
 | 
boolean | 
isTimeDependent()
Deprecated. 
 
As of Open Inventor 9000 See documentation for more details 
 | 
int | 
numSigBits()
Returns the number of significant bits. 
 | 
void | 
readTile(SoLDMTileID tileID,
        SoBufferObject buffer,
        boolean transform)
Copies the specified tile into the provided buffer. 
 | 
boolean | 
redoEditing(int transactionId)
Redo all modifications associated with the specified transaction id. 
 | 
void | 
resetReader()
reset previously set custom reader setup by setReader call. 
 | 
void | 
setLDM(boolean state)
Deprecated. 
 
As of Open Inventor 9000 See documentation for more details 
 | 
void | 
setLDMDataModifier(SoDataSet.LDMDataModifier transformer)
Deprecated. 
 
As of Open Inventor 9.9, should use
              
dataTransform field instead. | 
void | 
setLDMReader(SoLDMReader reader)
Sets the LDM volume reader object to use. 
 | 
void | 
setReader(SoVolumeReader reader)
Calls setReader(reader, false). 
 | 
void | 
setReader(SoVolumeReader reader,
         boolean takeOwnership)
This method allows the data to be read directly from the disk using the specified subclass of  
SoVolumeReader. | 
void | 
setTileVisitor(SoLDMTileVisitor tileVisitor)
Deprecated. 
 
As of Open Inventor 9700 See documentation for more details 
 | 
int | 
startEditing()
Initiate an editing transaction. 
 | 
boolean | 
undoEditing(int transactionId)
Undo all modifications associated with the specified transaction id. 
 | 
void | 
writeTile(SoLDMTileID tileID,
         SoBufferObject buffer,
         SoVolumeWriter writer)
Write the specified tile using the specified writer. 
 | 
affectsState, callback, copy, copy, distribute, doAction, getAlternateRep, getBoundingBox, getByName, getMatrix, getPrimitiveCount, getRenderUnitID, GLRender, GLRenderBelowPath, GLRenderInPath, GLRenderOffPath, grabEventsCleanup, grabEventsSetup, handleEvent, isBoundingBoxIgnoring, isOverride, pick, rayPick, search, setOverride, touch, writecopyFieldValues, copyFieldValues, enableNotify, fieldsAreEqual, get, getAllFields, getEventIn, getEventOut, getField, getFieldName, hasDefaultValues, isNotifyEnabled, set, setToDefaultsdispose, getEXTERNPROTO, getName, getPROTO, isDisposable, isSynchronizable, setName, setSynchronizablegetAddress, getNativeResourceHandle, startInternalThreads, stopInternalThreads@Deprecated public static final int UNSIGNED_BYTE
SoDataSet.DataTypes.UNSIGNED_BYTE instead.@Deprecated public static final int UNSIGNED_SHORT
SoDataSet.DataTypes.UNSIGNED_SHORT instead.@Deprecated public static final int UNSIGNED_INT32
SoDataSet.DataTypes.UNSIGNED_INT32 instead.@Deprecated public static final int SIGNED_BYTE
SoDataSet.DataTypes.SIGNED_BYTE instead.@Deprecated public static final int SIGNED_SHORT
SoDataSet.DataTypes.SIGNED_SHORT instead.@Deprecated public static final int SIGNED_INT32
SoDataSet.DataTypes.SIGNED_INT32 instead.@Deprecated public static final int FLOAT
SoDataSet.DataTypes.FLOAT instead.public final SoSFInt32 dataSetId
SoDataSet nodes, the dataSetId field uniquely identifies each data set used in the compositing.
 It also specifies the OpenGL texture unit in which the textures for this data set will be stored when doing render compositing. It is 1 by default (texture unit 0 is reserved for the color lookup table by default). The number of available texture units depends on your hardware. You can query this number using getMaxNumDataSets.
 Note: The SoDataSetId node can also be used to define dataSetId. If an SoDataSetId node is traversed before the SoDataSet node, the id from the SoDataSetId node is used and this field is ignored.
 
public final SoSFFilePathString fileName
SoVolumeReader (if it exists) is used.
 
| File Extension | Loader Class | Description | 
| .am | SoVRAmFileReader | Amira Mesh file format | 
| .dc3, .dic, .dicom | SoVRDicomFileReader | Dicom file format | 
| .fld | SoVRAvsFileReader | AVS field file format | 
| .lda or .ldm | SoVRLdmFileReader | Large Data Management file format | 
| .sgy or .segy | SoVRSegyFileReader | SEG Y revision 1 file format | 
| .vol | SoVRVolFileReader | Vol file format | 
| .vox | SoVRVoxFileReader | Vox file format | 
| .lst | SoVRRasterStackReader | Lst file format | 
The filename extension is not case sensitive.
Note: SoDataSet and its derived classes (SoVolumeData, etc) do 
  not  search the SoInput directory list to find files specified in this field. To check file existence and other properties the SbFileHelper class may be useful.
public final SoSFBool useCompressedTexture
A significant advantage of compressed textures is that they conserve texture memory space. At the moment, the extension works on RGBA textures only, not on paletted textures. The compression factor is about 5.
A potential drawback of compressed textures is that lossy compression can result in values on the GPU that are that are slightly different from the actual value in the volume. For example "gray scale" colors could have a slight color in some cases. You should always set this option to false when using "RGBA" data to store 32-bit "id" values.
public final SoSFUShort texturePrecision
There are several trade-offs influenced by this value, including:
SoDataRange node). 
public final SoSFBox3f extent
Note this can be used to define a volume with non-uniform voxel spacing. For example, if the volume dimensions (voxels) are 64x64x64, but the voxel spacing in Z is twice the X and Y spacing, then you might specify the volume size as -1 to 1 for X and Y but -2 to 2 for Z.
public final SoSFLDMDataTransform dataTransform
SoLDMDataTransform object, the object's transformFunction method is called after each tile is loaded, but before it is stored in main memory.
 This allows you to modify the original data (for example, scaling or filtering) before it is displayed. Default is no transform.
 Note: Before Open Inventor 8.0, the data transformFunction was set using the setLDMDataModifier method. That method is now deprecated.
public final SoSFBool allocateResourceOnRender
public final SoSFLDMResourceParameters ldmResourceParameters
SoLDMResourceParameters object which allows you to set LDM resource parameters.@Deprecated public void setLDMDataModifier(SoDataSet.LDMDataModifier transformer)
dataTransform field instead.public void setReader(SoVolumeReader reader)
public int startEditing()
finishEditing()) and for undo/redo (see undoEditing() and redoEditing()). Multiple transactions may be active at the same time.public SoLDMDataAccess getLdmDataAccess()
SoLDMDataAccess object.
 public void readTile(SoLDMTileID tileID, SoBufferObject buffer, boolean transform)
public void writeTile(SoLDMTileID tileID, SoBufferObject buffer, SoVolumeWriter writer)
SoVolumeReader.closeAllHandles and SoVolumeWriter.restoreAllHandles), ie. the current reader's handles must be closed, and the specified writer's handles must be opened.public boolean finishEditing(int transactionId)
startEditing() method. On error does nothing. The finish method will schedule a redraw so the correct data is displayed. To commit the edits, in other words to save the edited data back to the data source, call saveEditing().public int editSubVolume(SbBox3i32 subVolume, double value)
startEditing() before calling this method. Returns 0 if successful.public int editSurfaceShape(SoNode surfaceShape, float thickness, double value)
Call startEditing() before calling this method. Returns 0 if successful. 
 
Warning The modification may be postponed until the tiles are really needed. Therefore the surfaceShape node (and children if any) must not be modified until after saveEditing() is called.
public int editTile(SoLDMTileID tileId, double value)
startEditing() before calling this method. Returns 0 if successful.public int editTile(SoLDMTileID tileId, SoBufferObject userData)
startEditing() before calling this method. Returns 0 if successful. 
 Warning The modification may be postponed until the tile is really needed. Therefore the contents of the userData buffer must not be modified until after saveEditing() is called.
public int editSubVolume(SbBox3i32 subVolume, SoBufferObject userData)
startEditing() before calling this method. Returns 0 if successful. 
 Warning The modification may be postponed until the tiles are really needed. Therefore the contents of the userData buffer must not be modified until after saveEditing() is called.
@Deprecated public void setLDM(boolean state)
public static boolean isDataSigned(SoDataSet.DataTypes dataType)
public static boolean isDataFloat(SoDataSet.DataTypes dataType)
public static int dataSize(SoDataSet.DataTypes dataType)
@Deprecated public int getNumTimeSteps()
Was only supported by ReservoirViz module extension.Deprecated since Open Inventor 9000 
 
 No longer supported. 
public void resetReader()
public SbVec3i32 getTileDimension()
public int getDatumSize()
public SbVec3i32 getDimension()
public static int getMaxNumDataSets()
public SoLDMMediator.LDMManagerAccess getLdmManagerAccess()
public int numSigBits()
public long[] getMinMax()
public SoVolumeReader getReader()
SoVolumeReader, either one of the predefined subclasses or an application-defined subclass. Returns null if no reader is currently set. Applications should always verify the class type before using the returned object as a specific sub-class of SoVolumeReader.public SoLDMReader getLDMReader()
SoVolumeReader, either one of the predefined subclasses or an application-defined subclass. Returns NULL if no reader is currently being used (for example if setVolumeData() was called).public void setLDMReader(SoLDMReader reader)
SoVolumeReader.public void setReader(SoVolumeReader reader, boolean takeOwnership)
SoVolumeReader.
 If the  takeOwnership  parameter is false (default), LDM will not delete the specified instance. Otherwise, LDM will automatically delete the specified instance, for example, when the SoDataSet node is deleted. If filename is not set before setting the reader, LDM will display an error message just to warn reader did not open any file yet. LDM still work has expected.
 Note: When using a custom reader, any reader method that changes the volume properties (dimension, size, data type, etc) should notify the SoVolumeData node by calling the reader's touch() method. If this notification is not done, SoDataSet fields, for example SoDataSet.extent, won't be updated correctly.
 
@Deprecated public boolean isTimeDependent()
Was only supported by ReservoirViz module extension.Deprecated since Open Inventor 9000 
 
 No longer supported. 
public int getDataSize()
public double[] getDoubleMinMax()
public SoDataSet.DataTypes getDataType()
public SoLDMNodeFrontManager getNodeFrontManager()
public boolean redoEditing(int transactionId)
finishEditing() method) and undone (see undoEditing() method). Schedules a redraw so the correct data is displayed.
 Note: Redo is no longer available after transactions are saved. After calling saveEditing(), the transaction ids are no longer valid and the modified data is the new reference.
public boolean hasEditedTile()
public boolean undoEditing(int transactionId)
finishEditing() method). Schedules a redraw so the correct data is displayed.
 Note: Undo is no longer available after transactions are saved. After calling saveEditing(), the transaction ids are no longer valid and the modified data is the new reference.
public int editSolidShape(SoNode solidShape, double value)
editSurfaceShape method.
 If the goal is to define a shape which is the results of the intersection/union of multiple closed surfaces, see the SoCSGShape node.
 
solidShape is defined in the same 3D space as the dataSet. The solidShape can be deleted after calling this function.
Call startEditing() before calling this method. Returns 0 if successful. 
 
Warning The modification may be postponed until the tiles are really needed. Therefore the surfaceShape node (and children if any) must not be modified until after saveEditing() is called.
public int editBoxes(java.util.Collection<SbVec3i32> boxCenters, int boxSize, double newValue)
Call startEditing() before calling this method. Returns 0 if successful.
@Deprecated public void setTileVisitor(SoLDMTileVisitor tileVisitor)
@Deprecated public SoLDMGeometry getVVizGeometry()
@Deprecated public SoLDMTileVisitor getTileVisitor()
public SoLDMTileManager getTileManager()
@Deprecated public int getOverlapping()
Generated on July 23, 2025, Copyright © Thermo Fisher Scientific. All rights reserved. http://www.openinventor.com