media @ VU
shader-layer.vr
shader-layer.vr
(wrl
)
[ flux /
bitmanagement /
cortona /
octaga
]
Web3D/VR
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
}
}
(C) A. Eliëns
2/9/2007
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.