diff -r a4055f67b9c7 -r cb81ecb5fb23 src/geometry.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/geometry.h Wed Feb 26 02:21:07 2020 +0200 @@ -0,0 +1,34 @@ +#pragma once +#include "basics.h" + +namespace geom +{ + struct Plane + { + glm::vec3 normal; + glm::vec3 anchor; + }; + + struct Line + { + glm::vec3 direction; + glm::vec3 anchor; + }; + + template + struct Polygon + { + glm::vec3 points[N]; + }; + + inline const glm::vec3 origin = {0, 0, 0}; + inline const Plane XY = {{0, 0, 1}, origin}; + inline const Plane XZ = {{0, 1, 0}, origin}; + inline const Plane YZ = {{1, 0, 0}, origin}; + using Triangle = Polygon<3>; + + Line lineFromPoints(const glm::vec3& point_1, const glm::vec3 point_2); + Plane planeFromTriangle(const Triangle& triangle); + glm::vec3 normalVector(const Triangle& triangle); + std::optional linePlaneIntersection(const Line& line, const Plane& plane); +}