Commit: bd74ae9ca56e496722fa0853eac34fe99fc05dda
Author: Bastien Montagne
Date:   Fri Mar 9 10:54:41 2018 +0100
Branches: soc-2017-normal-tools
https://developer.blender.org/rBbd74ae9ca56e496722fa0853eac34fe99fc05dda

Minor cleanup and silplification/optimizations...

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

M       release/datafiles/locale
M       release/scripts/addons
M       release/scripts/addons_contrib
M       source/blender/modifiers/intern/MOD_weighted_normal.c
M       source/tools

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

diff --git a/release/datafiles/locale b/release/datafiles/locale
index 59495b4b590..d3349b42856 160000
--- a/release/datafiles/locale
+++ b/release/datafiles/locale
@@ -1 +1 @@
-Subproject commit 59495b4b59077aa1cc68fffbdae1463af980f08e
+Subproject commit d3349b42856d00c278f72f2a5909a6c96b9cdb5e
diff --git a/release/scripts/addons b/release/scripts/addons
index 27970761a18..827c5e62e8f 160000
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@ -1 +1 @@
-Subproject commit 27970761a18926abe1b0020aa350305e3109a537
+Subproject commit 827c5e62e8f121f8f946f1f5f514f7751b1d684a
diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib
index 6a4f93c9b8f..310578043de 160000
--- a/release/scripts/addons_contrib
+++ b/release/scripts/addons_contrib
@@ -1 +1 @@
-Subproject commit 6a4f93c9b8f36b19bd02087abf3d7f5983df035a
+Subproject commit 310578043dec1aae382eb6a447ae1d103792d7e6
diff --git a/source/blender/modifiers/intern/MOD_weighted_normal.c 
b/source/blender/modifiers/intern/MOD_weighted_normal.c
index 3fb23a9fa03..e0951fbaed5 100644
--- a/source/blender/modifiers/intern/MOD_weighted_normal.c
+++ b/source/blender/modifiers/intern/MOD_weighted_normal.c
@@ -414,11 +414,15 @@ static void wn_face_area(
         MPoly *mpoly, const int numPoly, float (*polynors)[3],
         MDeformVert *dvert, int defgrp_index, const bool use_invert_vgroup, 
const float weight, int *strength)
 {
+       MPoly *mp;
+       int mp_index;
+
        ModePair *face_area = MEM_mallocN(sizeof(*face_area) * numPoly, 
__func__);
 
-       for (int mp_index = 0; mp_index < numPoly; mp_index++) {
-               face_area[mp_index].val = 
BKE_mesh_calc_poly_area(&mpoly[mp_index], &mloop[mpoly[mp_index].loopstart], 
mvert);
-               face_area[mp_index].index = mp_index;
+       ModePair *f_area = face_area;
+       for (mp_index = 0, mp = mpoly; mp_index < numPoly; mp_index++, mp++, 
f_area++) {
+               f_area->val = BKE_mesh_calc_poly_area(mp, 
&mloop[mp->loopstart], mvert);
+               f_area->index = mp_index;
        }
 
        qsort(face_area, numPoly, sizeof(*face_area), 
modepair_cmp_by_val_inverse);
@@ -435,16 +439,22 @@ static void wn_corner_angle(
         MPoly *mpoly, const int numPoly, float (*polynors)[3],
         MDeformVert *dvert, int defgrp_index, const bool use_invert_vgroup, 
const float weight, int *strength)
 {
+       MPoly *mp;
+       int mp_index;
+
        ModePair *corner_angle = MEM_mallocN(sizeof(*corner_angle) * numLoops, 
__func__);
 
-       for (int mp_index = 0; mp_index < numPoly; mp_index++) {
-               int l_start = mpoly[mp_index].loopstart;
-               float *index_angle = MEM_mallocN(sizeof(*index_angle) * 
mpoly[mp_index].totloop, __func__);
-               BKE_mesh_calc_poly_angles(&mpoly[mp_index], &mloop[l_start], 
mvert, index_angle);
+       for (mp_index = 0, mp = mpoly; mp_index < numPoly; mp_index++, mp++) {
+               MLoop *ml_start = &mloop[mp->loopstart];
+
+               float *index_angle = MEM_mallocN(sizeof(*index_angle) * 
mp->totloop, __func__);
+               BKE_mesh_calc_poly_angles(mp, ml_start, mvert, index_angle);
 
-               for (int i = l_start; i < l_start + mpoly[mp_index].totloop; 
i++) {
-                       corner_angle[i].val = (float)M_PI - index_angle[i - 
l_start];
-                       corner_angle[i].index = i; 
+               ModePair *c_angl = &corner_angle[mp->loopstart];
+               float *angl = index_angle;
+               for (int ml_index = mp->loopstart; ml_index < mp->loopstart + 
mp->totloop; ml_index++, c_angl++, angl++) {
+                       c_angl->val = (float)M_PI - *angl;
+                       c_angl->index = ml_index;
                }
                MEM_freeN(index_angle);
        }
@@ -463,19 +473,24 @@ static void wn_face_with_angle(
         MPoly *mpoly, const int numPoly, float(*polynors)[3],
         MDeformVert *dvert, int defgrp_index, const bool use_invert_vgroup, 
const float weight, int *strength)
 {
+       MPoly *mp;
+       int mp_index;
+
        ModePair *combined = MEM_mallocN(sizeof(*combined) * numLoops, 
__func__);
 
-       for (int mp_index = 0; mp_index < numPoly; mp_index++) {
-               int l_start = mpoly[mp_index].loopstart;
-               float face_area = BKE_mesh_calc_poly_area(&mpoly[mp_index], 
&mloop[l_start], mvert);
-               float *index_angle = MEM_mallocN(sizeof(*index_angle) * 
mpoly[mp_index].totloop, __func__);
+       for (mp_index = 0, mp = mpoly; mp_index < numPoly; mp_index++, mp++) {
+               MLoop *ml_start = &mloop[mp->loopstart];
 
-               BKE_mesh_calc_poly_angles(&mpoly[mp_index], &mloop[l_start], 
mvert, index_angle);
+               float face_area = BKE_mesh_calc_poly_area(mp, ml_start, mvert);
+               float *index_angle = MEM_mallocN(sizeof(*index_angle) * 
mp->totloop, __func__);
+               BKE_mesh_calc_poly_angles(mp, ml_start, mvert, index_angle);
 
-               for (int i = l_start; i < l_start + mpoly[mp_index].totloop; 
i++) {
+               ModePair *cmbnd = &combined[mp->loopstart];
+               float *angl = index_angle;
+               for (int ml_index = mp->loopstart; ml_index < mp->loopstart + 
mp->totloop; ml_index++, cmbnd++, angl++) {
                        /* In this case val is product of corner angle and face 
area. */
-                       combined[i].val = ((float)M_PI - index_angle[i - 
l_start]) * face_area;
-                       combined[i].index = i;
+                       cmbnd->val = ((float)M_PI - *angl) * face_area;
+                       cmbnd->index = ml_index;
                }
                MEM_freeN(index_angle);
        }
@@ -515,7 +530,6 @@ static DerivedMesh *applyModifier(ModifierData *md, Object 
*ob, DerivedMesh *dm,
        bool free_polynors = false;
 
        float weight = ((float)wnmd->weight) / 50.0f;
-
        if (wnmd->weight == 100) {
                weight = (float)SHRT_MAX;
        }
@@ -527,7 +541,6 @@ static DerivedMesh *applyModifier(ModifierData *md, Object 
*ob, DerivedMesh *dm,
        }
 
        float (*polynors)[3] = dm->getPolyDataArray(dm, CD_NORMAL);
-
        if (!polynors) {
                polynors = MEM_mallocN(sizeof(*polynors) * numPoly, __func__);
                BKE_mesh_calc_normals_poly(mvert, NULL, numVerts, mloop, mpoly, 
numLoops, numPoly, polynors, false);
diff --git a/source/tools b/source/tools
index 88a1758d2d2..7695e14cfc5 160000
--- a/source/tools
+++ b/source/tools
@@ -1 +1 @@
-Subproject commit 88a1758d2d2e862cc69c08b5b40a4e75f71592d3
+Subproject commit 7695e14cfc5820ac66546e0e515914d85ab81af3

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to