diff --git a/Skeleton.cpp b/Skeleton.cpp
index dd0e3a598165f6361e31589339262f6031e716f8..86e83e0da89aa0a0609cbda6ae3f940344ecd91a 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;
             }