Package 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 variableattrNameis explicitly set to the specifiedvalueduring rendering.attrNamemust 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. Thevaluemust 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 specifiedvalueobject 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 thevalueobject must match the type of the correspondingattrNamevariable 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
Constructors Constructor Description ShaderAttributeValue(java.lang.String attrName, java.lang.Object value)Constructs a new ShaderAttributeValue object with the specified(attrName, value)pair.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.ObjectgetValue()Retrieves the value of this shader attribute.voidsetValue(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
-
-
-
-
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 attributevalue- the value of the shader attribute- Throws:
java.lang.NullPointerException- if attrName or value is nulljava.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:ShaderAttributeObjectRetrieves the value of this shader attribute. A copy of the object is returned.- Specified by:
getValuein classShaderAttributeObject- Returns:
- a copy of the value of this shader attribute
-
setValue
public void setValue(java.lang.Object value)
Description copied from class:ShaderAttributeObjectSets the value of this shader attribute to the specified value. A copy of the object is stored.- Specified by:
setValuein classShaderAttributeObject- Parameters:
value- the new value of the shader attribute
-
-