diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2023-04-09 12:24:55 +0100 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2023-04-09 12:24:55 +0100 |
commit | b222c21715384efc2eaa53d3ba295fb34da5b599 (patch) | |
tree | 66149833358cbadb891159fd0faf74ef221e5073 /lib | |
parent | Simplify extruding (diff) | |
download | ilt-b222c21715384efc2eaa53d3ba295fb34da5b599.tar.bz2 ilt-b222c21715384efc2eaa53d3ba295fb34da5b599.tar.xz ilt-b222c21715384efc2eaa53d3ba295fb34da5b599.zip |
Start to factor out geometric place from face controller split
Diffstat (limited to 'lib')
-rw-r--r-- | lib/geometricPlane.cpp | 9 | ||||
-rw-r--r-- | lib/geometricPlane.h | 12 |
2 files changed, 21 insertions, 0 deletions
diff --git a/lib/geometricPlane.cpp b/lib/geometricPlane.cpp new file mode 100644 index 0000000..cb52997 --- /dev/null +++ b/lib/geometricPlane.cpp @@ -0,0 +1,9 @@ +#include "geometricPlane.h" +#include <glm/geometric.hpp> + +GeometricPlane::PlaneRelation +GeometricPlane::getRelation(glm::vec3 p) const +{ + const auto d = glm::dot(normal, p - origin); + return d < 0.f ? PlaneRelation::Below : d > 0.f ? PlaneRelation::Above : PlaneRelation::On; +} diff --git a/lib/geometricPlane.h b/lib/geometricPlane.h new file mode 100644 index 0000000..96816f2 --- /dev/null +++ b/lib/geometricPlane.h @@ -0,0 +1,12 @@ +#pragma once + +#include <glm/vec3.hpp> + +class GeometricPlane { +public: + enum class PlaneRelation { Above, Below, On }; + + glm::vec3 origin, normal; + + PlaneRelation getRelation(glm::vec3 point) const; +}; |