forked from bartvdbraak/blender
Two more fixes in Transform:
- Ipokeys didnt have 'selected' flag, so were not included in center calculus - Multiple keys transform didn't apply this center even... ALso took extra work time to add credits in splash. Frédéric Van der Essen!
This commit is contained in:
parent
f26e4ca150
commit
1d7a8cf86f
File diff suppressed because it is too large
Load Diff
@ -1150,7 +1150,13 @@ void ElementResize(TransInfo *t, TransData *td, float mat[3][3]) {
|
||||
Mat3MulVecfl(td->smtx, vec);
|
||||
}
|
||||
|
||||
VecAddf(td->loc, td->iloc, vec);
|
||||
if(td->tdi) {
|
||||
TransDataIpokey *tdi= td->tdi;
|
||||
add_tdi_poin(tdi->locx, tdi->oldloc, vec[0]);
|
||||
add_tdi_poin(tdi->locy, tdi->oldloc+1, vec[1]);
|
||||
add_tdi_poin(tdi->locz, tdi->oldloc+2, vec[2]);
|
||||
}
|
||||
else VecAddf(td->loc, td->iloc, vec);
|
||||
}
|
||||
|
||||
int Resize(TransInfo *t, short mval[2])
|
||||
@ -1356,6 +1362,7 @@ static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3]) {
|
||||
}
|
||||
else {
|
||||
/* translation */
|
||||
|
||||
VecSubf(vec, td->center, t->center);
|
||||
Mat3MulVecfl(mat, vec);
|
||||
VecAddf(vec, vec, t->center);
|
||||
@ -1363,7 +1370,13 @@ static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3]) {
|
||||
VecSubf(vec, vec, td->center);
|
||||
Mat3MulVecfl(td->smtx, vec);
|
||||
|
||||
VecAddf(td->loc, td->iloc, vec);
|
||||
if(td->tdi) {
|
||||
TransDataIpokey *tdi= td->tdi;
|
||||
add_tdi_poin(tdi->locx, tdi->oldloc, vec[0]);
|
||||
add_tdi_poin(tdi->locy, tdi->oldloc+1, vec[1]);
|
||||
add_tdi_poin(tdi->locz, tdi->oldloc+2, vec[2]);
|
||||
}
|
||||
else VecAddf(td->loc, td->iloc, vec);
|
||||
|
||||
if(td->flag & TD_USEQUAT) {
|
||||
Mat3MulSerie(fmat, td->mtx, mat, td->smtx, 0, 0, 0, 0, 0);
|
||||
|
@ -2087,6 +2087,8 @@ static void createTransObject(TransInfo *t)
|
||||
do_ob_ipo(ob);
|
||||
ObjectToTransData(td, ob); // does where_is_object()
|
||||
|
||||
td->flag= TD_SELECTED;
|
||||
|
||||
td->tdi= MEM_callocN(sizeof(TransDataIpokey), "TransDataIpokey");
|
||||
/* also does tdi->flag and oldvals, needs to be after ob_to_transob()! */
|
||||
ipokey_to_transdata(ik, td);
|
||||
@ -2102,6 +2104,8 @@ static void createTransObject(TransInfo *t)
|
||||
|
||||
CFRA= (short)cfraont;
|
||||
ob->ipoflag= ipoflag;
|
||||
|
||||
where_is_object(ob); // restore
|
||||
}
|
||||
else {
|
||||
ObjectToTransData(td, ob);
|
||||
|
Loading…
Reference in New Issue
Block a user