#VRML V2.0 utf8 ## ##@ layer EXTERNPROTO Transform2D [ eventIn MFNode addChildren eventIn MFNode removeChildren exposedField MFNode children exposedField SFVec2f center exposedField SFFloat rotationAngle exposedField SFVec2f scale exposedField SFFloat scaleOrientation exposedField SFVec2f translation ] [ "urn:inet:bitmanagement.de:node:Transform2D", "http://www.bitmanagement.de/vrml/protos/nodes.wrl#Transform2D", "nodes.wrl#Transform2D" ] EXTERNPROTO Material2D [ exposedField SFColor emissiveColor exposedField SFBool filled exposedField SFNode lineProps exposedField SFFloat transparency ] [ "urn:inet:bitmanagement.de:node:Material2D", "http://www.bitmanagement.de/vrml/protos/nodes.wrl#Material2D", "nodes.wrl#Material2D" ] EXTERNPROTO Layer2D[ eventIn MFNode addChildren eventIn MFNode removeChildren exposedField MFNode children exposedField SFVec2f translation exposedField SFVec2f size exposedField SFNode background exposedField SFNode viewport ] ["urn:inet:bitmanagement.de:node:Layer2D", "http://www.bitmanagement.de/vrml/protos/nodes.wrl#Layer2D", "nodes.wrl#Layer2D" ] EXTERNPROTO Background2D [ eventIn SFBool set_bind exposedField SFColor backColor exposedField MFString url eventOut SFBool isBound ] ["urn:inet:bitmanagement.de:node:Background2D", "http://www.bitmanagement.de/vrml/protos/nodes.wrl#Background2D", "nodes.wrl#Layer2D" ] EXTERNPROTO Rectangle [ field SFVec2f size #2 2 (0,inf) ] ["urn:inet:bitmanagement.de:node:Rectangle", "http://www.bitmanagement.de/vrml/protos/nodes.wrl#Rectangle", "nodes.wrl#Rectangle" ] PROTO TEXT [ exposedField MFString string [] exposedField SFVec2f translation 0 0 exposedField SFFloat transparency 0 field MFString fontfamily ["SANS SERIF"] field SFString fontstyle "PLAIN USE_TEXTURE" field SFFloat fontsize 1.0 field SFColor color .5 .5 .5 ] { Transform2D { translation IS translation children [ Shape { geometry Text { string IS string fontStyle FontStyle { family IS fontfamily size IS fontsize style IS fontstyle } } appearance Appearance { material Material {emissiveColor IS color diffuseColor 0 0 0 transparency IS transparency} } } ] } } PROTO ClickBox [ exposedField SFVec2f translation 0 0 exposedField SFVec2f font_translation 0 0 exposedField SFVec2f size 0 0 exposedField MFString string [] exposedField MFString url [] exposedField SFBool filled FALSE field SFFloat fontsize 1.0 field SFVec2f rectangle_size 0 0 eventOut SFInt32 choice_changed eventOut SFTime touchTime_changed eventOut SFBool touchSwitch ] { Layer2D { size IS size translation IS translation background NULL #Background2D {backColor 1 1 1} children [ Transform2D { children [ DEF Box Shape { geometry Rectangle { size IS rectangle_size } appearance Appearance { material DEF Box_Material Material2D {emissiveColor .7 .7 .7 filled IS filled} } } # end Box DEF touch TouchSensor {} DEF Text TEXT { translation IS font_translation string IS string fontsize IS fontsize } # end Text ] } # end Transform DEF script Script { field SFNode frame_filled USE Box_Material eventIn SFBool isOver eventOut SFBool filled url "javascript: function isOver(v, t) { if (v) filled = true; else filled = false; } " } # end script DEF touchScript Script { eventIn SFTime touchTime eventOut SFInt32 choice url IS url } DEF touchChoice Script { field SFBool sw TRUE eventIn SFTime touchTime eventOut SFTime touchTime_changed IS touchTime_changed eventOut SFInt32 choice_changed IS choice_changed eventOut SFBool touchSwitch IS touchSwitch url "javascript: function touchTime(v, t) { choice_changed = 0; touchTime_changed = v; touchSwitch = sw; if (sw) sw = false; else sw = true; } " } ] ROUTE touch.isOver TO script.isOver ROUTE script.filled TO Box_Material.filled ROUTE touch.touchTime TO touchScript.touchTime ROUTE touch.touchTime TO touchChoice.touchTime } }