Mercurial > hg > jslab
annotate src/samer/j3d/FPS.java @ 8:5e3cbbf173aa tip
Reorganise some more
author | samer |
---|---|
date | Fri, 05 Apr 2019 22:41:58 +0100 |
parents | bf79fb79ee13 |
children |
rev | line source |
---|---|
samer@0 | 1 /* Credit: got this from Particles java 3d demo app |
samer@0 | 2 by Jeff White (jsw@cs.brown.edu) |
samer@0 | 3 */ |
samer@0 | 4 |
samer@0 | 5 package samer.j3d; |
samer@0 | 6 |
samer@0 | 7 import javax.media.j3d.*; |
samer@0 | 8 import javax.vecmath.*; |
samer@0 | 9 import java.util.Enumeration; |
samer@0 | 10 |
samer@0 | 11 final class FPS extends Behavior { |
samer@0 | 12 |
samer@0 | 13 protected int nFrames; |
samer@0 | 14 protected long startTime; |
samer@0 | 15 protected final WakeupCondition w; |
samer@0 | 16 |
samer@0 | 17 public FPS(int nFrames){ |
samer@0 | 18 this.nFrames=nFrames; |
samer@0 | 19 w=new WakeupOnElapsedFrames(nFrames); |
samer@0 | 20 } |
samer@0 | 21 |
samer@0 | 22 public FPS(){ |
samer@0 | 23 this(100); |
samer@0 | 24 } |
samer@0 | 25 |
samer@0 | 26 public void initialize(){ |
samer@0 | 27 setSchedulingBounds(new BoundingSphere(new Point3d(),1000)); |
samer@0 | 28 startTime=System.currentTimeMillis(); |
samer@0 | 29 wakeupOn(w); |
samer@0 | 30 } |
samer@0 | 31 |
samer@0 | 32 public void processStimulus(Enumeration criteria){ |
samer@0 | 33 long time=System.currentTimeMillis(); |
samer@0 | 34 System.err.println("fps: "+ 1000 * (double) nFrames / (double) (time-startTime)); |
samer@0 | 35 startTime=time; |
samer@0 | 36 wakeupOn(w); |
samer@0 | 37 } |
samer@0 | 38 } |