| Rotator.java |
1 package fi.jyu.mit.graphics;
2
3 /**
4 * Luokka jolla voi pyorittaa kuvia
5 * @author Vesa Lappalainen
6 * @author Markus Kivioja
7 */
8 public class Rotator extends BasicTransformer {
9
10 /**
11 * Luo uuden pyörittäjän
12 * @param object olio jota pyöritetään
13 * @param axis akseli jonka suhteen pyöritetään (Axis.X/Axis.Y/Axis.Z)
14 * @param deg yhden pyörähdysaskeleen suuruus asteina
15 * @param dt pyörähdysaskeleiden välinen aika millisekunteina
16 */
17 public Rotator(Transformable object,int axis,double deg,long dt) {
18 this(object,new RotMatrix(axis,deg),dt);
19 }
20
21 /**
22 * Luo uuden pyörittäjän
23 * @param object olio jota pyöritetään
24 * @param rotM kiertomatriisi jolla pyöritetään
25 * @param dt pyörähdysaskeleiden välinen aika millisekunteina
26 */
27 public Rotator(Transformable object, Matrix rotM, long dt) {
28 super(object,rotM,dt);
29 }
30
31 /**
32 * Ajaa yhden pyöritysaskeleen
33 */
34 @Override
35 public void run() {
36 Matrix rot2 = getObject().getRotator();
37 if ( rot2 == null ) rot2 = getTransform(); else rot2 = rot2.multiply(getTransform());
38 getObject().setRotator(rot2);
39 }
40
41 }
42