]> Shamusworld >> Repos - architektonas/blobdiff - src/geometry.h
Preliminary support for Polylines.
[architektonas] / src / geometry.h
index 02cfada77dee1c68b9e658adf335b6a7c9110d45..0a05b373460224f2a1e12d39463ccacbc12a57a6 100644 (file)
@@ -8,20 +8,25 @@ class Geometry
 {
        public:
                // All methods are class methods for this class
-//unused               static Point IntersectionOfLineAndLine(Point, Point, Point, Point);
                static double ParameterOfLineAndPoint(Point, Point, Point);
+               static double DistanceToLineFromPoint(Point, Point, Point);
                static Point MirrorPointAroundLine(Point, Point, Point);
                static Point RotatePointAroundPoint(Point, Point, double);
                static double Determinant(Point, Point);
-               static int Intersects(Object *, Object *, double * tp = 0, double * up = 0, double * vp = 0, double * wp = 0);
-               static int CheckLineToLineIntersection(Object *, Object *, double *, double *);
-//             static int Intersects(Line *, Line *, double * tp = 0, double * up = 0);
-//             static int Intersects(Line *, Dimension *, double * tp = 0, double * up = 0);
-//             static int Intersects(Line * l, Circle * c, double * tp = 0, double * up = 0, double * vp = 0, double * wp = 0);
-//             static int Intersects(Circle * c1, Circle * c2, double * tp = 0, double * up = 0, double * vp = 0, double * wp = 0, Point * p1 = 0, Point * p2 = 0);
+               static void Intersects(Object *, Object *);
+               static void CheckLineToLineIntersection(Object *, Object *);
+               static void CheckCircleToCircleIntersection(Object *, Object *);
+               static void CheckLineToCircleIntersection(Object *, Object *);
                static void FindAnglesForSides(double s1, double s2, double s3, double * a1, double * a2, double * a3);
                static Point GetPointForParameter(Object *, double);
+               static Point Midpoint(Line *);
+               static void FindTangents(Object *, Point);
+               static void FindTangents(Object *, Object *);
+               static Point NearestTo(Point, Point, Point);
+               static Vector GetNormalOfPointAndLine(Point, Line *);
+               static Circle FindCircleForThreePoints(Point, Point, Point);
+               static double Determinant3x3(double, double, double, double, double, double, double, double, double);
+               static Arc Unpack(Point, Point, double);
 };
 
 #endif         // __GEOMETRY_H__
-