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