/*******************************************************************************
* Copyright (c) 2006-2009 Nicolas Richeton.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors :
* Nicolas Richeton (nicolas.richeton@gmail.com) - initial API and implementation
*******************************************************************************/
package org.eclipse.nebula.cwt.animation.movement;
/**
* Interface for movement implementations. Can be linear, exponential, ...
*
* @author Nicolas Richeton
*/
public interface IMovement {
/**
* Set up the movement. with init( 0, 1, 50), it will take 50 steps to go
* from 0 to 1. There is no garanties that getValue will return only values
* between min and max.
*
* The only thing you know is : getValue( 0 ) = 0 and getValue( 50 ) = 1
*
* @param min
* - min (start) value
* @param max
* - max( end ) value
* @param steps
* - number of steps
*/
void init(double min, double max, int steps);
/**
* Get value at step 'step'
*
* @param step
* @return current value.
*/
double getValue(double step);
}