// 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);
	}

}