Class JavascriptBrowser
The current implementation ignores any parameter values provided by the world when requesting a loadURL.
The standard Java interface does not allow us to print output. The way that
all VRML vendors seem to have gotten around this is to add
println
methods to the Browser object. We've done this as
well. The current implementation just calls System.out directly, but a
later revision will probably use a callback for a listener provided
instance to send the output to. In addition, this class has to be made
public so that Rhino can access the various print methods. Note that the
constructor is not private because you should never directly be creating
instances of this class.
- Version:
- $Revision: 1.8 $
- Author:
- Justin Couch
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Add a route between two nodes, from an eventOut to an eventIn.createVrmlFromString
(String vrmlSyntax) Parse the given string and turn this into a list of VRML nodes.void
createVrmlFromURL
(MFString url, SFNode 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
(SFNode fromNode, String fromEventOut, SFNode toNode, String toEventIn) Delete a route between two nodes.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.Get the description string currently used by the world.getName()
Get the name of the browser.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.parseVrmlString
(String vrmlSyntax) Convenience version of createVrmlFromString so that the caller can be returned the raw nodes rather than the JavascriptScript versions.void
Print an object instance to the output.void
Print a string to the output.void
Print an object instance to the output.void
Print a string to the output.void
replaceWorld
(MFNode nodes) Replace the current world with the given nodes.void
setDescription
(String desc) Set the description of the current world.void
setErrorReporter
(org.j3d.util.ErrorReporter reporter) Register an error reporter with the engine so that any errors generated by the script code can be reported in a nice, pretty fashion.
-
Method Details
-
getDescription
Get the description string currently used by the world. Returns null if not set or supported.- Returns:
- The current description string or null
-
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.
-
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
-
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
-
getCurrentSpeed
public float 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
-
getCurrentFrameRate
public float getCurrentFrameRate()Get the current frame rate of the browser in frames per second.- Returns:
- The current frame rate or 0.0 if not supported
-
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.
- 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
-
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:
vrmlSyntax
- The string containing VRML string syntax- Returns:
- A list of the top level nodes in VRML representation as defined in the parameter
-
createVrmlFromURL
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.
-
addRoute
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 routefromEventOut
- The eventOut source of the routetoNode
- The destination node of the routetoEventIn
- The eventIn destination of the route
-
deleteRoute
Delete a route between two nodes. If the route does not exist, the method silently exits.- Parameters:
fromNode
- The source node for the routefromEventOut
- The eventOut source of the routetoNode
- The destination node of the routetoEventIn
- The eventIn destination of the route
-
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.parameters
- The list of parameters to accompany the load call as defined in the Anchor node specification of VRML97
-
println
-
println
Print an object instance to the output.- Parameters:
obj
- The object to print
-
print
-
print
Print an object instance to the output.- Parameters:
obj
- The object to print
-
setErrorReporter
public void setErrorReporter(org.j3d.util.ErrorReporter reporter) Register an error reporter with the engine so that any errors generated by the script code can be reported in a nice, pretty fashion. Setting a value of null will clear the currently set reporter. If one is already set, the new value replaces the old. Also changes the ErrorReporter used by the CommonBrowser instance.- Parameters:
reporter
- The instance to use or null
-
parseVrmlString
Convenience version of createVrmlFromString so that the caller can be returned the raw nodes rather than the JavascriptScript versions.- Parameters:
vrmlSyntax
-- Returns:
- Throws:
VRMLParseException
VRMLException
-