<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
<X3D profile='Immersive'  version='3.3 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation =' https://www.web3d.org/specifications/x3d-3.3.xsd ' >
<head>
<meta name='titlecontent='Query.x3d'/>
<meta name='descriptioncontent='Query browser state: this world uses the "Browser" object in a script to query information about the VRML browser. That information is sent out as an MFString event that is routed into a Text node string input. The effect is to display a text message showing the Browser information. To give the browser something to do to make it report interesting frame rates, an animating object is displayed beside the text information.'/>
<meta name='creatorcontent='David R. Nadeau'/>
<meta name='translatorcontent='Don Brutzman'/>
<meta name='createdcontent='1 July 1998'/>
<meta name='translatedcontent='2 February 2014'/>
<meta name='modifiedcontent='20 October 2019'/>
<meta name='referencecontent='originals/query.wrl'/>
<meta name='referencecontent=' http://www.siggraph.org/s98 '/>
<meta name='referencecontent=' http://www.siggraph.org/s98/conference/courses/18.html '/>
<meta name='referencecontent=' http://www.sdsc.edu/~moreland/courses/Siggraph98/vrml97/slides/mt0465.htm '/>
<meta name='referencecontent=' http://www.sdsc.edu/~moreland/courses/Siggraph98/vrml97/vrml97.htm '/>
<meta name='referencecontent=' https://www.web3d.org/x3d/content/examples/X3dResources.html '/>
<meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Siggraph98Course/Query.x3d '/>
<meta name='generatorcontent='Vrml97ToX3dNist, http://ovrt.nist.gov/v2_x3d.html'/>
<meta name='generatorcontent='X3D-Edit, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../license.html'/>
</head>
<!--

to top <!-- Event Graph ROUTE Table shows event connections -->
 
<!-- Index for DEF nodes: Introspect, Message, Timer

Index for Viewpoint node: Viewpoint_1
-->
<Scene>
<WorldInfo info='"Copyright (c) 1998, David R. Nadeau"title='Query browser state'/>
<Viewpoint description='Entry view'/>
<NavigationInfo/>
<Transform scale='0.75 0.75 0.75translation='-4.0 0.0 0.0'> </Transform>
<Transform translation='-1.5 1.25 0.0'>
<Shape>
<!-- ROUTE information for Message node:  [from Introspect.message to set_string ] -->
<Text DEF='Messagestring='""'>
<FontStyle family='"TYPEWRITER"size='0.65style='BOLD'/>
</Text>
</Shape>
</Transform>
<!-- ROUTE information for Timer node:  [from cycleTime to Introspect.trigger ] -->
<TimeSensor DEF='TimercycleInterval='4.0loop='true'/>

<!-- ROUTE information for Introspect node:  [from Timer.cycleTime to trigger ] [from message to Message.set_string ] -->
<Script DEF='Introspect'>
<field name='triggertype='SFTimeaccessType='inputOnly'/>
<field name='messagetype='MFStringaccessType='outputOnly'/>
<![CDATA[
      
ecmascript:
		function update( ) {
			message.length = 5;
			message[0] = 'Browser: ' + Browser.getName( );
			message[1] = 'Version: ' + Browser.getVersion( );
			message[2] = 'URL:     ' + Browser.getWorldURL( );
			message[3] = 'Speed:   ' + Browser.getCurrentSpeed( );
			message[4] = 'Frames:  ' + Browser.getCurrentFrameRate( );
		}
		function initialize( ) {
			update( );
		}
		function trigger( t, ts ) {
			update( );
		}

    
]]>
</Script>
< ROUTE  fromNode=' Timer' fromField='cycleTime' toNode=' Introspect' toField='trigger'/>
< ROUTE  fromNode=' Introspect' fromField='message' toNode=' Message' toField='set_string'/>
</Scene>
</X3D>
<!--

to top <!-- Event Graph ROUTE Table shows event connections -->
 
<!-- Index for DEF nodes: Introspect, Message, Timer

Index for Viewpoint node: Viewpoint_1
-->

Event Graph ROUTE Table entries with 2 ROUTE connections total, showing X3D event-model relationships for this scene.

Each row shows an event cascade that may occur during a single timestamp interval between frame renderings, as part of the X3D execution model.

Timer
TimeSensor
cycleTime
SFTime

ROUTE
event to
(1)
Introspect
Script
trigger
SFTime

 
 
then
Introspect
Script
message
MFString

ROUTE
event to
(2)
Message
Text
set_string
MFString



-->

<!-- Online at
https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Siggraph98Course/QueryIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Siggraph98Course/Query.x3d -->

<!-- Color legend: X3D terminology <X3dNode DEF='idName' field='value'/> matches XML terminology <XmlElement DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
-->

to top <!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->