SoDataCompositor Class |
Data set compositor node.
Namespace: OIV.LDM.Nodes
The SoDataCompositor type exposes the following members.
Name | Description | |
---|---|---|
SoDataCompositor | Constructor . |
Name | Description | |
---|---|---|
AffectsState | Returns true if a node has an effect on the state during traversal. | |
Callback | (Overrides SoNodeCallback(SoCallbackAction).) | |
Compose(Int32, SbVec3i32, Int32, SoBufferObject, SoBufferObject) | The compose method can be overridden in a subclass to specify a custom composition. | |
Compose(Int32, SbVec3i32, Int32, SoBufferObject, SoDataCompositorDataTypes, SoBufferObject) | Same as the compose method described above with one additional parameter: dataTypes is an array of SoDataSet.dataType giving the data type of each input buffer (e.g., inputBuffer[0] is of data type dataTypes[0]). | |
Copy | Calls Copy(false). (Inherited from SoNode.) | |
Copy(Boolean) | Creates and returns an exact copy of the node. | |
CopyFieldValues(SoFieldContainer) | Calls CopyFieldValues(fc, false). (Inherited from SoFieldContainer.) | |
CopyFieldValues(SoFieldContainer, Boolean) | Copies the contents of fc's fields into this object's fields. | |
Dispose |
Releases all resources used by SoDisposable.
(Inherited from SoDisposable.) | |
Distribute | (Inherited from SoNode.) | |
DoAction | (Overrides SoNodeDoAction(SoAction).) | |
EnableNotify | Notification at this Field Container is enabled (if flag == true) or disabled (if flag == false). | |
Equals | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) | |
FieldsAreEqual | Returns true if this object's fields are exactly equal to fc's fields. | |
Get | Returns the values of the fields of this object in the Open Inventor ASCII file format in the given string. | |
GetAllFields | Returns a list of fields, including the eventIn's and eventOut's. | |
GetAlternateRep | This method is called by actions to allow the node to provide an "alternate representation" when appropriate (typically depending on the action type). | |
GetBoundingBox | (Overrides SoNodeGetBoundingBox(SoGetBoundingBoxAction).) | |
GetDataSize | Returns number of bytes for output datum. | |
GetDataType | Returns the output data type. | |
GetEventIn | Returns a the eventIn with the given name. | |
GetEventOut | Returns the eventOut with the given name. | |
GetField | Returns a the field of this object whose name is fieldName. | |
GetFieldName | Returns the name of the given field in the fieldName argument. | |
GetFields | Appends references to all of this object's fields to resultList, and returns the number of fields appended. | |
GetHashCode |
Overrides GetHashCode().
(Inherited from SoNetBase.) | |
GetMatrix | (Inherited from SoNode.) | |
GetName | Returns the name of an instance. | |
GetNumSigBits | Returns the output number of significant bits. | |
GetPrimitiveCount | (Inherited from SoNode.) | |
GetRenderEngineMode | Returns the supported Render engine mode. | |
GetRenderUnitID | (Inherited from SoNode.) | |
GetStringName | (Inherited from SoBase.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
GLRender | (Overrides SoNodeGLRender(SoGLRenderAction).) | |
GLRenderBelowPath | (Inherited from SoNode.) | |
GLRenderInPath | (Inherited from SoNode.) | |
GLRenderOffPath | (Inherited from SoNode.) | |
GrabEventsCleanup | (Inherited from SoNode.) | |
GrabEventsSetup | (Inherited from SoNode.) | |
HandleEvent | (Inherited from SoNode.) | |
HasDefaultValues | Returns true if all of the object's fields have their default values. | |
IsBoundingBoxIgnoring | This method is used by getBoundingBox action traversal to know if the current node must be traversed or not, ie the bounding should be ignored. | |
IsDataSigned | Returns true if the given data type is a signed integer data type. | |
IsNotifyEnabled | Notification is the process of telling interested objects that this object has changed. | |
IsOverride | Returns the state of the override flag. | |
IsSynchronizable | Gets the ScaleViz synchronizable state of this object. | |
Pick | (Overrides SoNodePick(SoPickAction).) | |
RayPick | (Inherited from SoNode.) | |
Search | (Inherited from SoNode.) | |
Set | Sets one or more fields in this object to the values specified in the given string, which should be a string in the Open Inventor file format. | |
SetName | (Inherited from SoBase.) | |
SetOverride | Turns the override flag on or off. | |
SetSynchronizable | Sets this to be a ScaleViz synchronizable object. | |
SetToDefaults | Sets all fields in this object to their default values. | |
ToString |
Converts this SoBase structure to a human readable string.
(Inherited from SoBase.) | |
Touch | Marks an instance as modified, simulating a change to it. | |
Write | (Overrides SoNodeWrite(SoWriteAction).) |
Name | Description | |
---|---|---|
convert | If the convert field is true, LDM will call the compose method after automatically converting data to the final data type if necessary. | |
dataType | Data type of the final composed buffer. | |
IsDisposable | ISafeDisposable interface implementation.
(Inherited from SoDisposable.) | |
numSigBits | Number of significant bits of the final composed datum. | |
preDefCompositor | Predefined composition method. | |
rgbaMode | Final composed buffer contains RGBA values (default is false). | |
UserData |
Gets or sets the user data to be contained by the field container.
(Inherited from SoFieldContainer.) |
The OIV.LDM.Nodes.SoDataCompositor node allows you to combine multiple data sets in memory instead of having to store the combined data sets on disk. For example, it can be used to visualize the result of the difference between two data sets. Notice: The OIV.LDM.Nodes.SoDataCompositor cannot be used for unary operation (the number of data set used with a data compositor must be stricly greater than one). Unary operation can be performed using the SoLDMDataTransformCB (see OIV.LDM.Nodes.SoDataSet node).
NOTE: This node is only useful in LDM mode.
A number of rules apply to the use of OIV.LDM.Nodes.SoDataCompositor:
The OIV.LDM.Nodes.SoDataCompositor node and OIV.LDM.Nodes.SoDataSet nodes must be children of an OIV.LDM.Nodes.SoMultiDataSeparator node (an ordinary OIV.Inventor.Nodes.SoSeparator will not work correctly).
The OIV.LDM.Nodes.SoDataCompositor node must be inserted before the OIV.LDM.Nodes.SoDataSet nodes in the scene graph.
No rendering primitives (e.g., OIV.VolumeViz.Nodes.SoOrthoSlice, OIV.VolumeViz.Nodes.SoVolumeRender) are allowed between the OIV.LDM.Nodes.SoDataSet nodes that are used for the composition.
A OIV.LDM.Nodes.SoDataSet node used for data compositing should not be referenced twice in the scene graph. Another data set node pointing to the same file should rather be instantiated).
All nodes needed to realize the compositing must be under the same OIV.Inventor.Nodes.SoSeparator node.
No other nodes must be under this OIV.Inventor.Nodes.SoSeparator node.
It is not possible to mix OIV.LDM.Nodes.SoDataSet nodes used for compositing with OIV.LDM.Nodes.SoDataSet nodes used for normal rendering under the same OIV.Inventor.Nodes.SoSeparator.
For example, to realize the difference of two data sets, only the OIV.LDM.Nodes.SoDataCompositor node, the OIV.LDM.Nodes.SoDataSet nodes, and the rendering primitive node must be inserted under the OIV.LDM.Nodes.SoMultiDataSeparator node created to handle the composition.
Each OIV.LDM.Nodes.SoDataSet following the compositor must have the same exact dimensions. However, the data set nodes can have different voxel data types (bytes per voxel). The final voxel data type is specified by the data compositor node through the OIV.LDM.Nodes.SoDataCompositor.dataType field.
If the OIV.LDM.Nodes.SoDataCompositor.rgbaMode field is set to true, then OIV.LDM.Nodes.SoDataCompositor.dataType and OIV.LDM.Nodes.SoDataCompositor.numSigBits are ignored, and the output data is generated as UNSIGNED_INT32 with 32 significant bits.
The OIV.LDM.Nodes.SoDataCompositor node offers different default composition operators (see OIV.LDM.Nodes.SoDataCompositor.preDefCompositor) but it is possible to create a customized operator by subclassing the node and redefining one of the OIV.LDM.Nodes.SoDataCompositor.Compose(System.Int32, OIV.Inventor.SbVec3i32, System.Int32[], OIV.Inventor.Devices.SoBufferObject[], OIV.Inventor.Devices.SoBufferObject) methods. To use the custom operator, the OIV.LDM.Nodes.SoDataCompositor.preDefCompositor field must be set to NONE.
DataCompositor{
dataType | UNSIGNED_BYTE |
numSigBits | 0 |
rgbaMode | false |
preDefCompositor | MINUS |
convert | true |
OIV.Inventor.Actions.SoCallbackAction, OIV.Inventor.Actions.SoGLRenderAction, OIV.Inventor.Actions.SoWriteAction, OIV.Inventor.Actions.SoGetBoundingBoxAction, OIV.Inventor.Actions.SoPickAction Sets data compositor parameters in the traversal state.