code cleanup: quiet -Wshadow warning, var name changes for splice functions and add assert for BM_edge_splice() when edges don't use the same vertices.
This commit is contained in:
parent
a7a723283b
commit
23d43396ff
@ -1805,7 +1805,7 @@ BMFace *bmesh_jfke(BMesh *bm, BMFace *f1, BMFace *f2, BMEdge *e)
|
||||
* where \a v and \a vtarget are connected by an edge
|
||||
* (assert checks for this case).
|
||||
*/
|
||||
int BM_vert_splice(BMesh *bm, BMVert *v, BMVert *vtarget)
|
||||
int BM_vert_splice(BMesh *bm, BMVert *v, BMVert *v_target)
|
||||
{
|
||||
BMEdge *e;
|
||||
|
||||
@ -1813,7 +1813,7 @@ int BM_vert_splice(BMesh *bm, BMVert *v, BMVert *vtarget)
|
||||
int i, loops_tot;
|
||||
|
||||
/* verts already spliced */
|
||||
if (v == vtarget) {
|
||||
if (v == v_target) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -1821,7 +1821,7 @@ int BM_vert_splice(BMesh *bm, BMVert *v, BMVert *vtarget)
|
||||
loops = BM_iter_as_arrayN(bm, BM_LOOPS_OF_VERT, v, &loops_tot);
|
||||
if (loops) {
|
||||
for (i = 0; i < loops_tot; i++) {
|
||||
loops[i]->v = vtarget;
|
||||
loops[i]->v = v_target;
|
||||
}
|
||||
MEM_freeN(loops);
|
||||
}
|
||||
@ -1829,13 +1829,13 @@ int BM_vert_splice(BMesh *bm, BMVert *v, BMVert *vtarget)
|
||||
/* move all the edges from v's disk to vtarget's disk */
|
||||
while ((e = v->e)) {
|
||||
bmesh_disk_edge_remove(e, v);
|
||||
bmesh_edge_swapverts(e, v, vtarget);
|
||||
bmesh_disk_edge_append(e, vtarget);
|
||||
bmesh_edge_swapverts(e, v, v_target);
|
||||
bmesh_disk_edge_append(e, v_target);
|
||||
BLI_assert(e->v1 != e->v2);
|
||||
}
|
||||
|
||||
BM_CHECK_ELEMENT(v);
|
||||
BM_CHECK_ELEMENT(vtarget);
|
||||
BM_CHECK_ELEMENT(v_target);
|
||||
|
||||
/* v is unused now, and can be killed */
|
||||
BM_vert_kill(bm, v);
|
||||
@ -2001,27 +2001,32 @@ int BM_vert_separate(BMesh *bm, BMVert *v, BMVert ***r_vout, int *r_vout_len,
|
||||
*
|
||||
* \note Edges must already have the same vertices.
|
||||
*/
|
||||
int BM_edge_splice(BMesh *bm, BMEdge *e, BMEdge *etarget)
|
||||
int BM_edge_splice(BMesh *bm, BMEdge *e, BMEdge *e_target)
|
||||
{
|
||||
BMLoop *l;
|
||||
|
||||
if (!BM_vert_in_edge(e, etarget->v1) || !BM_vert_in_edge(e, etarget->v2)) {
|
||||
if (!BM_vert_in_edge(e, e_target->v1) || !BM_vert_in_edge(e, e_target->v2)) {
|
||||
/* not the same vertices can't splice */
|
||||
|
||||
/* the caller should really make sure this doesn't happen ever
|
||||
* so assert on release builds */
|
||||
BLI_assert(0);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
while (e->l) {
|
||||
l = e->l;
|
||||
BLI_assert(BM_vert_in_edge(etarget, l->v));
|
||||
BLI_assert(BM_vert_in_edge(etarget, l->next->v));
|
||||
BLI_assert(BM_vert_in_edge(e_target, l->v));
|
||||
BLI_assert(BM_vert_in_edge(e_target, l->next->v));
|
||||
bmesh_radial_loop_remove(l, e);
|
||||
bmesh_radial_append(etarget, l);
|
||||
bmesh_radial_append(e_target, l);
|
||||
}
|
||||
|
||||
BLI_assert(bmesh_radial_length(e->l) == 0);
|
||||
|
||||
BM_CHECK_ELEMENT(e);
|
||||
BM_CHECK_ELEMENT(etarget);
|
||||
BM_CHECK_ELEMENT(e_target);
|
||||
|
||||
/* removes from disks too */
|
||||
BM_edge_kill(bm, e);
|
||||
|
@ -223,7 +223,6 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
||||
const int numEdges = dm->getNumEdges(dm);
|
||||
const int numFaces = dm->getNumPolys(dm);
|
||||
int numLoops = 0, newLoops = 0, newFaces = 0, newEdges = 0;
|
||||
int j;
|
||||
|
||||
/* only use material offsets if we have 2 or more materials */
|
||||
const short mat_nr_max = ob->totcol > 1 ? ob->totcol - 1 : 0;
|
||||
@ -292,9 +291,11 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
||||
}
|
||||
|
||||
for (i = 0, mp = orig_mpoly; i < numFaces; i++, mp++) {
|
||||
MLoop *ml = orig_mloop + mp->loopstart;
|
||||
unsigned int ml_v1;
|
||||
unsigned int ml_v2;
|
||||
int j;
|
||||
|
||||
ml = orig_mloop + mp->loopstart;
|
||||
|
||||
for (j = 0, ml_v1 = ml->v, ml_v2 = ml[mp->totloop - 1].v;
|
||||
j < mp->totloop;
|
||||
@ -376,6 +377,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
||||
for (i = 0; i < dm->numPolyData; i++, mp++) {
|
||||
MLoop *ml2;
|
||||
int e;
|
||||
int j;
|
||||
|
||||
ml2 = mloop + mp->loopstart + dm->numLoopData;
|
||||
for (j = 0; j < mp->totloop; j++) {
|
||||
@ -591,6 +593,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
||||
|
||||
int *origindex_edge;
|
||||
int *orig_ed;
|
||||
int j;
|
||||
|
||||
/* add faces & edges */
|
||||
origindex_edge = result->getEdgeDataArray(result, CD_ORIGINDEX);
|
||||
@ -715,13 +718,13 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
||||
for (i = 0; i < newEdges; i++, ed++) {
|
||||
float nor_cpy[3];
|
||||
short *nor_short;
|
||||
int j;
|
||||
int k;
|
||||
|
||||
/* note, only the first vertex (lower half of the index) is calculated */
|
||||
normalize_v3_v3(nor_cpy, edge_vert_nos[ed->v1]);
|
||||
|
||||
for (j = 0; j < 2; j++) { /* loop over both verts of the edge */
|
||||
nor_short = mvert[*(&ed->v1 + j)].no;
|
||||
for (k = 0; k < 2; k++) { /* loop over both verts of the edge */
|
||||
nor_short = mvert[*(&ed->v1 + k)].no;
|
||||
normal_short_to_float_v3(nor, nor_short);
|
||||
add_v3_v3(nor, nor_cpy);
|
||||
normalize_v3(nor);
|
||||
|
Loading…
Reference in New Issue
Block a user