bool mouse_lattice(bContext *C, const int mval[2], bool extend, bool deselect, bool toggle) { ViewContext vc; BPoint *bp = NULL; view3d_set_viewcontext(C, &vc); bp = findnearestLattvert(&vc, mval, TRUE); if (bp) { if (extend) { bp->f1 |= SELECT; } else if (deselect) { bp->f1 &= ~SELECT; } else if (toggle) { bp->f1 ^= SELECT; /* swap */ } else { ED_setflagsLatt(vc.obedit, 0); bp->f1 |= SELECT; } WM_event_add_notifier(C, NC_GEOM | ND_SELECT, vc.obedit->data); return true; } return false; }
bool ED_lattice_select_pick(bContext *C, const int mval[2], bool extend, bool deselect, bool toggle) { ViewContext vc; BPoint *bp = NULL; Lattice *lt; view3d_set_viewcontext(C, &vc); lt = ((Lattice *)vc.obedit->data)->editlatt->latt; bp = findnearestLattvert(&vc, mval, true); if (bp) { if (extend) { bp->f1 |= SELECT; } else if (deselect) { bp->f1 &= ~SELECT; } else if (toggle) { bp->f1 ^= SELECT; /* swap */ } else { ED_lattice_flags_set(vc.obedit, 0); bp->f1 |= SELECT; } if (bp->f1 & SELECT) { lt->actbp = bp - lt->def; } else { lt->actbp = LT_ACTBP_NONE; } WM_event_add_notifier(C, NC_GEOM | ND_SELECT, vc.obedit->data); return true; } return false; }
int mouse_lattice(bContext *C, const int mval[2], int extend) { ViewContext vc; BPoint *bp= NULL; view3d_set_viewcontext(C, &vc); bp= findnearestLattvert(&vc, mval, 1); if(bp) { if(extend==0) { ED_setflagsLatt(vc.obedit, 0); bp->f1 |= SELECT; } else bp->f1 ^= SELECT; /* swap */ WM_event_add_notifier(C, NC_GEOM|ND_SELECT, vc.obedit->data); return 1; } return 0; }