#VRML V2.0 utf8 NavigationInfo { type "EXAMINE" } Viewpoint { position 0 0 4 } DEF WHERE ProximitySensor { size 1000 1000 1000 } Shape { appearance Appearance { material DEF MAT Material { diffuseColor 0 0 1 } } geometry Sphere {} } DEF SCRIPT Script { eventIn SFVec3f position eventOut SFColor color url "vrmlscript: // clamp a value between two numbers function clamp(v, low, high) { if(v<low) return low; else if(v>high) return high; else return v; } // position into color function position(val) { r = clamp((val.x+2.5) / 5.0, 0, 1); g = clamp((val.y+2.5) / 5.0, 0, 1); b = clamp((val.z+2.5) / 5.0, 0, 1); color = new SFColor(r, g, b); } " } ROUTE WHERE.position_changed TO SCRIPT.position ROUTE SCRIPT.color TO MAT.diffuseColor
mrl