javax.media.j3d
Class ShaderAttributeValue

java.lang.Object
  extended by javax.media.j3d.SceneGraphObject
      extended by javax.media.j3d.NodeComponent
          extended by javax.media.j3d.ShaderAttribute
              extended by javax.media.j3d.ShaderAttributeObject
                  extended by javax.media.j3d.ShaderAttributeValue

public class ShaderAttributeValue
extends ShaderAttributeObject

The ShaderAttributeValue 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 instance 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 of the value is immutable once a ShaderAttributeValue is constructed. Subsequent setValue operations must be called with an object of the same type as the one that was used to construct the ShaderAttributeValue. 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:
ShaderAttributeSet, ShaderProgram

Field Summary
 
Fields inherited from class javax.media.j3d.ShaderAttributeObject
ALLOW_VALUE_READ, ALLOW_VALUE_WRITE
 
Constructor Summary
ShaderAttributeValue(java.lang.String attrName, java.lang.Object value)
          Constructs a new ShaderAttributeValue object with the specified (attrName, value) pair.
 
Method Summary
 java.lang.Object getValue()
          Retrieves the value of this shader attribute.
 void setValue(java.lang.Object value)
          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, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString, updateNodeReferences
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ShaderAttributeValue

public ShaderAttributeValue(java.lang.String attrName,
                            java.lang.Object value)
Constructs a new ShaderAttributeValue object with the specified (attrName, value) pair. A copy of the object is stored.

Parameters:
attrName - the name of the shader attribute
value - the value of the shader attribute
Throws:
java.lang.NullPointerException - if attrName or value is null
java.lang.ClassCastException - if value is not an instance of one of the allowed classes
Method Detail

getValue

public java.lang.Object getValue()
Description copied from class: ShaderAttributeObject
Retrieves the value of this shader attribute. A copy of the object is returned.

Specified by:
getValue in class ShaderAttributeObject
Returns:
a copy of the value of this shader attribute

setValue

public void setValue(java.lang.Object value)
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 class ShaderAttributeObject
Parameters:
value - the new value of the shader attribute