From a6e07a0252748eb3bea6d2c1790b0ed38e49f795 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mikl=C3=B3s=20T=C3=B3th?= <tothmiklostibor@gmail.com>
Date: Thu, 15 Apr 2021 22:50:17 +0200
Subject: [PATCH] actually .1m

---
 Skeleton.cpp | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/Skeleton.cpp b/Skeleton.cpp
index dd0e3a5..86e83e0 100644
--- a/Skeleton.cpp
+++ b/Skeleton.cpp
@@ -144,6 +144,10 @@ struct Pentagon : public Intersectable {
     Material* material;
     Material* portal = new PortalMaterial();
     
+    static float distance(const vec3& e1, const vec3& e2, const vec3& p){
+        return length(cross(p-e1, p-e2))/length(e2-e1);
+    }
+    
     Pentagon(const vec3& _r1, const vec3& _r2, const vec3& _r3, const vec3& _r4, const vec3& _r5, Material* _material) {
         r1 = _r1;
         r2 = _r2;
@@ -177,11 +181,11 @@ struct Pentagon : public Intersectable {
             hit.position = p;
             
             if (
-                    dot(cross(r2-r1, p-r1), n) > 0.1 &&
-                    dot(cross(r3-r2, p-r2), n) > 0.1 &&
-                    dot(cross(r4-r3, p-r3), n) > 0.1 &&
-                    dot(cross(r5-r4, p-r4), n) > 0.1 &&
-                    dot(cross(r1-r5, p-r5), n) > 0.1
+                    distance(r1, r2, p) > 0.1 &&
+                    distance(r2, r3, p) > 0.1 &&
+                    distance(r3, r4, p) > 0.1 &&
+                    distance(r4, r5, p) > 0.1 &&
+                    distance(r5, r1, p) > 0.1
                     ) {
                 hit.material = portal;
             }
-- 
GitLab