// 9/29/98 Lab 5 tail script // Compiled using MS SDK Java 3.1 on Windows 98 import java.io.*; import vrml.*; import vrml.node.*; import vrml.field.*; import java.lang.Math; public class tail extends Script { // fields private SFString nodename; // eventouts private SFRotation rotation_changed; // local vars private float generic[]={0,1,0,0}; public void initialize() { rotation_changed = (SFRotation) getEventOut("rotation_changed"); nodename = (SFString) getField("nodename"); } public void processEvent(Event e) { String EventName = e.getName(); if(EventName.equals("set_fraction")) set_fraction((ConstSFFloat)e.getValue()); } private void set_fraction(ConstSFFloat temp) { float frac = temp.getValue(); if(frac >= 1.0f) { System.out.println("Something WRONG! Can't have fraction > 1"); return; } generic[3]=(float)Math.sin(frac*3.14*2)*0.85f; // the 0.85 is max and min angle allowed. rotation_changed.setValue(generic); } }