package tim.prune.function.compress; /** * Basic class to hold x and y coordinates * for a point or a vector */ public class XYpoint { // x and y coordinates public double x = 0.0, y = 0.0; /** * Empty constructor */ public XYpoint() { this(0.0, 0.0); } /** * Constructor * @param inX x value * @param inY y value */ public XYpoint(double inX, double inY) { x = inX; y = inY; } /** * @param inOther other vector * @return scalar dot product */ public double dot(XYpoint inOther) { return (x * inOther.x + y * inOther.y); } /** @return length of vector */ public double len() {return Math.sqrt(len2());} /** @return squared length of vector */ public double len2() {return (x*x + y*y);} /** * @param inOther other point object * @return vector from this one to the other one */ public XYpoint vectorTo(XYpoint inOther) { return new XYpoint(inOther.x - x, inOther.y - y); } }