]> Shamusworld >> Repos - architektonas/blob - src/geometry.h
Fixed missing edge cases in line to line intersection function.
[architektonas] / src / geometry.h
1 #ifndef __GEOMETRY_H__
2 #define __GEOMETRY_H__
3
4 #include "vector.h"
5
6 class Circle;
7 class Dimension;
8 class Line;
9
10 class Geometry
11 {
12         public:
13                 // All methods are class methods for this class
14                 static Point IntersectionOfLineAndLine(Point, Point, Point, Point);
15                 static double ParameterOfLineAndPoint(Point, Point, Point);
16                 static Point MirrorPointAroundLine(Point, Point, Point);
17                 static Point RotatePointAroundPoint(Point, Point, double);
18                 static double Determinant(Point, Point);
19                 static int Intersects(Line *, Line *, double * tp = 0, double * up = 0);
20                 static int Intersects(Line *, Dimension *, double * tp = 0, double * up = 0);
21                 static int Intersects(Line * l, Circle * c, double * tp = 0, double * up = 0, double * vp = 0, double * wp = 0);
22 };
23
24 #endif  // __GEOMETRY_H__
25