Here we have the addition of some nifty nodes! The first one, the WWWAnchor node, allows you to 'attach' a URL to one of your shapes. When the user clicks on the shape, he or she will be 'transported' to that world. You may specify non-.wrl URL's, but be aware that not every VRML browser will send a non-.wrl file to the HTML browser. For example, below you see that we've attached a URL to the wooden sphere in our world. Clicking on the sphere will send you to Planet 9's Virtual San Francisco (a .wrl file). However, if, say, an .html file is attached to the sphere, some VRML browsers will let the HTML browser handle the file. The syntax for the node is fairly straightforward. Below we see that the name field is where the URL goes, map can be either NONE or POINT. If POINT is used, coordinates of the point on the object the user clicks will be added to the URL in the name field. The syntax for the addition is ?X, Y, Z. The WWWInline node allows you to add other .wrl files into your world. Thus, if you see a model on the Internet that you'd like in your world, specify the URL for the file in the name field. Here we've added a LARGE model of the Enterprise (as seen in Star Trek: The Next Generation) behind our shapes.
#VRML V1.0 ascii Separator { PerspectiveCamera { position 0 30 240 orientation 0 0 -1 0 focalDistance 5 heightAngle .785 } #PerspectiveCamera SpotLight { on TRUE intensity .5 color 1 0 0 location 0 0 120 direction 0 0 -1 } #SpotLight Info { string "This is a cool world!!" } #Info Material { diffuseColor 1 0 1 shininess 0.2 transparency 0 } #Material MaterialBinding { value DEFAULT } #MaterialBinding FontStyle { size 15 family TYPEWRITER style NONE } #FontStyle AsciiText { string "This is a cool demo world!" spacing 1 justification CENTER width 0 } #AsciiText Separator { Translation { translation 0 15 -500 } #Translation WWWInline { name "1701d.wrl" } #WWWInline } #Separator DEF Cone1 Separator { Translation { translation 0 30 0 } #Translation Cone { parts ALL bottomRadius 15 height 30 } #Cone } #Cone1 Separator DEF Cube1 Separator { Transform { rotation 0 1 0 .7 } #Transform Translation { translation -45 30 0 } #Translation Cube { width 30 height 30 depth 30 } #Cube } #Cube1 Separator DEF Cylinder1 Separator { Translation { translation 45 30 0 } #Translation Cylinder { parts ALL radius 15 height 30 } #Cylinder } #Cylinder1 Separator DEF Sphere1 Separator { Texture2 { filename "wood4.jpg" } Translation { translation 0 75 0 } #Translation WWWAnchor { name "http://www.planet9.com/worlds/vrsf.wrl" map NONE } #WWWAnchor Sphere { radius 15 }#Sphere } #Sphere1 Separator DEF FaceDiamond Separator { DEF DiamondCoords Coordinate3 { point [ 0 75 25, 12.5 62.5 12.5, 12.5 62.5 37.5, -12.5 62.5 37.5, -12.5 62.5 12.5, 0 50 25, ] } #DiamondCoords Coordinate3 USE DiamondCoords IndexedFaceSet { coordIndex [ 0, 1, 2, -1, 0, 1, 4, -1, 0, 4, 3, -1, 0, 3, 2, -1, 5, 1, 2, -1, 5, 1, 4, -1, 5, 4, 3, -1, 5, 3, 2, -1, ] } #IndexedFaceSet } #FaceDiamond Separator DEF LineDiamond Separator { Translation { translation 0 75 0 } #Translation USE DiamondCoords IndexedLineSet { coordIndex [ 0, 1, 2, -1, 0, 1, 4, -1, 0, 4, 3, -1, 0, 3, 2, -1, 5, 1, 2, -1, 5, 1, 4, -1, 5, 4, 3, -1, 5, 3, 2, -1, ] } #IndexedLineSet } #DiamondLine Separator } #Separator