samer@0: /* Credit: got this from Particles java 3d demo app samer@0: by Jeff White (jsw@cs.brown.edu) samer@0: */ samer@0: samer@0: package samer.j3d; samer@0: samer@0: import javax.media.j3d.*; samer@0: import javax.vecmath.*; samer@0: import java.util.Enumeration; samer@0: samer@0: final class FPS extends Behavior { samer@0: samer@0: protected int nFrames; samer@0: protected long startTime; samer@0: protected final WakeupCondition w; samer@0: samer@0: public FPS(int nFrames){ samer@0: this.nFrames=nFrames; samer@0: w=new WakeupOnElapsedFrames(nFrames); samer@0: } samer@0: samer@0: public FPS(){ samer@0: this(100); samer@0: } samer@0: samer@0: public void initialize(){ samer@0: setSchedulingBounds(new BoundingSphere(new Point3d(),1000)); samer@0: startTime=System.currentTimeMillis(); samer@0: wakeupOn(w); samer@0: } samer@0: samer@0: public void processStimulus(Enumeration criteria){ samer@0: long time=System.currentTimeMillis(); samer@0: System.err.println("fps: "+ 1000 * (double) nFrames / (double) (time-startTime)); samer@0: startTime=time; samer@0: wakeupOn(w); samer@0: } samer@0: }