Package javax.media.j3d
Class ShaderAttributeArray
java.lang.Object
javax.media.j3d.SceneGraphObject
javax.media.j3d.NodeComponent
javax.media.j3d.ShaderAttribute
javax.media.j3d.ShaderAttributeObject
javax.media.j3d.ShaderAttributeArray
The ShaderAttributeArray object encapsulates a uniform shader
attribute whose value is specified explicitly. The shader variable
attrName
is explicitly set to the specified
value
during rendering. attrName
must be
the name of a valid uniform attribute in the shader in which it is
used. Otherwise, the attribute name will be ignored and a runtime
error may be generated. The value
must be an array
of one of the allowed classes. The allowed classes are:
Integer[]
, Float[]
,
Tuple{2,3,4}{i,f}[]
, Matrix{3,4}f[]
. A
ClassCastException will be thrown if a specified value
object is not one of the allowed types. Further, the type and length of the
value is immutable once a ShaderAttributeArray is constructed.
Subsequent setValue operations must be called with an array of the
same type and length as the one that was used to construct the
ShaderAttributeArray. Finally, the type of the value
object must match the type of the corresponding
attrName
variable in the shader in which it is
used. Otherwise, the shader will not be able to use the attribute
and a runtime error may be generated.- Since:
- Java 3D 1.4
- See Also:
-
Field Summary
Fields inherited from class javax.media.j3d.ShaderAttributeObject
ALLOW_VALUE_READ, ALLOW_VALUE_WRITE
-
Constructor Summary
ConstructorsConstructorDescriptionShaderAttributeArray
(String attrName, Object value) Constructs a new ShaderAttributeArray object with the specified(attrName, value)
pair. -
Method Summary
Modifier and TypeMethodDescriptiongetValue()
Retrieves the value of this shader attribute.int
length()
Returns the number of elements in the value array.void
Sets the specified array element of the value of this shader attribute to the specified value.void
Sets the value of this shader attribute to the specified value.Methods inherited from class javax.media.j3d.ShaderAttributeObject
getValueClass
Methods inherited from class javax.media.j3d.ShaderAttribute
getAttributeName
Methods inherited from class javax.media.j3d.NodeComponent
cloneNodeComponent, cloneNodeComponent, duplicateNodeComponent, duplicateNodeComponent, getDuplicateOnCloneTree, setDuplicateOnCloneTree
Methods inherited from class javax.media.j3d.SceneGraphObject
clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString, updateNodeReferences
-
Constructor Details
-
ShaderAttributeArray
Constructs a new ShaderAttributeArray object with the specified(attrName, value)
pair. The specified value must be an array of one of the allowed class types. A deep copy of the array is stored.- Parameters:
attrName
- the name of the shader attributevalue
- the value of the shader attribute- Throws:
NullPointerException
- if attrName or value is nullClassCastException
- if value is not an array of one of the allowed classes
-
-
Method Details
-
getValue
Description copied from class:ShaderAttributeObject
Retrieves the value of this shader attribute. A copy of the object is returned.- Specified by:
getValue
in classShaderAttributeObject
- Returns:
- a copy of the value of this shader attribute
-
setValue
Description copied from class:ShaderAttributeObject
Sets the value of this shader attribute to the specified value. A copy of the object is stored.- Specified by:
setValue
in classShaderAttributeObject
- Parameters:
value
- the new value of the shader attribute
-
setValue
Sets the specified array element of the value of this shader attribute to the specified value. A copy of the object is stored.- Parameters:
value
- the new value of the shader attribute- Throws:
NullPointerException
- if value is nullClassCastException
- if value is not an instance of the same base class as the individual elements of the array object used to construct this shader attribute object.CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-
length
public int length()Returns the number of elements in the value array.- Returns:
- the number of elements in the value array
- Throws:
CapabilityNotSetException
- if appropriate capability is not set and this object is part of live or compiled scene graph
-