DEF Ball Transform {. . . }
DEF Clock TimeSensor {. . .}
DEF Bouncer Script {
field
SFFloat bounceHeight 3.0
eventIn
SFFloat set_fraction
eventOut SFVec3f
value_changed
url "bounce2.class"
}
ROUTE Clock.fraction_changed TO Bouncer.set_fraction
ROUTE Bouncer.value_changed TO Ball.set_translation
El archivo bounce2.java
import vrml.*;
import vrml.field.*;
import vrml.node.*;
public class bounce2 extends Script
{
private float bounceHeight;
private SFVec3f value_changedObj;
public void initialize( )
{
SFFloat floatObj = (SFFloat) getField( "bounceHeight" );
bounceHeight = (float)
floatObj.getValue( );
value_changedObj=(SFVec3f)getEventOut("value_changed");
}
public void processEvent( Event event )
{
ConstSFFloat flt = (ConstSFFloat) event.getValue( );
float frac = (float) flt.getValue( );
float y = (float)(4.0 * bounceHeight * frac * (1.0 - frac));
float[] changed = new float[3];
changed[0] = (float)0.0;
changed[1] = y;
changed[2] = (float)0.0;
value_changedObj.setValue( changed );
}
}
|