## javax.media.j3d
Class ShaderAttributeValue

    java.lang.Object
      javax.media.j3d.SceneGraphObject
          javax.media.j3d.NodeComponent
              javax.media.j3d.ShaderAttribute
                  javax.media.j3d.ShaderAttributeObject
                      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, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString, updateNodeReferences`

Methods inherited from class java.lang.Object
`clone, equals, finalize, 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

Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms.