Xj3D 2.0 VRML/X3D Code API

org.web3d.vrml.renderer.common.nodes
Class BaseTexture2DNode

java.lang.Object
  extended by org.web3d.vrml.renderer.common.nodes.AbstractNode
      extended by org.web3d.vrml.renderer.common.nodes.BaseTextureNode
          extended by org.web3d.vrml.renderer.common.nodes.BaseTexture2DNode
All Implemented Interfaces:
VRMLNode, FrameStateListener, VRMLAppearanceChildNodeType, VRMLNodeType, VRMLTexture2DNodeType, VRMLTextureNodeType

public abstract class BaseTexture2DNode
extends BaseTextureNode
implements VRMLTexture2DNodeType

Base implementation of a 2D texture object.

Performs the VRML field handling for REPEAT_S and REPEAT_T.

Version:
$Revision: 1.11 $
Author:
Alan Hudson

Field Summary
protected static int FIELD_REPEATS
          Field Index for the common repeatS field
protected static int FIELD_REPEATT
          Field Index for the common repeatT field
protected static int FIELD_TEXTURE_PROPERTIES
          Field Index for the textureProperties field that is available from 3.2 or later specs.
protected  NIOBufferImage implImage
          The base image for this texture
protected static int LAST_TEXTURENODETYPE_INDEX
          Index of the last common field for all 2D textures
protected  VRMLProtoInstance pTextureProperties
          PROTO version of the textureProperties node
protected static java.lang.String TEXPROPS_VERSION_MSG
          Message when accessing the texture properties field in a file with the spec version earlier than 3.2.
protected static java.lang.String TEXTURE_PROPS_NODE_MSG
          Message for when the node in setValue() is not a TextureProperty
protected static java.lang.String TEXTURE_PROPS_PROTO_MSG
          Message for when the proto is not a TextureProperties
protected  boolean vfRepeatS
          field SFBool repeatS TRUE
protected  boolean vfRepeatT
          field SFBool repeatT TRUE
protected  VRMLTextureProperties2DNodeType vfTextureProperties
          inputOutput SFNode textureProperties main field
 
Fields inherited from class org.web3d.vrml.renderer.common.nodes.BaseTextureNode
listenerList
 
Fields inherited from class org.web3d.vrml.renderer.common.nodes.AbstractNode
BAD_NODE_MSG, errorReporter, FIELD_METADATA, fieldLocalData, hasChanged, INIT_ONLY_WRITE_MSG, inSetup, isDEF, isStatic, LAST_NODE_INDEX, layerIds, METADATA_NODE_MSG, METADATA_PROTO_MSG, nodeName, pMetadata, refCounts, removedLayerIds, stateManager, vfMetadata, vrmlMajorVersion, vrmlMinorVersion
 
Constructor Summary
BaseTexture2DNode(java.lang.String name)
          Default constructor for the node.
 
Method Summary
protected  void copy(VRMLTexture2DNodeType node)
          Set the fields of the grouping node that has the fields set based on the fields of the passed in node.
 VRMLFieldData getFieldValue(int index)
          Get the value of a field.
 NIOBufferImage getImage()
          Get the image representation of this texture.
 boolean getRepeatS()
          Get the value of field repeatS.
 boolean getRepeatT()
          Get the value of field repeatT.
 VRMLNodeType getTextureProperties()
          Get node content for the textureProperties field.
 int getTextureType()
          Get the texture type of this texture.
 void sendRoute(double time, int srcIndex, VRMLNodeType destNode, int destIndex)
          Send a routed value from this node to the given destination node.
 void setTextureProperties(VRMLNodeType props)
          Set node content as replacement for the textureProperties field.
 void setupFinished()
          Notification that the construction phase of this node has finished.
 void setValue(int index, boolean value)
          Set the value of the field at the given index as an boolean.
 void setValue(int index, VRMLNodeType child)
          Set the value of the field at the given index as a node.
 
Methods inherited from class org.web3d.vrml.renderer.common.nodes.BaseTextureNode
addTextureListener, fireTextureImageChanged, fireTextureParamsChanged, getCacheString, removeTextureListener
 
Methods inherited from class org.web3d.vrml.renderer.common.nodes.AbstractNode
addNodeListener, allEventsComplete, checkNodeType, checkSecondaryType, checkSecondaryType, clearRemovedLayerIds, fireFieldChanged, getLayerIds, getMetadataObject, getRefCount, getRemovedLayerIds, getSecondaryType, getUserData, getVRMLNodeName, hasFieldChanged, isDEF, isSetupFinished, notifyExternProtoLoaded, removeNodeListener, setDEF, setErrorReporter, setFrameStateManager, setMetadataObject, setUserData, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setVersion, updateRefCount, updateRefs
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.web3d.vrml.nodes.VRMLTextureNodeType
addTextureListener, getCacheString, removeTextureListener
 
Methods inherited from interface org.web3d.vrml.nodes.VRMLNodeType
addNodeListener, clearRemovedLayerIds, getLayerIds, getMetadataObject, getRefCount, getRemovedLayerIds, hasFieldChanged, isSetupFinished, notifyExternProtoLoaded, removeNodeListener, setDEF, setFrameStateManager, setMetadataObject, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, updateRefCount
 
Methods inherited from interface org.web3d.vrml.lang.VRMLNode
getFieldDeclaration, getFieldIndex, getNodeFieldIndices, getNumFields, getPrimaryType, getSecondaryType, getUserData, getVRMLNodeName, isDEF, setErrorReporter, setUserData, setVersion
 
Methods inherited from interface org.web3d.vrml.nodes.FrameStateListener
allEventsComplete
 

Field Detail

FIELD_REPEATS

protected static final int FIELD_REPEATS
Field Index for the common repeatS field

See Also:
Constant Field Values

FIELD_REPEATT

protected static final int FIELD_REPEATT
Field Index for the common repeatT field

See Also:
Constant Field Values

FIELD_TEXTURE_PROPERTIES

protected static final int FIELD_TEXTURE_PROPERTIES
Field Index for the textureProperties field that is available from 3.2 or later specs.

See Also:
Constant Field Values

LAST_TEXTURENODETYPE_INDEX

protected static final int LAST_TEXTURENODETYPE_INDEX
Index of the last common field for all 2D textures

See Also:
Constant Field Values

TEXTURE_PROPS_PROTO_MSG

protected static final java.lang.String TEXTURE_PROPS_PROTO_MSG
Message for when the proto is not a TextureProperties

See Also:
Constant Field Values

TEXTURE_PROPS_NODE_MSG

protected static final java.lang.String TEXTURE_PROPS_NODE_MSG
Message for when the node in setValue() is not a TextureProperty

See Also:
Constant Field Values

TEXPROPS_VERSION_MSG

protected static final java.lang.String TEXPROPS_VERSION_MSG
Message when accessing the texture properties field in a file with the spec version earlier than 3.2.

See Also:
Constant Field Values

vfRepeatS

protected boolean vfRepeatS
field SFBool repeatS TRUE


vfRepeatT

protected boolean vfRepeatT
field SFBool repeatT TRUE


pTextureProperties

protected VRMLProtoInstance pTextureProperties
PROTO version of the textureProperties node


vfTextureProperties

protected VRMLTextureProperties2DNodeType vfTextureProperties
inputOutput SFNode textureProperties main field


implImage

protected NIOBufferImage implImage
The base image for this texture

Constructor Detail

BaseTexture2DNode

public BaseTexture2DNode(java.lang.String name)
Default constructor for the node. The repeat flags are set to TRUE.

Parameters:
name - The name of the type of node
Method Detail

copy

protected void copy(VRMLTexture2DNodeType node)
Set the fields of the grouping node that has the fields set based on the fields of the passed in node. This will not copy any children nodes, only the local fields.

Parameters:
node - The grouping node to copy info from

getTextureType

public int getTextureType()
Get the texture type of this texture. Valid entries are defined in the vrml.lang.TextureConstants.

Specified by:
getTextureType in interface VRMLTextureNodeType

getImage

public NIOBufferImage getImage()
Get the image representation of this texture.

Specified by:
getImage in interface VRMLTexture2DNodeType
Returns:
The image.

getRepeatS

public boolean getRepeatS()
Get the value of field repeatS. The field is not writable. Default value is true.

Specified by:
getRepeatS in interface VRMLTexture2DNodeType
Returns:
The current value of repeatS

getRepeatT

public boolean getRepeatT()
Get the value of field repeatT. The field is not writable. Default value is true.

Specified by:
getRepeatT in interface VRMLTexture2DNodeType
Returns:
The current value of repeatT

getTextureProperties

public VRMLNodeType getTextureProperties()
                                  throws InvalidFieldException
Get node content for the textureProperties field. This field is only available for X3D 3.2 or later.

Specified by:
getTextureProperties in interface VRMLTexture2DNodeType
Returns:
The current field value
Throws:
InvalidFieldException - This field was request in a field with spec version < 3.2

setTextureProperties

public void setTextureProperties(VRMLNodeType props)
                          throws InvalidFieldValueException,
                                 InvalidFieldException
Set node content as replacement for the textureProperties field. This field is only available for X3D 3.2 or later.

Specified by:
setTextureProperties in interface VRMLTexture2DNodeType
Parameters:
props - The new value for geometry. Null will act like delete
Throws:
InvalidFieldValueException - The node does not match the required type.
InvalidFieldException - This field was request in a field with spec version < 3.2

setupFinished

public void setupFinished()
Notification that the construction phase of this node has finished. If the node would like to do any internal processing, such as setting up geometry, then go for it now.

Specified by:
setupFinished in interface VRMLNodeType
Overrides:
setupFinished in class AbstractNode

getFieldValue

public VRMLFieldData getFieldValue(int index)
                            throws InvalidFieldException
Get the value of a field. If the field is a primitive type, it will return a class representing the value. For arrays or nodes it will return the instance directly.

Specified by:
getFieldValue in interface VRMLNodeType
Overrides:
getFieldValue in class AbstractNode
Parameters:
index - The index of the field to change.
Returns:
The class representing the field value
Throws:
InvalidFieldException - The field index is not known

sendRoute

public void sendRoute(double time,
                      int srcIndex,
                      VRMLNodeType destNode,
                      int destIndex)
Send a routed value from this node to the given destination node. The route should use the appropriate setValue() method of the destination node. It should not attempt to cast the node up to a higher level. Routing should also follow the standard rules for the loop breaking and other appropriate rules for the specification.

Specified by:
sendRoute in interface VRMLNodeType
Overrides:
sendRoute in class AbstractNode
Parameters:
time - The time that this route occurred (not necessarily epoch time. Should be treated as a relative value only)
srcIndex - The index of the field in this node that the value should be sent from
destNode - The node reference that we will be sending the value to
destIndex - The index of the field in the destination node that the value should be sent to.

setValue

public void setValue(int index,
                     boolean value)
              throws InvalidFieldException
Set the value of the field at the given index as an boolean. This would be used to set SFBool field types.

Specified by:
setValue in interface VRMLNodeType
Overrides:
setValue in class AbstractNode
Parameters:
index - The index of destination field to set
value - The new value to use for the node
Throws:
InvalidFieldException - The field index is not know

setValue

public void setValue(int index,
                     VRMLNodeType child)
              throws InvalidFieldException,
                     InvalidFieldValueException
Set the value of the field at the given index as a node. This would be used to set SFNode field types.

Specified by:
setValue in interface VRMLNodeType
Overrides:
setValue in class AbstractNode
Parameters:
index - The index of destination field to set
child - The new value to use for the node
Throws:
InvalidFieldValueException - The node does not match the required type.
InvalidFieldException - This field was request in a field with spec version < 3.2

Xj3D 2.0 VRML/X3D Code API

Copyright © 2001 - 2006 Web3D Consortium