summaryrefslogtreecommitdiff
path: root/core/math
diff options
context:
space:
mode:
authorPasi Nuutinmaki <GNSSStylist@sci.fi>2020-03-15 10:01:28 +0200
committerRĂ©mi Verschelde <rverschelde@gmail.com>2021-04-28 11:09:41 +0200
commita165eed73bd9783a07cdec4571a4912df71464ce (patch)
tree9dc54e0464781e266e164e49fa6fd643f2dbac2f /core/math
parent35a8693e6ab5a46d2e72e39aa816689de4d371b9 (diff)
Fix area calculation of Face3
There seemed to be a bug in area calculation in Face3::get_area()-function. It returned the area of "imaginary" parallelogram instead of the triangle. Therefore the area returned was twice the real area. This manifested itself when using a hydro module for godot ( https://gitlab.com/ringtechsolutions/godot-tools/hydro/hydro ) causing the buoyancy to be two times the expected value. "Reference": http://www.maths.usyd.edu.au/u/MOW/vectors/vectors-11/v-11-7.html
Diffstat (limited to 'core/math')
-rw-r--r--core/math/face3.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/core/math/face3.cpp b/core/math/face3.cpp
index beb0a8e405..20c316c322 100644
--- a/core/math/face3.cpp
+++ b/core/math/face3.cpp
@@ -169,7 +169,7 @@ Vector3 Face3::get_median_point() const {
}
real_t Face3::get_area() const {
- return vec3_cross(vertex[0] - vertex[1], vertex[0] - vertex[2]).length();
+ return vec3_cross(vertex[0] - vertex[1], vertex[0] - vertex[2]).length() * 0.5;
}
ClockDirection Face3::get_clock_dir() const {