+ static double Determinant(Point, Point);
+ 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);