Class SoInstanceParameter
- All Implemented Interfaces:
SafeDisposable
SoBufferObject. It is used with the SoMultipleInstance node.
Some predefined parameter names can be used for common instance parameters like position, rotation and scale factor. Parameter objects with these names are automatically managed and are recognized and used by the default shaders. Applications can define additional parameter objects to be used by custom shaders.
See the base classes SoShaderParameter, SoVertexShaderParameter and SoVertexShaderParameterBufferObject for more details.
Note: Unlike SoVertexShaderParameter, instances of this node must be added to the
parameters field of an SoMultipleInstance node, not directly in the scene graph.
File format/default:
InstanceParameter {
| name | "" |
| identifier | 0 |
| value | NULL |
| components | 4 |
| type | SbDataType.FLOAT |
| stride | 0 |
| shouldBeNormalized | false |
| divisor | 1 |
- Since:
- Open Inventor 9.5
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumList of predefined per-instance attribute names.Nested classes/interfaces inherited from class com.openinventor.inventor.nodes.SoNode
SoNode.RenderModesNested classes/interfaces inherited from class com.openinventor.inventor.Inventor
Inventor.ConstructorCommand -
Field Summary
FieldsModifier and TypeFieldDescriptionfinal SoSFUInt32This field modifies the rate at which values advance during multiple instance rendering.Fields inherited from class com.openinventor.inventor.nodes.SoVertexShaderParameterBufferObject
components, offset, shouldBeNormalized, stride, type, valueFields inherited from class com.openinventor.inventor.nodes.SoShaderParameter
identifier, nameFields inherited from class com.openinventor.inventor.Inventor
VERBOSE_LEVEL, ZeroHandle -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic SoInstanceParametercreatePredefinedParameter(SoInstanceParameter.PredefinedParameters paramKey, SoBufferObject values) Calls createPredefinedParameter(paramKey, values, (int)1).static SoInstanceParametercreatePredefinedParameter(SoInstanceParameter.PredefinedParameters paramKey, SoBufferObject values, int divisor) Creates an instance parameter object for one of the predefined attribute names.static StringReturns the predefined instance parameter name for the specified paramKey.voidSets thenamefield to the string corresponding to the given paramKey.Methods inherited from class com.openinventor.inventor.nodes.SoNode
affectsState, callback, copy, copy, distribute, doAction, getAlternateRep, getBoundingBox, getByName, getMatrix, getPrimitiveCount, getRenderEngineMode, getRenderUnitID, GLRender, GLRenderBelowPath, GLRenderInPath, GLRenderOffPath, grabEventsCleanup, grabEventsSetup, handleEvent, isBoundingBoxIgnoring, isOverride, pick, rayPick, search, setOverride, touch, writeMethods inherited from class com.openinventor.inventor.fields.SoFieldContainer
copyFieldValues, copyFieldValues, enableNotify, fieldsAreEqual, get, getAllFields, getEventIn, getEventOut, getField, getFieldName, hasDefaultValues, isNotifyEnabled, set, setToDefaultsMethods inherited from class com.openinventor.inventor.misc.SoBase
dispose, getName, isDisposable, isSynchronizable, setName, setSynchronizableMethods inherited from class com.openinventor.inventor.Inventor
getNativeResourceHandle
-
Field Details
-
divisor
This field modifies the rate at which values advance during multiple instance rendering. Divisor must be non-zero and the attribute advances once per divisor instances of the set(s) of vertices being rendered. Default is 1 (1 parameter per instance).
-
-
Constructor Details
-
SoInstanceParameter
public SoInstanceParameter()Constructor.
-
-
Method Details
-
createPredefinedParameter
public static SoInstanceParameter createPredefinedParameter(SoInstanceParameter.PredefinedParameters paramKey, SoBufferObject values) Calls createPredefinedParameter(paramKey, values, (int)1). -
setPredefinedParameterName
Sets thenamefield to the string corresponding to the given paramKey. -
getPredefinedParameterName
Returns the predefined instance parameter name for the specified paramKey. -
createPredefinedParameter
public static SoInstanceParameter createPredefinedParameter(SoInstanceParameter.PredefinedParameters paramKey, SoBufferObject values, int divisor) Creates an instance parameter object for one of the predefined attribute names. paramKey = TRANSLATION:
Sets the translation per instance parameter values using the specifiedSoBufferObject. TheSoBufferObjectis expected to contain translations encoded as 3 float values, e.g. array ofSbVec3f. The buffer size must be at least (numInstances/divisor) * 3 * sizeof(float). The divisor parameter indicates by how many instances a translation value is shared.Example :
- numInstance = 4
- translationValues = {(1, 0, 0), (0, 1, 0)}
- divisor = 2 => The first 2 instances will be translated by using (1, 0, 0) and the next two using (0, 1, 0).
paramKey = ROTATION:
Sets the rotation per instance parameter values using the specifiedSoBufferObject. TheSoBufferObjectis expected to contain rotations encoded as 4 float values, e.g. array ofSbRotation. The buffer size must be at least (numInstances/divisor) * 4 * sizeof(float). The divisor parameter indicates by how many instances a rotation value is shared.paramKey = SCALE:
Sets the scaling per instance parameter values using the specifiedSoBufferObject. TheSoBufferObjectis expected to contain scaling factor encoded as 3 float values, e.g. array ofSbVec3f. The buffer size must be at least (numInstances/divisor) * 3 * sizeof(float). The divisor parameter indicates by how many instances a scale value is shared.paramKey = COLOR:
Sets the color per instance parameter values using the specifiedSoBufferObject. TheSoBufferObjectis expected to contain colors encoded as 3 float values, e.g. array ofSbColor. The buffer size must be at least (numInstances/divisor) * 3 * sizeof(float). The divisor parameter indicates by how many instances a color value is shared.paramKey = TRANSPARENCY:
Sets the transparency per instance parameter values using the specifiedSoBufferObject. TheSoBufferObjectis expected to contain colors encoded as 1 float value, e.g. array of float. The buffer size must be at least (numInstances/divisor) * sizeof(float). The divisor parameter indicates by how many instances a transparency value is shared.paramKey = VISIBILITY:
Sets the visibility per instance parameter values using the specifiedSoBufferObject. TheSoBufferObjectis expected to contain visibility value encoded as an int32_t value. The buffer size must be at least (numInstances/divisor) * sizeof(int32_t). The divisor parameter indicates by how many instances a visibility value is shared.
-