Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenlib/intern/math_geom.c')
-rw-r--r--source/blender/blenlib/intern/math_geom.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/source/blender/blenlib/intern/math_geom.c b/source/blender/blenlib/intern/math_geom.c
index 8afb6b5a2be..43f2e08cf69 100644
--- a/source/blender/blenlib/intern/math_geom.c
+++ b/source/blender/blenlib/intern/math_geom.c
@@ -5307,7 +5307,10 @@ void accumulate_vertex_normals_tri_v3(float n1[3],
for (i = 0; i < nverts; i++) {
const float *cur_edge = vdiffs[i];
- const float fac = saacos(-dot_v3v3(cur_edge, prev_edge));
+ /* Calculate angle between the two poly edges incident on this vertex.
+ * NOTE: no need for #saacos here as the input has been sanitized,
+ * `nan` values in coordinates normalize to zero which works for `acosf`. */
+ const float fac = acosf(-dot_v3v3(cur_edge, prev_edge));
/* accumulate */
madd_v3_v3fl(vn[i], f_no, fac);
@@ -5386,9 +5389,10 @@ void accumulate_vertex_normals_poly_v3(float **vertnos,
for (i = 0; i < nverts; i++) {
const float *cur_edge = vdiffs[i];
- /* calculate angle between the two poly edges incident on
- * this vertex */
- const float fac = saacos(-dot_v3v3(cur_edge, prev_edge));
+ /* Calculate angle between the two poly edges incident on this vertex.
+ * NOTE: no need for #saacos here as the input has been sanitized,
+ * `nan` values in coordinates normalize to zero which works for `acosf`. */
+ const float fac = acosf(-dot_v3v3(cur_edge, prev_edge));
/* accumulate */
madd_v3_v3fl(vertnos[i], polyno, fac);