diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2016-07-12 01:01:38 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2016-07-12 01:07:44 +0300 |
commit | cfbd605567f48229a923df382baf6db98fbafc61 (patch) | |
tree | d4218c49672047d6c3b37517034660b3b5dcd966 /source/blender/blenlib/intern/math_vector_inline.c | |
parent | 71a57a37b2eebbed53b5335019287b4df9c30519 (diff) | |
parent | 7212ebd09f9720883581221be923ae5e97ff5d76 (diff) |
Merge branch 'master' into blender2.8
Conflicts:
intern/cycles/blender/addon/ui.py
source/blender/blenkernel/BKE_particle.h
source/blender/blenkernel/intern/dynamicpaint.c
source/blender/blenkernel/intern/library.c
source/blender/blenkernel/intern/object.c
source/blender/blenkernel/intern/particle.c
source/blender/blenkernel/intern/particle_distribute.c
source/blender/blenkernel/intern/texture.c
source/blender/editors/object/object_add.c
source/blender/editors/object/object_relations.c
source/blender/editors/physics/particle_edit.c
source/blender/editors/physics/particle_object.c
source/blender/editors/transform/transform_snap_object.c
Diffstat (limited to 'source/blender/blenlib/intern/math_vector_inline.c')
-rw-r--r-- | source/blender/blenlib/intern/math_vector_inline.c | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/source/blender/blenlib/intern/math_vector_inline.c b/source/blender/blenlib/intern/math_vector_inline.c index fd9f3d5ff99..e9fb77f6302 100644 --- a/source/blender/blenlib/intern/math_vector_inline.c +++ b/source/blender/blenlib/intern/math_vector_inline.c @@ -859,13 +859,13 @@ MINLINE float len_v3v3(const float a[3], const float b[3]) return len_v3(d); } -MINLINE float normalize_v2_v2(float r[2], const float a[2]) +MINLINE float normalize_v2_v2_length(float r[2], const float a[2], const float unit_length) { float d = dot_v2v2(a, a); if (d > 1.0e-35f) { d = sqrtf(d); - mul_v2_v2fl(r, a, 1.0f / d); + mul_v2_v2fl(r, a, unit_length / d); } else { zero_v2(r); @@ -874,13 +874,22 @@ MINLINE float normalize_v2_v2(float r[2], const float a[2]) return d; } +MINLINE float normalize_v2_v2(float r[2], const float a[2]) +{ + return normalize_v2_v2_length(r, a, 1.0f); +} MINLINE float normalize_v2(float n[2]) { return normalize_v2_v2(n, n); } -MINLINE float normalize_v3_v3(float r[3], const float a[3]) +MINLINE float normalize_v2_length(float n[2], const float unit_length) +{ + return normalize_v2_v2_length(n, n, unit_length); +} + +MINLINE float normalize_v3_v3_length(float r[3], const float a[3], const float unit_length) { float d = dot_v3v3(a, a); @@ -888,7 +897,7 @@ MINLINE float normalize_v3_v3(float r[3], const float a[3]) * scaled down models with camera extreme close */ if (d > 1.0e-35f) { d = sqrtf(d); - mul_v3_v3fl(r, a, 1.0f / d); + mul_v3_v3fl(r, a, unit_length / d); } else { zero_v3(r); @@ -897,8 +906,12 @@ MINLINE float normalize_v3_v3(float r[3], const float a[3]) return d; } +MINLINE float normalize_v3_v3(float r[3], const float a[3]) +{ + return normalize_v3_v3_length(r, a, 1.0f); +} -MINLINE double normalize_v3_d(double n[3]) +MINLINE double normalize_v3_length_d(double n[3], const double unit_length) { double d = n[0] * n[0] + n[1] * n[1] + n[2] * n[2]; @@ -908,7 +921,7 @@ MINLINE double normalize_v3_d(double n[3]) double mul; d = sqrt(d); - mul = 1.0 / d; + mul = unit_length / d; n[0] *= mul; n[1] *= mul; @@ -921,6 +934,15 @@ MINLINE double normalize_v3_d(double n[3]) return d; } +MINLINE double normalize_v3_d(double n[3]) +{ + return normalize_v3_length_d(n, 1.0); +} + +MINLINE float normalize_v3_length(float n[3], const float unit_length) +{ + return normalize_v3_v3_length(n, n, unit_length); +} MINLINE float normalize_v3(float n[3]) { |