# Keyframing Tracks

## Functions

Lib3dsBoolKey * | lib3ds_bool_key_new ()
void | lib3ds_bool_key_free (Lib3dsBoolKey *key)
void | lib3ds_bool_track_free_keys (Lib3dsBoolTrack *track)
void | lib3ds_bool_track_insert (Lib3dsBoolTrack *track, Lib3dsBoolKey *key)
void | lib3ds_bool_track_remove (Lib3dsBoolTrack *track, Lib3dsIntd frame)
void | lib3ds_bool_track_eval (Lib3dsBoolTrack *track, Lib3dsBool *p, Lib3dsFloat t)
Lib3dsBool | lib3ds_bool_track_read (Lib3dsBoolTrack *track, FILE *f)
Lib3dsBool | lib3ds_bool_track_write (Lib3dsBoolTrack *track, FILE *f)
Lib3dsLin1Key * | lib3ds_lin1_key_new ()
void | lib3ds_lin1_key_free (Lib3dsLin1Key *key)
void | lib3ds_lin1_track_free_keys (Lib3dsLin1Track *track)
void | lib3ds_lin1_key_setup (Lib3dsLin1Key *p, Lib3dsLin1Key *cp, Lib3dsLin1Key *c, Lib3dsLin1Key *cn, Lib3dsLin1Key *n)
void | lib3ds_lin1_track_setup (Lib3dsLin1Track *track)
void | lib3ds_lin1_track_insert (Lib3dsLin1Track *track, Lib3dsLin1Key *key)
void | lib3ds_lin1_track_remove (Lib3dsLin1Track *track, Lib3dsIntd frame)
void | lib3ds_lin1_track_eval (Lib3dsLin1Track *track, Lib3dsFloat *p, Lib3dsFloat t)
Lib3dsBool | lib3ds_lin1_track_read (Lib3dsLin1Track *track, FILE *f)
Lib3dsBool | lib3ds_lin1_track_write (Lib3dsLin1Track *track, FILE *f)
Lib3dsLin3Key * | lib3ds_lin3_key_new ()
void | lib3ds_lin3_key_free (Lib3dsLin3Key *key)
void | lib3ds_lin3_track_free_keys (Lib3dsLin3Track *track)
void | lib3ds_lin3_key_setup (Lib3dsLin3Key *p, Lib3dsLin3Key *cp, Lib3dsLin3Key *c, Lib3dsLin3Key *cn, Lib3dsLin3Key *n)
void | lib3ds_lin3_track_setup (Lib3dsLin3Track *track)
void | lib3ds_lin3_track_insert (Lib3dsLin3Track *track, Lib3dsLin3Key *key)
void | lib3ds_lin3_track_remove (Lib3dsLin3Track *track, Lib3dsIntd frame)
void | lib3ds_lin3_track_eval (Lib3dsLin3Track *track, Lib3dsVector p, Lib3dsFloat t)
Lib3dsBool | lib3ds_lin3_track_read (Lib3dsLin3Track *track, FILE *f)
Lib3dsBool | lib3ds_lin3_track_write (Lib3dsLin3Track *track, FILE *f)
Lib3dsQuatKey * | lib3ds_quat_key_new ()
void | lib3ds_quat_key_free (Lib3dsQuatKey *key)
void | lib3ds_quat_track_free_keys (Lib3dsQuatTrack *track)
void | lib3ds_quat_key_setup (Lib3dsQuatKey *p, Lib3dsQuatKey *cp, Lib3dsQuatKey *c, Lib3dsQuatKey *cn, Lib3dsQuatKey *n)
void | lib3ds_quat_track_setup (Lib3dsQuatTrack *track)
void | lib3ds_quat_track_insert (Lib3dsQuatTrack *track, Lib3dsQuatKey *key)
void | lib3ds_quat_track_remove (Lib3dsQuatTrack *track, Lib3dsIntd frame)
void | lib3ds_quat_track_eval (Lib3dsQuatTrack *track, Lib3dsQuat q, Lib3dsFloat t)
Lib3dsBool | lib3ds_quat_track_read (Lib3dsQuatTrack *track, FILE *f)
Lib3dsBool | lib3ds_quat_track_write (Lib3dsQuatTrack *track, FILE *f)
Lib3dsMorphKey * | lib3ds_morph_key_new ()
void | lib3ds_morph_key_free (Lib3dsMorphKey *key)
void | lib3ds_morph_track_free_keys (Lib3dsMorphTrack *track)
void | lib3ds_morph_track_insert (Lib3dsMorphTrack *track, Lib3dsMorphKey *key)
void | lib3ds_morph_track_remove (Lib3dsMorphTrack *track, Lib3dsIntd frame)
void | lib3ds_morph_track_eval (Lib3dsMorphTrack *track, char *p, Lib3dsFloat t)
Lib3dsBool | lib3ds_morph_track_read (Lib3dsMorphTrack *, FILE *)
Lib3dsBool | lib3ds_morph_track_write (Lib3dsMorphTrack *, FILE *)

## Detailed Description

Author:
  J.E. Hoffmann <je-h@gmx.net>

## Function Documentation

void lib3ds_bool_key_free | ( | Lib3dsBoolKey * | key | ) |

Lib3dsBoolKey* lib3ds_bool_key_new | ( |  | ) |

void lib3ds_bool_track_eval | ( | Lib3dsBoolTrack * | track,
|  | Lib3dsBool * | p,
|  | Lib3dsFloat | t
| ) |

void lib3ds_bool_track_free_keys | ( | Lib3dsBoolTrack * | track | ) |

void lib3ds_bool_track_insert | ( | Lib3dsBoolTrack * | track,
|  | Lib3dsBoolKey * | key
| ) |

Lib3dsBool lib3ds_bool_track_read | ( | Lib3dsBoolTrack * | track,
|  | FILE * | f
| ) |

void lib3ds_bool_track_remove | ( | Lib3dsBoolTrack * | track,
|  | Lib3dsIntd | frame
| ) |

Lib3dsBool lib3ds_bool_track_write | ( | Lib3dsBoolTrack * | track,
|  | FILE * | f
| ) |

void lib3ds_lin1_key_free | ( | Lib3dsLin1Key * | key | ) |

Lib3dsLin1Key* lib3ds_lin1_key_new | ( |  | ) |

void lib3ds_lin1_key_setup | ( | Lib3dsLin1Key * | p,
|  | Lib3dsLin1Key * | cp,
|  | Lib3dsLin1Key * | c,
|  | Lib3dsLin1Key * | cn,
|  | Lib3dsLin1Key * | n
| ) |

void lib3ds_lin1_track_eval | ( | Lib3dsLin1Track * | track,
|  | Lib3dsFloat * | p,
|  | Lib3dsFloat | t
| ) |

void lib3ds_lin1_track_free_keys | ( | Lib3dsLin1Track * | track | ) |

void lib3ds_lin1_track_insert | ( | Lib3dsLin1Track * | track,
|  | Lib3dsLin1Key * | key
| ) |

Lib3dsBool lib3ds_lin1_track_read | ( | Lib3dsLin1Track * | track,
|  | FILE * | f
| ) |

void lib3ds_lin1_track_remove | ( | Lib3dsLin1Track * | track,
|  | Lib3dsIntd | frame
| ) |

void lib3ds_lin1_track_setup | ( | Lib3dsLin1Track * | track | ) |

Lib3dsBool lib3ds_lin1_track_write | ( | Lib3dsLin1Track * | track,
|  | FILE * | f
| ) |

void lib3ds_lin3_key_free | ( | Lib3dsLin3Key * | key | ) |

Lib3dsLin3Key* lib3ds_lin3_key_new | ( |  | ) |

void lib3ds_lin3_key_setup | ( | Lib3dsLin3Key * | p,
|  | Lib3dsLin3Key * | cp,
|  | Lib3dsLin3Key * | c,
|  | Lib3dsLin3Key * | cn,
|  | Lib3dsLin3Key * | n
| ) |

void lib3ds_lin3_track_eval | ( | Lib3dsLin3Track * | track,
|  | Lib3dsVector | p,
|  | Lib3dsFloat | t
| ) |

void lib3ds_lin3_track_free_keys | ( | Lib3dsLin3Track * | track | ) |

void lib3ds_lin3_track_insert | ( | Lib3dsLin3Track * | track,
|  | Lib3dsLin3Key * | key
| ) |

Lib3dsBool lib3ds_lin3_track_read | ( | Lib3dsLin3Track * | track,
|  | FILE * | f
| ) |

void lib3ds_lin3_track_remove | ( | Lib3dsLin3Track * | track,
|  | Lib3dsIntd | frame
| ) |

void lib3ds_lin3_track_setup | ( | Lib3dsLin3Track * | track | ) |

Lib3dsBool lib3ds_lin3_track_write | ( | Lib3dsLin3Track * | track,
|  | FILE * | f
| ) |

void lib3ds_morph_key_free | ( | Lib3dsMorphKey * | key | ) |

Lib3dsMorphKey* lib3ds_morph_key_new | ( |  | ) |

void lib3ds_morph_track_eval | ( | Lib3dsMorphTrack * | track,
|  | char * | p,
|  | Lib3dsFloat | t
| ) |

void lib3ds_morph_track_free_keys | ( | Lib3dsMorphTrack * | track | ) |

void lib3ds_morph_track_insert | ( | Lib3dsMorphTrack * | track,
|  | Lib3dsMorphKey * | key
| ) |

Lib3dsBool lib3ds_morph_track_read | ( | Lib3dsMorphTrack * | ,
|  | FILE * |
| ) |

void lib3ds_morph_track_remove | ( | Lib3dsMorphTrack * | track,
|  | Lib3dsIntd | frame
| ) |

Lib3dsBool lib3ds_morph_track_write | ( | Lib3dsMorphTrack * | ,
|  | FILE * |
| ) |

void lib3ds_quat_key_free | ( | Lib3dsQuatKey * | key | ) |

Lib3dsQuatKey* lib3ds_quat_key_new | ( |  | ) |

void lib3ds_quat_key_setup | ( | Lib3dsQuatKey * | p,
|  | Lib3dsQuatKey * | cp,
|  | Lib3dsQuatKey * | c,
|  | Lib3dsQuatKey * | cn,
|  | Lib3dsQuatKey * | n
| ) |

void lib3ds_quat_track_eval | ( | Lib3dsQuatTrack * | track,
|  | Lib3dsQuat | q,
|  | Lib3dsFloat | t
| ) |

void lib3ds_quat_track_free_keys | ( | Lib3dsQuatTrack * | track | ) |

void lib3ds_quat_track_insert | ( | Lib3dsQuatTrack * | track,
|  | Lib3dsQuatKey * | key
| ) |

Lib3dsBool lib3ds_quat_track_read | ( | Lib3dsQuatTrack * | track,
|  | FILE * | f
| ) |

void lib3ds_quat_track_remove | ( | Lib3dsQuatTrack * | track,
|  | Lib3dsIntd | frame
| ) |

void lib3ds_quat_track_setup | ( | Lib3dsQuatTrack * | track | ) |

Lib3dsBool lib3ds_quat_track_write | ( | Lib3dsQuatTrack * | track,
|  | FILE * | f
| ) |