[Bf-blender-cvs] [bd74ae9ca56] soc-2017-normal-tools: Minor cleanup and silplification/optimizations...
Bastien Montagne
noreply at git.blender.org
Fri Mar 9 18:50:40 CET 2018
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
More information about the Bf-blender-cvs
mailing list