#VRML V2.0 utf8 Background { frontUrl "GC_f.jpg" backUrl "GC_b.jpg" leftUrl "GC_l.jpg" rightUrl "GC_r.jpg" topUrl "GC_u.jpg" bottomUrl "GC_d.jpg" } DEF view1 Viewpoint { position 0 0 20 fieldOfView 0.7 description "view1" } Group { children [ DEF HudZoomIn Collision { collide FALSE children [ DEF HudZoomInProx ProximitySensor { center 0 1.8 30 size 200 200 200 } DEF HudZoomInXform Transform { children [ DEF InXform Transform { translation -0.03 -0.5 -1.5 children [ Shape { appearance Appearance { texture ImageTexture { url "plus.png" } material Material { diffuseColor .8 .8 0 } } geometry Box { size .06 .06 .0001} } DEF ZoomIn TouchSensor { } ] } ] } ] } DEF HudZoomOut Collision { collide FALSE children [ DEF HudZoomOutProx ProximitySensor { center 0 1.8 30 size 200 200 200 } DEF HudZoomOutXform Transform { children [ DEF OutXform Transform { translation 0.03 -0.5 -1.5 children [ Shape { appearance Appearance { texture ImageTexture { url "minus.png" } material Material { diffuseColor .8 .8 0 } } geometry Box { size .06 .06 .0001} } DEF ZoomOut TouchSensor { } ] } ] } ] } ] # end of Group children } DEF zoomScript Script { eventIn SFBool zoomIn eventIn SFBool zoomOut eventOut SFFloat FOV eventOut SFVec3f transInZoom eventOut SFVec3f transOutZoom field SFFloat CFOV 0.7 field SFFloat z 1.0 url ["javascript: function zoomIn( clicked ) { if( clicked ) { CFOV = 0.95 * CFOV; FOV = CFOV; z = 0.5 / Math.tan( 0.32175 * CFOV/0.7 ); transInZoom.x = -0.03; transInZoom.y = -0.5; transInZoom.z = -z; transOutZoom.x = 0.03; transOutZoom.y = -0.5; transOutZoom.z = -z; } } function zoomOut( clicked ) { if( clicked ) { CFOV = 1.05 * CFOV; FOV = CFOV; z = 0.5 / Math.tan( 0.32175 * CFOV/0.7 ); transInZoom.x = -0.03; transInZoom.y = -0.5; transInZoom.z = -z; transOutZoom.x = 0.03; transOutZoom.y = -0.5; transOutZoom.z = -z; } } "] } ROUTE ZoomIn.isActive TO zoomScript.zoomIn ROUTE ZoomOut.isActive TO zoomScript.zoomOut ROUTE zoomScript.FOV TO view1.fieldOfView ROUTE HudZoomInProx.position_changed TO HudZoomInProx.center ROUTE HudZoomInProx.orientation_changed TO HudZoomInXform.rotation ROUTE HudZoomInProx.position_changed TO HudZoomInXform.translation ROUTE zoomScript.transInZoom TO InXform.translation ROUTE HudZoomOutProx.position_changed TO HudZoomOutProx.center ROUTE HudZoomOutProx.orientation_changed TO HudZoomOutXform.rotation ROUTE HudZoomOutProx.position_changed TO HudZoomOutXform.translation ROUTE zoomScript.transOutZoom TO OutXform.translation