#VRML V2.0 utf8 NavigationInfo { type [ "EXAMINE" "ANY" ] } Viewpoint { position 0 20 30 orientation 1 0 0 -.8 } Transform { translation -10 0 0 children [ DEF TOUCH TouchSensor {} Shape { appearance Appearance { material Material {} } geometry DEF GRID ElevationGrid { solid FALSE xDimension 20 zDimension 20 height [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] } } ] } DEF SCRIPT Script { eventIn SFVec3f touchPoint eventIn SFBool isActive eventIn SFBool utouch eventIn SFBool dtouch eventOut SFColor ucolor eventOut SFColor dcolor eventOut MFFloat newHeight field SFBool touching FALSE field SFBool up TRUE field MFFloat height [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] url "vrmlscript: function touchPoint(val) { if(touching) { i = Math.round(val.x); j = Math.round(val.z); change = (up)? .1 : -.1; height[j*20+i] += change; newHeight = height; } } function isActive(val) { touching = val; } function utouch(val) { up = TRUE; ucolor = new SFColor(1, 1, 0); dcolor = new SFColor(.2, .2, .2); } function dtouch(val) { up = FALSE; ucolor = new SFColor(.2, .2, .2); dcolor = new SFColor(1, 1, 0); } " } ROUTE TOUCH.hitPoint_changed TO SCRIPT.touchPoint ROUTE TOUCH.isActive TO SCRIPT.isActive ROUTE SCRIPT.newHeight TO GRID.set_height # choose up or down in hud DEF NEAR ProximitySensor { size 1000 1000 1000 } DEF TT Transform { translation 0 20 30 rotation 1 0 0 -.8 children Transform { translation -.1 .1 -.3 scale .02 .02 .02 children [ Group { children [ DEF UTOUCH TouchSensor {} Shape { appearance Appearance { material DEF UMAT Material { diffuseColor 1 1 0 } } geometry Text { string "UP" fontStyle DEF FS FontStyle { family "SANS" style "BOLD" } } } ] } Group { children [ DEF DTOUCH TouchSensor {} Shape { appearance Appearance { material DEF DMAT Material { diffuseColor .2 .2 .2 } } geometry Text { string [ "" "DOWN" ] fontStyle USE FS } } ] } ] } } ROUTE NEAR.position_changed TO TT.translation ROUTE NEAR.orientation_changed TO TT.rotation ROUTE UTOUCH.isActive TO SCRIPT.utouch ROUTE DTOUCH.isActive TO SCRIPT.dtouch ROUTE SCRIPT.ucolor TO UMAT.diffuseColor ROUTE SCRIPT.dcolor TO DMAT.diffuseColor
mrl