summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2023-04-09 12:42:09 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2023-04-09 12:42:09 +0100
commitd8f61abae79a3154d5e6dda98713295d1b850e95 (patch)
treebb285a41f29f547259f6a6713d746d9eec1e8bad
parentStart to factor out geometric place from face controller split (diff)
downloadilt-d8f61abae79a3154d5e6dda98713295d1b850e95.tar.bz2
ilt-d8f61abae79a3154d5e6dda98713295d1b850e95.tar.xz
ilt-d8f61abae79a3154d5e6dda98713295d1b850e95.zip
Add helper to create a Ray from two points
-rw-r--r--lib/ray.cpp6
-rw-r--r--lib/ray.hpp2
2 files changed, 8 insertions, 0 deletions
diff --git a/lib/ray.cpp b/lib/ray.cpp
index acbb807..f9e3311 100644
--- a/lib/ray.cpp
+++ b/lib/ray.cpp
@@ -1,6 +1,12 @@
#include "ray.hpp"
#include <algorithm>
+Ray
+Ray::fromPoints(glm::vec3 start, glm::vec3 p)
+{
+ return {start, glm::normalize(p - start)};
+}
+
float
Ray::distanceToLine(const glm::vec3 & p1, const glm::vec3 & e1) const
{
diff --git a/lib/ray.hpp b/lib/ray.hpp
index 8bef1c8..9bf47af 100644
--- a/lib/ray.hpp
+++ b/lib/ray.hpp
@@ -7,6 +7,8 @@ class Ray {
public:
Ray(glm::vec3 start, glm::vec3 direction) : start {start}, direction {direction} { }
+ static Ray fromPoints(glm::vec3, glm::vec3);
+
glm::vec3 start;
glm::vec3 direction;