#VRML V2.0 utf8
WorldInfo {
title "PROTO PositionInterpolator2D"
}
PROTO PositionInterpolator2D [
eventIn SFFloat set_fraction
exposedField MFFloat key []
exposedField MFVec2f keyValue []
eventOut SFVec2f value_changed
]
{
DEF Sc Script {
eventIn MFVec2f set_keyValue
eventIn SFVec3f set_value
eventOut SFVec2f value_changed IS value_changed
field SFNode PI DEF PI PositionInterpolator {
set_fraction IS set_fraction
key IS key
}
field SFNode TC DEF TC TextureCoordinate {
point IS keyValue
}
directOutput TRUE
url "javascript:
function set_keyValue(v) {
var kv = new MFVec3f();
for ( var i=0; i<v.length; i++ ) kv[i] = new SFVec3f ( v[i].x, v[i].y, 0 );
PI.keyValue = kv;
}
function initialize () {
set_keyValue( TC.point );
}
function set_value (v) {
value_changed.x = v.x;
value_changed.y = v.y;
}
"
}
ROUTE TC.point TO Sc.set_keyValue
ROUTE PI.value_changed TO Sc.set_value
}