]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - src/tim/prune/function/compress/XYpoint.java
Moved source into separate src directory due to popular request
[GpsPrune.git] / src / tim / prune / function / compress / XYpoint.java
diff --git a/src/tim/prune/function/compress/XYpoint.java b/src/tim/prune/function/compress/XYpoint.java
new file mode 100644 (file)
index 0000000..b3d93d1
--- /dev/null
@@ -0,0 +1,49 @@
+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);
+       }
+}