package com.sun.scenario.animation;
import com.sun.javafx.animation.TickCalculation;
import javafx.animation.Interpolator;
import javafx.util.Duration;
public class NumberTangentInterpolator extends Interpolator {
private final double inValue, outValue;
private final long inTicks, outTicks;
public double getInValue() { return inValue; }
public double getOutValue() { return outValue; }
public double getInTicks() { return inTicks; }
public double getOutTicks() { return outTicks; }
public NumberTangentInterpolator(Duration inDuration, double inValue, Duration outDuration, double outValue) {
this.inTicks = TickCalculation.fromDuration(inDuration);
this.inValue = inValue;
this.outTicks = TickCalculation.fromDuration(outDuration);
this.outValue = outValue;
}
public NumberTangentInterpolator(Duration duration, double value) {
this.outTicks = this.inTicks = TickCalculation.fromDuration(duration);
this.inValue = this.outValue = value;
}
@Override
public String toString() {
return "NumberTangentInterpolator [inValue=" + inValue
+ ", inDuration=" + TickCalculation.toDuration(inTicks) + ", outValue="
+ outValue + ", outDuration=" + TickCalculation.toDuration(outTicks) + "]";
}
@Override
public int hashCode() {
int hash = 7;
hash = 59 * hash + (int) (Double.doubleToLongBits(this.inValue) ^ (Double.doubleToLongBits(this.inValue) >>> 32));
hash = 59 * hash + (int) (Double.doubleToLongBits(this.outValue) ^ (Double.doubleToLongBits(this.outValue) >>> 32));
hash = 59 * hash + (int) (this.inTicks ^ (this.inTicks >>> 32));
hash = 59 * hash + (int) (this.outTicks ^ (this.outTicks >>> 32));
return hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final NumberTangentInterpolator other = (NumberTangentInterpolator) obj;
if (Double.doubleToLongBits(this.inValue) != Double.doubleToLongBits(other.inValue)) {
return false;
}
if (Double.doubleToLongBits(this.outValue) != Double.doubleToLongBits(other.outValue)) {
return false;
}
if (this.inTicks != other.inTicks) {
return false;
}
if (this.outTicks != other.outTicks) {
return false;
}
return true;
}
@Override
protected double curve(double t) {
return t;
}
}