// bounce.java

import vrml.*;
import vrml.node.*;
import vrml.field.*;
import java.io.*;
import java.util.*;


public class bounce extends Script{
   // Define all the eventOuts and fields as class variables.
   private SFBool roll;
   private MFVec3f keyValue;

   private float jkeyValue[][];
   private float z;
   private float k;
   private float offset;
   private Random temp;

    public void initialize () {
	keyValue = (MFVec3f) getEventOut("keyValue");
	jkeyValue = new float[91][3];
	temp = new Random();
    }
     
    private void start_bounce(boolean bval){
	if (bval == true) {
	    jkeyValue[0][0] = -2.6f;
	    jkeyValue[0][1] = .95f;
	    jkeyValue[0][2] = 0; 
	    for (int j = 0; j < 9; j++) {
		k = (float)(Math.random()*8);
		z = 0;
		offset = -k / 4;
		System.out.println("test" + j);
		for (int i = j * 10; i < 10 * (j+1); i++) {
		    jkeyValue[i + 1][0] = 0;
		    jkeyValue[i + 1][1] = (float)((-k * Math.pow((z - 0.5f),2)) - offset);
		    System.out.println(jkeyValue[i][1]);
		    jkeyValue[i + 1][2] = 0;
		    z = z + (1.0f / 9.0f);
		}
	    }
	keyValue.setValue(jkeyValue);
	}
    }
	
    public void processEvent(Event e){
        String EventName = e.getName();
        
	if (EventName.equals("start_bounce")) 
	  start_bounce(((ConstSFBool)e.getValue()).getValue());
    }
}