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
Specifies the color index texture storage size 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 the OpenGL lossy texture compression extension (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, write
copyFieldValues, copyFieldValues, enableNotify, fieldsAreEqual, get, getAllFields, getEventIn, getEventOut, getField, getFieldName, hasDefaultValues, isNotifyEnabled, set, setToDefaults
dispose, getEXTERNPROTO, getName, getPROTO, isDisposable, isSynchronizable, setName, setSynchronizable
getAddress, 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. <TABLE border=1 cellspacing=0 cellpadding=5> <TR><TD valign=_top> <B> File Extension </B> <TD valign=_top> <B> Loader Class </B> <TD valign=_top> <B> Description </B> <TR><TD valign=_top> .am <TD valign=_top> SoVRAmFileReader <TD valign=_top> Amira Mesh file format <TR><TD valign=_top> .dc3, .dic, .dicom <TD valign=_top> SoVRDicomFileReader <TD valign=_top> Dicom file format <TR><TD valign=_top> .fld <TD valign=_top> SoVRAvsFileReader <TD valign=_top> AVS field file format <TR><TD valign=_top> .lda or .ldm <TD valign=_top> SoVRLdmFileReader <TD valign=_top> Large Data Management file format <TR><TD valign=_top> .sgy or .segy <TD valign=_top> SoVRSegyFileReader <TD valign=_top> SEG Y revision 1 file format <TR><TD valign=_top> .vol <TD valign=_top> SoVRVolFileReader <TD valign=_top> Vol file format <TR><TD valign=_top> .vox <TD valign=_top> SoVRVoxFileReader <TD valign=_top> Vox file format <TR><TD valign=_top> .lst <TD valign=_top> SoVRRasterStackReader <TD valign=_top> Lst file format </TABLE>
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
public final SoSFUShort texturePrecision
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 being used (for example if setVolumeData() was called).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 August 20, 2019, Copyright © Thermo Fisher Scientific. All rights reserved. http://www.openinventor.com