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