Old fixes, since 2009 and before! Related to Curve object editmode:

- normals are not being drawn for hidden curves anymore
- even worse: Blender also didn't hide the extrusions or bevels for hidden curves
- outside edit mode, it shows all (as for all other modes)
- (de)select-all now works when 1st (or any) handle was hidden.
This commit is contained in:
2013-01-15 15:42:12 +00:00
parent e20dfbca6d
commit 73c7c10c6e
4 changed files with 56 additions and 15 deletions

View File

@@ -1279,8 +1279,24 @@ void CU_deselect_all(Object *obedit)
ListBase *editnurb = object_editcurve_get(obedit);
if (editnurb) {
selectend_nurb(obedit, FIRST, 0, DESELECT); /* set first control points as unselected */
select_adjacent_cp(editnurb, 1, 1, DESELECT); /* cascade selection */
Nurb *nu;
int a;
for (nu = editnurb->first; nu; nu = nu->next) {
if (nu->bezt) {
BezTriple *bezt;
for (bezt = nu->bezt, a = 0; a < nu->pntsu; a++, bezt++) {
bezt->f1 &= ~SELECT;
bezt->f2 &= ~SELECT;
bezt->f3 &= ~SELECT;
}
}
else if (nu->bp) {
BPoint *bp;
for (bp = nu->bp, a = 0; a < nu->pntsu * nu->pntsv; a++, bp++) {
bp->f1 & ~SELECT;
}
}
}
}
}
@@ -1289,8 +1305,27 @@ void CU_select_all(Object *obedit)
ListBase *editnurb = object_editcurve_get(obedit);
if (editnurb) {
selectend_nurb(obedit, FIRST, 0, SELECT); /* set first control points as unselected */
select_adjacent_cp(editnurb, 1, 1, SELECT); /* cascade selection */
Nurb *nu;
int a;
for (nu = editnurb->first; nu; nu = nu->next) {
if (nu->bezt) {
BezTriple *bezt;
for (bezt = nu->bezt, a = 0; a < nu->pntsu; a++, bezt++) {
if (bezt->hide == 0) {
bezt->f1 |= SELECT;
bezt->f2 |= SELECT;
bezt->f3 |= SELECT;
}
}
}
else if (nu->bp) {
BPoint *bp;
for (bp = nu->bp, a = 0; a < nu->pntsu * nu->pntsv; a++, bp++) {
if (bp->hide == 0)
bp->f1 |= SELECT;
}
}
}
}
}