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