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:
authorCampbell Barton <ideasman42@gmail.com>2012-01-03 13:37:57 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-01-03 13:37:57 +0400
commit20b425e5d11974afcad6083aaae10a1089947d89 (patch)
tree2c0ed23e84c36c3b50c9a867a04397a3cacf7bd2 /source/blender/blenkernel
parent46f2233a9355ba09aaa9195c4da32a015f02fb8d (diff)
minor changes for mirror modifier, bigger changes coming.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r--source/blender/blenkernel/BKE_cdderivedmesh.h2
-rw-r--r--source/blender/blenkernel/intern/cdderivedmesh.c13
2 files changed, 8 insertions, 7 deletions
diff --git a/source/blender/blenkernel/BKE_cdderivedmesh.h b/source/blender/blenkernel/BKE_cdderivedmesh.h
index e275eb1b4f7..4621583c25c 100644
--- a/source/blender/blenkernel/BKE_cdderivedmesh.h
+++ b/source/blender/blenkernel/BKE_cdderivedmesh.h
@@ -60,7 +60,7 @@ struct DerivedMesh *CDDM_from_mesh(struct Mesh *mesh, struct Object *ob);
DerivedMesh *CDDM_from_BMEditMesh(struct BMEditMesh *em, struct Mesh *me, int use_mdisps);
/* merge verts */
-DerivedMesh *CDDM_merge_verts(DerivedMesh *dm, int *vtargetmap);
+DerivedMesh *CDDM_merge_verts(DerivedMesh *dm, const int *vtargetmap);
/* creates a CDDerivedMesh from the given curve object */
struct DerivedMesh *CDDM_from_curve(struct Object *ob);
diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c
index 34cff1b9b93..164299d4462 100644
--- a/source/blender/blenkernel/intern/cdderivedmesh.c
+++ b/source/blender/blenkernel/intern/cdderivedmesh.c
@@ -2279,7 +2279,7 @@ void CDDM_calc_normals(DerivedMesh *dm)
*
* note, CDDM_recalc_tesselation has to run on the returned DM if you want to access tessfaces.
*/
-DerivedMesh *CDDM_merge_verts(DerivedMesh *dm, int *vtargetmap)
+DerivedMesh *CDDM_merge_verts(DerivedMesh *dm, const int *vtargetmap)
{
CDDerivedMesh *cddm = (CDDerivedMesh*)dm;
CDDerivedMesh *cddm2 = NULL;
@@ -2336,7 +2336,7 @@ DerivedMesh *CDDM_merge_verts(DerivedMesh *dm, int *vtargetmap)
c = 0;
for (i=0; i<dm->numEdgeData; i++, med++) {
- if (med->v1 != med->v2) {
+ if (LIKELY(med->v1 != med->v2)) {
const unsigned int v1 = (vtargetmap[med->v1] != -1) ? vtargetmap[med->v1] : med->v1;
const unsigned int v2 = (vtargetmap[med->v2] != -1) ? vtargetmap[med->v2] : med->v2;
void **eh_p= BLI_edgehash_lookup_p(ehash, v1, v2);
@@ -2366,16 +2366,17 @@ DerivedMesh *CDDM_merge_verts(DerivedMesh *dm, int *vtargetmap)
c = 0;
for (j=0; j<mp->totloop; j++, ml++) {
med = cddm->medge + ml->e;
- if (med->v1 != med->v2) {
+ if (LIKELY(med->v1 != med->v2)) {
+ newl[j+mp->loopstart] = BLI_array_count(mloop);
BLI_array_append(oldl, j+mp->loopstart);
BLI_array_append(mloop, *ml);
- newl[j+mp->loopstart] = BLI_array_count(mloop)-1;
c++;
}
}
-
- if (!c)
+
+ if (UNLIKELY(c == 0)) {
continue;
+ }
mp2 = BLI_array_append_r(mpoly, *mp);
mp2->totloop = c;