Moving Worlds
A proposal for VRML2.0
WorldMaker, Sony, SGI
Interpolators
Tree
Multi
Example:
Transform {
DEF MyToggle ClickSensor{ .... }
Cube { .... }
}
DEF MySpot PointLight { ... }
DEF MyScript Script {
scriptType "java"
behavior "http://worldmaker.com/light.class"
eventIn SFBool clicked
eventOut SFColor turnOn
}
ROUTE MyToggle.isActive -> MyScript.clicked
ROUTE MyScript.turnOn -> MySpot.color
class SwitchedLight extends Script {
private SFBool lampColor = (SFColor) getFIeld("lampColor");
float[] red = { 1, 0, 0 };
float[] green = { 0, 1, 0 };
public void clicked(ConstSFBool isActive) {
if (isActive.getValue()) {
lampColor.setValue(red);
} else {
lampColor.setValue(green);
}
}
}
Sensors and Interpolators
DEF MyTime TimeSensor {
startTime 0
cycleInterval 2.34 # secs
}
DEF MyInterp OrientationInterpolator {
keys [ 0, 1 ]
values [ 0, 3.1415 ]
}
Separator {
DEF DoorHinge Transform { }
Cube { width 0.1 height 2 width 1 }
}
ROUTE MyTime.alpha -> MyInterp.setAlpha
ROUTE MyInterp.outValue -> DoorHinge.setRotation
http://www.mitra.biz/vrml mitra@mitra.biz