From a78a2e4206059188fecf50b27a83a49d734db46c Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Tue, 14 Nov 2023 17:38:01 -0500 Subject: [PATCH] Potree: fix vertical area measurements --- app/static/app/js/vendor/potree/build/potree/potree.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/static/app/js/vendor/potree/build/potree/potree.js b/app/static/app/js/vendor/potree/build/potree/potree.js index 0cb02583..db470fc1 100644 --- a/app/static/app/js/vendor/potree/build/potree/potree.js +++ b/app/static/app/js/vendor/potree/build/potree/potree.js @@ -54099,14 +54099,16 @@ getArea () { let area = 0; let j = this.points.length - 1; - for (let i = 0; i < this.points.length; i++) { + let p0 = this.points[0].position; let p1 = this.points[i].position; let p2 = this.points[j].position; - area += (p2.x + p1.x) * (p1.y - p2.y); + let a = (p2.y - p0.y) * (p1.z - p0.z) - (p2.z - p0.z) * (p1.y - p0.y); + let b = (p2.x - p0.x) * (p1.z - p0.z) - (p2.z - p0.z) * (p1.x - p0.x); + let c = (p2.x - p0.x) * (p1.y - p0.y) - (p2.y - p0.y) * (p1.x - p0.x); + area += Math.sqrt(a * a + b * b + c * c); j = i; } - return Math.abs(area / 2); };