import java.util.*;import javax.media.j3d.*;import javax.vecmath.*;

public class FrameBehavior extends Behavior {  final int  frameIncr = 20;
  int  frameCount = 0;
  WakeupCriterion  frames = new WakeupOnElapsedFrames(frameIncr);
  long  lastMS = 0;

  FrameBehavior() {    super();  }

  // Sets timer to zero and registers the wakeup condition.
  public void initialize() {    lastMS = System.currentTimeMillis();
    wakeupOn(frames);  }

  // Print frame rate and re-register wakeup condition.
  public void processStimulus (Enumeration criteria) {
    frameCount += frameIncr;    long  et = System.currentTimeMillis() - lastMS;
    System.out.println("fps: " + (double)frameIncr * 1000.d/(double)et);
    lastMS = System.currentTimeMillis();    wakeupOn(frames);  }}

