#ifndef LIB3DS_TRACK_H
#define LIB3DS_TRACK_H
#include "Lib3ds_light.h"
class Lib3ds_track: public Lib3ds_light
{
public:
Lib3ds_track();
protected:
void lib3ds_track_resize(Lib3dsTrack *track, int nkeys);
void pos_key_setup(int n, Lib3dsKey *pp, Lib3dsKey *pc, Lib3dsKey *pn, float *dd, float *ds);
void rot_key_setup(Lib3dsKey *prev, Lib3dsKey *cur, Lib3dsKey *next, float a[4], float b[4]);
void quat_for_index(Lib3dsTrack *track, int index, float q[4]);
int find_index(Lib3dsTrack *track, float t, float *u);
void setup_segment(Lib3dsTrack *track, int index, Lib3dsKey *pp, Lib3dsKey *p0, Lib3dsKey *p1, Lib3dsKey *pn);
void lib3ds_track_eval_bool(Lib3dsTrack *track, int *b, float t);
void track_eval_linear(Lib3dsTrack *track, float *value, float t);
void lib3ds_track_eval_float(Lib3dsTrack *track, float *f, float t);
void lib3ds_track_eval_vector(Lib3dsTrack *track, float v[3], float t);
void lib3ds_track_eval_quat(Lib3dsTrack *track, float q[4], float t);
void tcb_read(Lib3dsKey *key);
void lib3ds_track_read(Lib3dsTrack *track);
};
#endif // LIB3DS_TRACK_H