]> Shamusworld >> Repos - architektonas/blob - src/geometry.h
0a05b373460224f2a1e12d39463ccacbc12a57a6
[architektonas] / src / geometry.h
1 #ifndef __GEOMETRY_H__
2 #define __GEOMETRY_H__
3
4 #include "structs.h"
5 #include "vector.h"
6
7 class Geometry
8 {
9         public:
10                 // All methods are class methods for this class
11                 static double ParameterOfLineAndPoint(Point, Point, Point);
12                 static double DistanceToLineFromPoint(Point, Point, Point);
13                 static Point MirrorPointAroundLine(Point, Point, Point);
14                 static Point RotatePointAroundPoint(Point, Point, double);
15                 static double Determinant(Point, Point);
16                 static void Intersects(Object *, Object *);
17                 static void CheckLineToLineIntersection(Object *, Object *);
18                 static void CheckCircleToCircleIntersection(Object *, Object *);
19                 static void CheckLineToCircleIntersection(Object *, Object *);
20                 static void FindAnglesForSides(double s1, double s2, double s3, double * a1, double * a2, double * a3);
21                 static Point GetPointForParameter(Object *, double);
22                 static Point Midpoint(Line *);
23                 static void FindTangents(Object *, Point);
24                 static void FindTangents(Object *, Object *);
25                 static Point NearestTo(Point, Point, Point);
26                 static Vector GetNormalOfPointAndLine(Point, Line *);
27                 static Circle FindCircleForThreePoints(Point, Point, Point);
28                 static double Determinant3x3(double, double, double, double, double, double, double, double, double);
29                 static Arc Unpack(Point, Point, double);
30 };
31
32 #endif  // __GEOMETRY_H__