1 6 7 package com.thoughtriver.open.vectorvisuals.task; 8 9 import java.awt.geom.*; 10 11 import com.thoughtriver.open.vectorvisuals.*; 12 13 21 public class TranslationTask extends AnimationTask { 22 23 24 private final VisualObject target; 25 26 27 private final AffineTransform translate; 28 29 30 private double lastProgress = 0; 31 32 44 public TranslationTask(final VisualObject target, final double xTranslate, final double yTranslate, final int duration) { 45 super(duration); 46 this.target = target; 47 this.translate = AffineTransform.getTranslateInstance(xTranslate, yTranslate); 48 lastProgress = 0; 49 } 50 51 59 @Override 60 protected void update(final double progress) { 61 62 synchronized (target) { 63 AffineTransform transform = target.getTransform(); 64 65 double xToTranslate = (progress - lastProgress) 66 * translate.getTranslateX(); 67 double yToTranslate = (progress - lastProgress) 68 * translate.getTranslateY(); 69 lastProgress = progress; 70 71 transform.translate(xToTranslate, yToTranslate); 72 target.setTransform(transform); 73 } 74 } 75 76 } 77 | Popular Tags |