[Bf-blender-cvs] [857f39a3d76] master: GPencil: Apply NanoSVG fix

Antonio Vazquez noreply at git.blender.org
Wed May 19 17:56:30 CEST 2021


Commit: 857f39a3d76c7672bb49d95988352bb7caff41a4
Author: Antonio Vazquez
Date:   Wed May 19 17:56:12 2021 +0200
Branches: master
https://developer.blender.org/rB857f39a3d76c7672bb49d95988352bb7caff41a4

GPencil: Apply NanoSVG fix

This fix is ported from official NanoSVG git

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

M	source/blender/io/gpencil/nanosvg/nanosvg.h

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

diff --git a/source/blender/io/gpencil/nanosvg/nanosvg.h b/source/blender/io/gpencil/nanosvg/nanosvg.h
index 886b6402267..94dad37861a 100644
--- a/source/blender/io/gpencil/nanosvg/nanosvg.h
+++ b/source/blender/io/gpencil/nanosvg/nanosvg.h
@@ -2362,7 +2362,12 @@ static void nsvg__pathArcTo(NSVGparser *p, float *cpx, float *cpy, float *args,
   // The loop assumes an iteration per end point (including start and end), this +1.
   ndivs = (int)(fabsf(da) / (NSVG_PI * 0.5f) + 1.0f);
   hda = (da / (float)ndivs) / 2.0f;
-  kappa = fabsf(4.0f / 3.0f * (1.0f - cosf(hda)) / sinf(hda));
+  // Fix for ticket #179: division by 0: avoid cotangens around 0 (infinite)
+  if ((hda < 1e-3f) && (hda > -1e-3f))
+    hda *= 0.5f;
+  else
+    hda = (1.0f - cosf(hda)) / sinf(hda);
+  kappa = fabsf(4.0f / 3.0f * hda);
   if (da < 0.0f)
     kappa = -kappa;



More information about the Bf-blender-cvs mailing list