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);
}
}