/*! * \ingroup tracks */ Lib3dsBool lib3ds_lin3_track_read(Lib3dsLin3Track *track, Lib3dsIo *io) { int keys; int i,j; Lib3dsLin3Key *k; track->flags=lib3ds_io_read_word(io); lib3ds_io_read_dword(io); lib3ds_io_read_dword(io); keys=lib3ds_io_read_intd(io); for (i=0; i<keys; ++i) { k=lib3ds_lin3_key_new(); if (!lib3ds_tcb_read(&k->tcb, io)) { return(LIB3DS_FALSE); } for (j=0; j<3; ++j) { k->value[j]=lib3ds_io_read_float(io); } lib3ds_lin3_track_insert(track, k); } lib3ds_lin3_track_setup(track); return(LIB3DS_TRUE); }
/*! * \ingroup tracks */ Lib3dsBool lib3ds_quat_track_read(Lib3dsQuatTrack *track, Lib3dsIo *io) { int keys; int i,j; Lib3dsQuatKey *p,*k; track->flags=lib3ds_io_read_word(io); lib3ds_io_read_dword(io); lib3ds_io_read_dword(io); keys=lib3ds_io_read_intd(io); for (p=0,i=0; i<keys; p=k,++i) { k=lib3ds_quat_key_new(); if (!lib3ds_tcb_read(&k->tcb, io)) { return(LIB3DS_FALSE); } k->angle=lib3ds_io_read_float(io); for (j=0; j<3; ++j) { k->axis[j]=lib3ds_io_read_float(io); } lib3ds_quat_track_insert(track, k); } lib3ds_quat_track_setup(track); return(LIB3DS_TRUE); }
/*! * \ingroup tracks */ Lib3dsBool lib3ds_morph_track_read(Lib3dsMorphTrack *track, Lib3dsIo *io) { /* This function was written by Stephane Denis on 5-18-04 */ int i; Lib3dsMorphKey *k = 0; Lib3dsMorphKey *pk = 0; int keys; track->flags=lib3ds_io_read_word(io); lib3ds_io_read_dword(io); lib3ds_io_read_dword(io); keys=lib3ds_io_read_intd(io); for (i=0; i<keys; ++i) { k=lib3ds_morph_key_new(); if (!lib3ds_tcb_read(&k->tcb, io)) { return(LIB3DS_FALSE); } if (!lib3ds_io_read_string(io, k->name, 11)) { return(LIB3DS_FALSE); } if (!track->keyL) track->keyL = k; else pk->next = k; pk = k; } return(LIB3DS_TRUE); }
/*! * \ingroup tracks */ Lib3dsBool lib3ds_bool_track_read(Lib3dsBoolTrack *track, Lib3dsIo *io) { int keys; int i; Lib3dsBoolKey *k; track->flags=lib3ds_io_read_word(io); lib3ds_io_read_dword(io); lib3ds_io_read_dword(io); keys=lib3ds_io_read_intd(io); for (i=0; i<keys; ++i) { k=lib3ds_bool_key_new(); if (!lib3ds_tcb_read(&k->tcb, io)) { return(LIB3DS_FALSE); } lib3ds_bool_track_insert(track, k); } return(LIB3DS_TRUE); }