package org.codecranachan.asteroidpush.utils;
import org.jbox2d.common.Transform;
import org.jbox2d.common.Vec2;
public class Force {
private Vec2 point;
private Vec2 vector;
public Force(Vec2 offset, Vec2 force) {
this.point = new Vec2(offset);
this.vector = new Vec2(force);
}
public Vec2 getOffset() {
return point;
}
public Vec2 getForce() {
return vector;
}
public Force scaleForce(float factor) {
return new Force(point, vector.mul(factor));
}
public Arrow asArrow() {
return new Arrow(point, point.add(vector));
}
public Force transformBy(Arrow offset, float scale) {
Transform transform = offset.getTransform();
Vec2 point = Transform.mul(transform, this.point.mul(scale));
Vec2 vector = offset.getAngle().rotate(this.vector);
return new Force(point, vector);
}
}