Interface Browser
- All Known Implementing Classes:
EAIBrowser
,NetworkBrowserClient
A number of the methods in this application can take strings representing URLs. Relative URL strings contained in URL fields of nodes or these method arguments are interpreted as follows:
Relative URLs are treated as per clause B.3.5 of the EAI Java Bindings
- Version:
- 1.1 25 April 1998
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Add a listener for browser events.void
Add a route between two nodes, from an eventOut to an eventIn.void
Lock the output from the external interface to the browser as the code is about to begin a series of updates.Node[]
createVrmlFromString
(String vrmlString) Parse the given string and turn this into a list of VRML nodes.void
createVrmlFromURL
(String[] url, Node node, String eventIn) Create and load VRML from the given URL and place the returned values as nodes into the given VRML node in the scene.void
deleteRoute
(Node fromNode, String eventOut, Node toNode, String eventIn) Delete a route between two nodes.void
dispose()
Dispose the resources that are used by this instance.void
Release the output of events from the external interface into the VRML browser.float
Get the current frame rate of the browser in frames per second.float
Get the current velocity of the bound viewpoint in meters per second.getName()
Get the name of the browser.Get a DEF node by name.Get the version of the browser.Get the fully qualified URL of the currently loaded world.void
Load the URL as the new root of the scene.void
Remove a listener for browser events.void
replaceWorld
(Node[] nodes) Replace the current world with the given nodes.void
setDescription
(String desc) Set the description of the current world.
-
Method Details
-
getName
Get the name of the browser. The name is an implementation specific string representing the browser.- Returns:
- The name of the browser or null if not supported
- Throws:
InvalidBrowserException
- The dispose method has been called on this browser reference.ConnectionException
- An error occurred in the connection to the browser.
-
getVersion
Get the version of the browser. Returns an implementation specific representation of the version number.- Returns:
- The version of the browser or null if not supported
- Throws:
InvalidBrowserException
- The dispose method has been called on this browser reference.ConnectionException
- An error occurred in the connection to the browser.
-
getCurrentSpeed
Get the current velocity of the bound viewpoint in meters per second. The velocity is defined in terms of the world values, not the local coordinate system of the viewpoint.- Returns:
- The velocity in m/s or 0.0 if not supported
- Throws:
InvalidBrowserException
- The dispose method has been called on this browser reference.ConnectionException
- An error occurred in the connection to the browser.
-
getCurrentFrameRate
Get the current frame rate of the browser in frames per second.- Returns:
- The current frame rate or 0.0 if not supported
- Throws:
InvalidBrowserException
- The dispose method has been called on this browser reference.ConnectionException
- An error occurred in the connection to the browser.
-
getWorldURL
Get the fully qualified URL of the currently loaded world. This returns the entire URL including any possible arguments that might be associated with a CGI call or similar mechanism. If the initial world is replaced withloadURL
then the string will reflect the new URL. IfreplaceWorld
is called then the URL still represents the original world.- Returns:
- A string of the URL or null if not supported.
- Throws:
InvalidBrowserException
- The dispose method has been called on this browser reference.URLUnavailableException
- The URL is not available because a world has not been loadedConnectionException
- An error occurred in the connection to the browser.- See Also:
-
replaceWorld
Replace the current world with the given nodes. Replaces the entire contents of the VRML world with the new nodes. Any node references that belonged to the previous world are still valid but no longer form part of the scene graph (unless it is these nodes passed to this method). The URL of the world still represents the just unloaded world.Calling this method causes a SHUTDOWN event followed by an INITIALIZED event to be generated.
- Parameters:
nodes
- The list of nodes to use as the new root of the world- Throws:
IllegalArgumentException
- if the nodes are not valid VRML nodesInvalidBrowserException
- The dispose method has been called on this browser reference.ConnectionException
- An error occurred in the connection to the browser.
-
loadURL
Load the URL as the new root of the scene. Replaces all the current scene graph with the new world. A non-blocking call that will change the contents at some time in the future.Generates an immediate SHUTDOWN event and then when the new contents are ready to be loaded, sends an INITIALIZED event.
- Parameters:
url
- The list of URLs in decreasing order of preference as defined in the VRML97 specification.parameter
- The list of parameters to accompany the load call as defined in the Anchor node specification of VRML97- Throws:
InvalidBrowserException
- The dispose method has been called on this browser reference.InvalidURLException
- All of the URLs passed to this method are bogus and cannot be translated to usable valuesConnectionException
- An error occurred in the connection to the browser.
-
setDescription
Set the description of the current world. If the world is operating as part of a web browser then it shall attempt to set the title of the window. If the browser is from a component then the result is dependent on the implementation- Parameters:
desc
- The description string to set.- Throws:
InvalidBrowserException
- The dispose method has been called on this browser reference.ConnectionException
- An error occurred in the connection to the browser.
-
createVrmlFromString
Parse the given string and turn this into a list of VRML nodes. Method is a blocking call that won't return until all of the top level nodes defined in the string have been returned.At the point that this method returns, external files such as textures, sounds and inlines may not have been loaded.
The string may contain all legal VRML syntax. The VRML header line is not required to be present in the string.
- Parameters:
vrmlString
- The string containing VRML string syntax- Returns:
- A list of the top level nodes in VRML representation as defined in the parameter
- Throws:
InvalidVrmlException
- If the string does not contain legal VRML syntax or no node instantiationsInvalidBrowserException
- The dispose method has been called on this browser reference.ConnectionException
- An error occurred in the connection to the browser.
-
createVrmlFromURL
void createVrmlFromURL(String[] url, Node node, String eventIn) throws InvalidBrowserException, InvalidNodeException, InvalidURLException Create and load VRML from the given URL and place the returned values as nodes into the given VRML node in the scene. The difference between this and loadURL is that this method does not replace the entire scene with the contents from the URL. Instead, it places the return values as events in the nominated node and MFNode eventIn.- Parameters:
url
- The list of URLs in decreasing order of preference as defined in the VRML97 specification.node
- The destination node for the VRML code to be sent to.eventIn
- The name of the MFNode eventIn to send the nodes to.- Throws:
InvalidNodeException
- The nominated destination node has been disposed ofInvalidBrowserException
- The dispose method has been called on this browser reference.InvalidURLException
- All of the URLs passed to this method are bogus and cannot be translated to usable valuesConnectionException
- An error occurred in the connection to the browser.
-
getNode
Node getNode(String name) throws InvalidNodeException, InvalidBrowserException, URLUnavailableException Get a DEF node by name. Nodes given DEF names in the root scene graph are available to be retrieved by this method. DEFed nodes in Inlines, createVrmlFromString and createVrmlFromURL are not available.- Parameters:
name
- The name of the DEF node to retrieve- Returns:
- A reference to that node
- Throws:
InvalidNodeException
- The named node does not exist or is not accessible.InvalidBrowserException
- The dispose method has been called on this browser reference.URLUnavailableException
- The URL is not available because a world has not been loadedConnectionException
- An error occurred in the connection to the browser.
-
addRoute
void addRoute(Node fromNode, String eventOut, Node toNode, String eventIn) throws InvalidBrowserException, InvalidEventOutException, InvalidEventInException, InvalidNodeException Add a route between two nodes, from an eventOut to an eventIn. If the ROUTE already exists, this method silently exits. It does not attempt to add a second parallel ROUTE.- Parameters:
fromNode
- The source node for the routeeventOut
- The eventOut source of the routetoNode
- The destination node of the routeeventIn
- The eventIn destination of the route- Throws:
InvalidEventOutException
- if the named eventOut does not existInvalidEventInException
- if the named eventIn does not exist.InvalidNodeException
- The nominated destination or source node has been disposed ofInvalidBrowserException
- The dispose method has been called on this browser reference.ConnectionException
- An error occurred in the connection to the browser.
-
deleteRoute
void deleteRoute(Node fromNode, String eventOut, Node toNode, String eventIn) throws InvalidBrowserException, InvalidEventOutException, InvalidEventInException, InvalidNodeException Delete a route between two nodes. If the route does not exist, the method silently exits.- Parameters:
fromNode
- The source node for the routeeventOut
- The eventOut source of the routetoNode
- The destination node of the routeeventIn
- The eventIn destination of the route- Throws:
InvalidEventOutException
- if the named eventOut does not existInvalidEventInException
- if the named eventIn does not exist.InvalidNodeException
- The nominated destination or source node has been disposed ofInvalidBrowserException
- The dispose method has been called on this browser reference.ConnectionException
- An error occurred in the connection to the browser.
-
beginUpdate
Lock the output from the external interface to the browser as the code is about to begin a series of updates. No events will be passed to the VRML world. They will be buffered pending release due to a subsequent call to endUpdate.This call is a nesting call which means subsequent calls to beginUpdate are kept on a stack. No events will be released to the VRML browser until as many endUpdates have been called as beginUpdate.
- Throws:
InvalidBrowserException
- The dispose method has been called on this browser reference.ConnectionException
- An error occurred in the connection to the browser.
-
endUpdate
Release the output of events from the external interface into the VRML browser. All events posted to this point from the last time that beginUpdate was called are released into the VRML browser for processing at the next available opportunity.This call is a nesting call which means subsequent calls to beginUpdate are kept on a stack. No events will be released to the VRML browser until as many endUpdates have been called as beginUpdate.
If no beginUpdate has been called before calling this method, it has no effect.
- Throws:
InvalidBrowserException
- The dispose method has been called on this browser reference.ConnectionException
- An error occurred in the connection to the browser.
-
addBrowserListener
Add a listener for browser events. Any changes in the browser will be sent to this listener. The order of calling listeners is not guaranteed. Checking is performed on whether the nominated listener is already registered to ensure that multiple registration cannot take place. Therefore it is possible to multiply register the one class instance while only receiving one event.- Parameters:
l
- The listener to add.- Throws:
NullPointerException
- If the provided listener reference is nullInvalidBrowserException
- The dispose method has been called on this browser reference.ConnectionException
- An error occurred in the connection to the browser.
-
removeBrowserListener
Remove a listener for browser events. After calling this method, the listener will no longer receive events from this browser instance. If the listener passed as an argument is not currently registered, the method will silently exit.- Parameters:
l
- The listener to remove- Throws:
NullPointerException
- If the provided listener reference is nullInvalidBrowserException
- The dispose method has been called on this browser reference.ConnectionException
- An error occurred in the connection to the browser.
-
dispose
void dispose()Dispose the resources that are used by this instance. Should be called just prior to leaving the application.
-