Pseudo Nodes

This document is part of a collection of VRML2.0 history at http://www.mitra.biz/vrml/vrml2/mw_history.html
Latest version: Mitra <mitra@mitra.biz> about 2nd Dec '95

Its useful for an Applet to be able to query the browser to be able to find out what version it is, and what extensions it supports. This could done by a set of standard nodes with named fields that the browser can read

With the nodes below defined, to read the name of the Browser, the behavior would call

     GetNamedFieldSFString("_Browser.name");
These access a set of pseudo nodes in the browser. The definitions of these need fleshing out, but the following set are offered to start the thinking going.

The "_Browser" node

Provides access to the information about the particular browser being run, its all static.
    DEF _Browser Browser {   
        name ""         # SFString READ name of the product e.g. "Worldview"
        version 0       # SFLong READ   version e.g. 1.0
        langversion 1.0 # SFLong READ   version of VRML supported
        nodeTypes [ ]   # MFString READ nodes supported 
        extensions [ ]  # MFString READ named extension packages supported.
        machine         # SFString READ machine name running on e.g. "PC"
        operatingsystem # SFString READ operating system running e.g. "Windows95"
    }

The "_World" node

Provides access to a collection of information about the running world. Typically these are currently in named info nodes, but these are likely to end up in something resembling this node anyway. This node's contents only change when a new world is loaded, or something writes to the writable nodes.
    DEF _World WorldInfo {
        environment     # SFNode READ pointing to current environment node
        navigationHints # SFNode READ pointing to current NavigationHints 
        cameras         # SFNode READ pointing to list of cameras
        title           # SFString READWRITE contents of the title bar
        sceneInfo       # SFString READWRITE giving the sceneinfo for the current world
        worldURL        # SFString READ URL or world running
        enteredWorld    # SFTime READ time started viewing this world
    }

The "_Self" node

Provides access to information about yourself, i.e. your camera position, this changes dynamically.
    DEF _Self SelfInfo {
         navigationMode  # SFEnum READWRITE     current navigation mode 
                         # (which might override that specified in navigationHints)
        translationSpeed # SFLong READWRITE     translation speed
        position         # SFLong READWRITE     position of the camera
        orientation      # SFRotation READWRITE orientation of the camera
        avatar           # SFNode READWRITE (optional) your avatar
        neighbours       # MFNode READWRITE (optional) visible neighbours' avatars
        frameRate        # SFLong READ number of frames per second
        picked           # SFBool READ          true when mouse button down
  }