Class OGLShape
java.lang.Object
org.web3d.vrml.renderer.common.nodes.AbstractNode
org.web3d.vrml.renderer.common.nodes.shape.BaseShape
org.web3d.vrml.renderer.ogl.nodes.shape.OGLShape
- All Implemented Interfaces:
org.j3d.aviatrix3d.NodeUpdateListener
,VRMLNode
,FrameStateListener
,LocalColorsListener
,MaterialColorListener
,VRMLBoundedNodeType
,VRMLChildNodeType
,VRMLNodeType
,VRMLShapeNodeType
,VRMLWorldRootChildNodeType
,OGLPickableTargetNodeType
,OGLVRMLNode
public class OGLShape
extends BaseShape
implements OGLVRMLNode, OGLPickableTargetNodeType, org.j3d.aviatrix3d.NodeUpdateListener, MaterialColorListener
OGL implementation of a shape node.
- Version:
- $Revision: 1.29 $
- Author:
- Justin Couch
-
Field Summary
Fields inherited from class org.web3d.vrml.renderer.common.nodes.shape.BaseShape
APPEARANCE_NODE_MSG, APPEARANCE_PROTO_MSG, DEFAULT_FORCE_LIGHTING, FIELD_APPEARANCE, FIELD_GEOMETRY, FORCE_LIGHTING_PROP, forceLighting, GEOMETRY_NODE_MSG, GEOMETRY_PROTO_MSG, LAST_SHAPE_INDEX, NUM_FIELDS, pAppearance, pGeometry, shareCount, vfAppearance, vfBboxCenter, vfBboxDisplay, vfBboxSize, vfCastShadow, vfGeometry, vfVisible
Fields inherited from class org.web3d.vrml.renderer.common.nodes.AbstractNode
errorReporter, FIELD_METADATA, fieldLocalData, hasChanged, inSetup, isDEF, isStatic, LAST_NODE_INDEX, layerIds, nodeName, pMetadata, refCounts, removedLayerIds, stateManager, STATIC_SCENE_GRAPH, vfMetadata, vrmlMajorVersion, vrmlMinorVersion
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Notification that the rendering of the event model is complete and that rendering is about to begin.void
emissiveColorChanged
(float[] color) The emissiveColor value has changed.org.j3d.aviatrix3d.picking.PickableObject
Fetch the object that this target will pick against.org.j3d.aviatrix3d.SceneGraphObject
Get the OpenGL scene graph object representation of this node.void
notifyExternProtoLoaded
(int index, VRMLNodeType node) Notify a node that an ExternProto has resolved.void
setAppearance
(VRMLNodeType newAppearance) Set node content as replacement for the appearance field.void
setGeometry
(VRMLNodeType newGeometry) Set node content as replacement for geometry field.void
Set the flag convertor.void
Notification that the construction phase of this node has finished.void
Notification that its safe to update the node now with any operations that could potentially effect the node's bounds.void
Notification that its safe to update the node now with any operations that only change the node's properties, but do not change the bounds.Methods inherited from class org.web3d.vrml.renderer.common.nodes.shape.BaseShape
getAppearance, getBboxCenter, getBboxDisplay, getBboxSize, getCastShadow, getFieldDeclaration, getFieldIndex, getFieldValue, getGeometry, getNodeFieldIndices, getNumFields, getPrimaryType, getSecondaryType, getVisible, isShared, localColorsChanged, sendRoute, setBboxCenter, setBboxDisplay, setBboxSize, setCastShadow, setShared, setValue, setValue, setValue, setVisible
Methods inherited from class org.web3d.vrml.renderer.common.nodes.AbstractNode
addNodeListener, checkNodeType, checkSecondaryType, checkSecondaryType, clearRemovedLayerIds, fireFieldChanged, getLayerIds, getMetadataObject, getRefCount, getRemovedLayerIds, getUserData, getVRMLNodeName, hasFieldChanged, isDEF, isSetupFinished, removeNodeListener, setDEF, setErrorReporter, setFrameStateManager, setMetadataObject, setUserData, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setVersion, throwInitOnlyWriteException, throwInputOnlyWriteException, throwInvalidNodeException, throwInvalidProtoException, throwOutputOnlyWriteException, 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.lang.VRMLNode
getFieldDeclaration, getFieldIndex, getNodeFieldIndices, getNumFields, getPrimaryType, getSecondaryType, getUserData, getVRMLNodeName, isDEF, setErrorReporter, setUserData, setVersion
Methods inherited from interface org.web3d.vrml.nodes.VRMLNodeType
addNodeListener, clearRemovedLayerIds, getFieldValue, getLayerIds, getMetadataObject, getRefCount, getRemovedLayerIds, hasFieldChanged, isSetupFinished, removeNodeListener, sendRoute, setDEF, setFrameStateManager, setMetadataObject, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, updateRefCount
-
Constructor Details
-
OGLShape
public OGLShape()Construct a new default shape node implementation. -
OGLShape
Construct a new instance of this node based on the details from the given node. If the node is not a Shape node, an exception will be thrown.- Parameters:
node
- The node to copy- Throws:
IllegalArgumentException
- Incorrect node type
-
-
Method Details
-
setTypeConvertor
Set the flag convertor. Ignored for this node.- Specified by:
setTypeConvertor
in interfaceOGLPickableTargetNodeType
- Parameters:
conv
- The convertor instance to use, or null
-
getPickableObject
public org.j3d.aviatrix3d.picking.PickableObject getPickableObject()Fetch the object that this target will pick against.- Specified by:
getPickableObject
in interfaceOGLPickableTargetNodeType
- Returns:
- The valid branchgroup to use
-
updateNodeBoundsChanges
Notification that its safe to update the node now with any operations that could potentially effect the node's bounds.- Specified by:
updateNodeBoundsChanges
in interfaceorg.j3d.aviatrix3d.NodeUpdateListener
- Parameters:
src
- The node or Node Component that is to be updated.
-
updateNodeDataChanges
Notification that its safe to update the node now with any operations that only change the node's properties, but do not change the bounds.- Specified by:
updateNodeDataChanges
in interfaceorg.j3d.aviatrix3d.NodeUpdateListener
- Parameters:
src
- The node or Node Component that is to be updated.
-
emissiveColorChanged
public void emissiveColorChanged(float[] color) The emissiveColor value has changed.- Specified by:
emissiveColorChanged
in interfaceMaterialColorListener
- Parameters:
color
- The new color value to use
-
allEventsComplete
public void allEventsComplete()Notification that the rendering of the event model is complete and that rendering is about to begin. Used to update the transformation matrix only once per frame.- Specified by:
allEventsComplete
in interfaceFrameStateListener
- Overrides:
allEventsComplete
in classAbstractNode
-
setAppearance
Set node content as replacement for the appearance field.- Specified by:
setAppearance
in interfaceVRMLShapeNodeType
- Overrides:
setAppearance
in classBaseShape
- Parameters:
newAppearance
- The new appearance. null will act like delete- Throws:
InvalidFieldValueException
- The node does not match the required type.
-
setGeometry
Set node content as replacement for geometry field.- Specified by:
setGeometry
in interfaceVRMLShapeNodeType
- Overrides:
setGeometry
in classBaseShape
- Parameters:
newGeometry
- The new value for geometry. null will act like delete- Throws:
InvalidFieldValueException
- The node does not match the required type.
-
notifyExternProtoLoaded
Description copied from interface:VRMLNodeType
Notify a node that an ExternProto has resolved. This will verify the objects type and add it to the render sceneGraph.- Specified by:
notifyExternProtoLoaded
in interfaceVRMLNodeType
- Overrides:
notifyExternProtoLoaded
in classAbstractNode
- Parameters:
index
- The field indexnode
- The node resolved- Throws:
InvalidFieldValueException
- If the proto contains he wrong type
-
getSceneGraphObject
public org.j3d.aviatrix3d.SceneGraphObject getSceneGraphObject()Get the OpenGL scene graph object representation of this node. This will need to be cast to the appropriate parent type when being used. Default implementation returns null.- Specified by:
getSceneGraphObject
in interfaceOGLVRMLNode
- Returns:
- The OpenGL representation.
-
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 interfaceVRMLNodeType
- Overrides:
setupFinished
in classBaseShape
-