[Bf-blender-cvs] [80c7a228fac] soc-2021-curve-fillet: Fixed issue with incorrect radius for fillet

dilithjay noreply at git.blender.org
Tue Jul 13 15:26:40 CEST 2021


Commit: 80c7a228faca7b3c69d2d21590b49a4c49cb15ba
Author: dilithjay
Date:   Tue Jul 13 18:24:57 2021 +0530
Branches: soc-2021-curve-fillet
https://developer.blender.org/rB80c7a228faca7b3c69d2d21590b49a4c49cb15ba

Fixed issue with incorrect radius for fillet

===================================================================

M	release/datafiles/locale
M	release/scripts/addons
M	release/scripts/addons_contrib
M	source/blender/nodes/geometry/nodes/node_geo_curve_fillet.cc
M	source/tools

===================================================================

diff --git a/release/datafiles/locale b/release/datafiles/locale
index 4833954c0ac..1ab25ca4f20 160000
--- a/release/datafiles/locale
+++ b/release/datafiles/locale
@@ -1 +1 @@
-Subproject commit 4833954c0ac85cc407e1d5a153aa11b1d1823ec0
+Subproject commit 1ab25ca4f208edc8fb6c3551b3050ce3ad50ad7c
diff --git a/release/scripts/addons b/release/scripts/addons
index f86f25e6221..e1f331e0af4 160000
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@ -1 +1 @@
-Subproject commit f86f25e62217264495d05f116ccb09d575fe9841
+Subproject commit e1f331e0af4461dbf80e03e76d9576fa748a0460
diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib
index 5a82baad9f9..fd1bed98c9e 160000
--- a/release/scripts/addons_contrib
+++ b/release/scripts/addons_contrib
@@ -1 +1 @@
-Subproject commit 5a82baad9f986722104280e8354a4427d8e9eab1
+Subproject commit fd1bed98c9e0a733451168eecc828cce460205d4
diff --git a/source/blender/nodes/geometry/nodes/node_geo_curve_fillet.cc b/source/blender/nodes/geometry/nodes/node_geo_curve_fillet.cc
index 6014cc42274..e459643654e 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_curve_fillet.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_curve_fillet.cc
@@ -140,7 +140,7 @@ static void calculate_fillet_data(const float3 prev_pos,
   normalize_v3_v3(fd->next_dir, vec_pos2next);
   fd->pos = pos;
   cross_v3_v3v3(fd->axis, vec_pos2prev, vec_pos2next);
-  fd->angle = angle_v3v3v3(prev_pos, pos, next_pos);
+  fd->angle = M_PI - angle_v3v3v3(prev_pos, pos, next_pos);
   fd->count = count.has_value() ? count.value() : fd->angle / arc_angle.value();
   fd->center = get_center(vec_pos2prev, pos, fd->axis, fd->angle);
   fd->radius = radius;
@@ -246,8 +246,10 @@ static SplinePtr fillet_bezier_spline(const Spline &spline, const FilletModePara
     int fillet_i = i - start;
     FilletData fd = fds[fillet_i];
 
+    float displacement = fd.radius * tanf(fd.angle / 2);
+
     copy_bezier_vertex_data(&new_spline, &bez_spline, next_i, i);
-    new_spline.positions()[next_i] = fd.pos + fd.radius * fd.prev_dir;
+    new_spline.positions()[next_i] = fd.pos + displacement * fd.prev_dir;
     next_i++;
 
     if (!fd.radius) {
@@ -255,8 +257,9 @@ static SplinePtr fillet_bezier_spline(const Spline &spline, const FilletModePara
     }
 
     float handle_length = 4.0f * fd.radius / 3 * tanf(fd.angle / 4);
+
     copy_bezier_vertex_data(&new_spline, &bez_spline, next_i, i);
-    new_spline.positions()[next_i] = fd.pos + fd.radius * fd.next_dir;
+    new_spline.positions()[next_i] = fd.pos + displacement * fd.next_dir;
     new_spline.handle_types_right()[next_i - 1] = new_spline.handle_types_left()[next_i] =
         BezierSpline::HandleType::Align;
     new_spline.handle_positions_right()[next_i - 1] = new_spline.positions()[next_i - 1] -
diff --git a/source/tools b/source/tools
index 01f51a0e551..c8579c5cf43 160000
--- a/source/tools
+++ b/source/tools
@@ -1 +1 @@
-Subproject commit 01f51a0e551ab730f0934dc6488613690ac4bf8f
+Subproject commit c8579c5cf43229843df505da9644b5b0b7201974



More information about the Bf-blender-cvs mailing list