Inventor-based implementations of WWWAnchor/WWWInline

Gavin Bell (gavin@krypton.engr.sgi.com)
Tue, 6 Dec 1994 13:40:34 -0800


My Inventor-based, complete-hack implementations of WWWAnchor and WWWInline
are now available at ftp://ftp.sgi.com/sgi/inventor/2.0/WWWNodes.shar

I'm hoping an intrepid Inventor programmer will take them as a starting point
and implement a really smart VRML browser. So please feel free to do
whatever you want with the code.

Here's the README from the share file:

This directory contains prototypes of the VRML WWWInline and WWWAnchor
nodes, written using Inventor.

Warning: this is a hack!

What you need before you start:
- The "www" command-line interface to the web. Get it from:
http://info.cern.ch/hypertext/WWW/LineMode/Status.html
It must be in your $PATH.
- The Inventor run-time (inventor_eoe); specifically, you need the
ivview application.

To run:
setenv LD_LIBRARY_PATH .
wwwview stuff.iv

The stuff.iv file is an Inventor file with some simple shapes in it.
Clicking on the simple shapes (you must get out of viewing mode by
clicking on the arrow icon in the upper-right) takes you to other
scenes; clicking on the objects in the other scenes take you back.

The argument to wwwview is actually an arbitrary URL. And wwwview is
just a shell script that constructs a "starter scene graph" and then
uses the ivview program as the viewer.

The prototype WWWInline and WWWAnchor nodes use the "www" application
to act like a "urlcat"-- "www" writes the contents of the URL to
standard output, and they read it as an Inventor file.

The WWWRoot node is just an implementation artifact-- it allows
"ivview" to get the "replace the root node" behavior of WWWAnchor
without rewriting ivview.

Problems:

-- This program is really parsing Inventor, not VRML. That means that the
files must have the Inventor header line, not the VRML header, and non-VRML
objects that should generate a warning or error (e.g. Inventor's Text3
object) will read in.

-- The version of 'www' I picked up doesn't seem to understand SOCKS,
so I can't tunnel outside the SGI firewall.

-- Because of an Inventor bug and the fact that WWWInline is being
slightly tricky and delay-loading the stuff inside it, files with new
nodes that are not part of standard Inventor and are dynamically
loaded during file reading will cause core dumps. Use only standard
Inventor nodes-- even better, use only standard VRML nodes!

-- ivview isn't an intelligent browser; it does absolutely no URL
caching, and will not work properly for scenes that contain cameras.