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:
Ton Roosendaal 2005-05-29 23:21:56 +00:00
parent f26e4ca150
commit 1d7a8cf86f
3 changed files with 2878 additions and 2147 deletions

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);