/* * Copyright (c) 2010-2016, Sikuli.org, sikulix.com * Released under the MIT License. * */ package org.sikuli.basics; public class AnimatorTimeBased implements Animator { private long _begin_time; private boolean _running; private AnimatorTimeValueFunction _func; public AnimatorTimeBased(AnimatorTimeValueFunction func) { _begin_time = -1; _running = true; _func = func; } @Override public float step() { if (_begin_time == -1) { _begin_time = System.currentTimeMillis(); return _func.getValue(0); } long now = System.currentTimeMillis(); long delta = now - _begin_time; float ret = _func.getValue(delta); _running = !_func.isEnd(delta); return ret; } @Override public boolean running() { return _running; } }