diff options
author | Sarah Smith <sarah.j.smith@nokia.com> | 2011-03-09 17:08:07 +1000 |
---|---|---|
committer | Sarah Smith <sarah.j.smith@nokia.com> | 2011-03-09 17:43:07 +1000 |
commit | b87a08f5292069facf9b427cb43a675d43578293 (patch) | |
tree | af3efc8960a3e556e15b7b66f81821b01297c366 /3rdparty/lib3ds/tracks.h |
Add files ported from research/qt3d
Fill repo with some of the files from the research/qt3d project. At
present the new project builds under MacOSX. To-dos include getting it
building under linux, windows, harmattan and maemo/meego; updating the
documentation to reflect the new QtQuick focus; and fixing the issues
with private headers.
Diffstat (limited to '3rdparty/lib3ds/tracks.h')
-rw-r--r-- | 3rdparty/lib3ds/tracks.h | 209 |
1 files changed, 209 insertions, 0 deletions
diff --git a/3rdparty/lib3ds/tracks.h b/3rdparty/lib3ds/tracks.h new file mode 100644 index 000000000..7783e51c5 --- /dev/null +++ b/3rdparty/lib3ds/tracks.h @@ -0,0 +1,209 @@ +/* -*- c -*- */ +#ifndef INCLUDED_LIB3DS_TRACKS_H +#define INCLUDED_LIB3DS_TRACKS_H +/* + * The 3D Studio File Format Library + * Copyright (C) 1996-2007 by Jan Eric Kyprianidis <www.kyprianidis.com> + * All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public + * License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * $Id: tracks.h,v 1.11 2007/06/20 17:04:09 jeh Exp $ + */ + +#ifndef INCLUDED_LIB3DS_TCB_H +#include <lib3ds/tcb.h> +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Track flags + * \ingroup tracks + */ +typedef enum { + LIB3DS_REPEAT =0x0001, + LIB3DS_SMOOTH =0x0002, + LIB3DS_LOCK_X =0x0008, + LIB3DS_LOCK_Y =0x0010, + LIB3DS_LOCK_Z =0x0020, + LIB3DS_UNLINK_X =0x0100, + LIB3DS_UNLINK_Y =0x0200, + LIB3DS_UNLINK_Z =0x0400 +} Lib3dsTrackFlags; + +/** + * Boolean track key + * \ingroup tracks + */ +struct Lib3dsBoolKey { + Lib3dsTcb tcb; + Lib3dsBoolKey *next; +}; + +/** + * Boolean track + * \ingroup tracks + */ +struct Lib3dsBoolTrack { + Lib3dsDword flags; + Lib3dsBoolKey *keyL; +}; + +/** + * Floating-point track key + * \ingroup tracks + */ +struct Lib3dsLin1Key { + Lib3dsTcb tcb; + Lib3dsLin1Key *next; + Lib3dsFloat value; + Lib3dsFloat dd; + Lib3dsFloat ds; +}; + +/** + * Floating-point track + * \ingroup tracks + */ +struct Lib3dsLin1Track { + Lib3dsDword flags; + Lib3dsLin1Key *keyL; +}; + +/** + * Vector track key + * \ingroup tracks + */ +struct Lib3dsLin3Key { + Lib3dsTcb tcb; + Lib3dsLin3Key *next; + Lib3dsVector value; + Lib3dsVector dd; + Lib3dsVector ds; +}; + +/** + * Vector track + * \ingroup tracks + */ +struct Lib3dsLin3Track { + Lib3dsDword flags; + Lib3dsLin3Key *keyL; +}; + +/** + * Rotation track key + * \ingroup tracks + */ +struct Lib3dsQuatKey { + Lib3dsTcb tcb; + Lib3dsQuatKey *next; + Lib3dsVector axis; + Lib3dsFloat angle; + Lib3dsQuat q; + Lib3dsQuat dd; + Lib3dsQuat ds; +}; + +/** + * Rotation track + * \ingroup tracks + */ +struct Lib3dsQuatTrack { + Lib3dsDword flags; + Lib3dsQuatKey *keyL; +}; + +/** + * Morph track key + * \ingroup tracks + */ +struct Lib3dsMorphKey { + Lib3dsTcb tcb; + Lib3dsMorphKey *next; + char name[64]; +}; + +/** + * Morph track + * \ingroup tracks + */ +struct Lib3dsMorphTrack { + Lib3dsDword flags; + Lib3dsMorphKey *keyL; +}; + +extern LIB3DSAPI Lib3dsBoolKey* lib3ds_bool_key_new(); +extern LIB3DSAPI void lib3ds_bool_key_free(Lib3dsBoolKey* key); +extern LIB3DSAPI void lib3ds_bool_track_free_keys(Lib3dsBoolTrack *track); +extern LIB3DSAPI void lib3ds_bool_track_insert(Lib3dsBoolTrack *track, Lib3dsBoolKey* key); +extern LIB3DSAPI void lib3ds_bool_track_remove(Lib3dsBoolTrack *track, Lib3dsIntd frame); +extern LIB3DSAPI void lib3ds_bool_track_eval(Lib3dsBoolTrack *track, Lib3dsBool *p, Lib3dsFloat t); +extern LIB3DSAPI Lib3dsBool lib3ds_bool_track_read(Lib3dsBoolTrack *track, Lib3dsIo *io); +extern LIB3DSAPI Lib3dsBool lib3ds_bool_track_write(Lib3dsBoolTrack *track, Lib3dsIo *io); + +extern LIB3DSAPI Lib3dsLin1Key* lib3ds_lin1_key_new(); +extern LIB3DSAPI void lib3ds_lin1_key_free(Lib3dsLin1Key* key); +extern LIB3DSAPI void lib3ds_lin1_track_free_keys(Lib3dsLin1Track *track); +extern LIB3DSAPI void lib3ds_lin1_key_setup(Lib3dsLin1Key *p, Lib3dsLin1Key *cp, Lib3dsLin1Key *c, + Lib3dsLin1Key *cn, Lib3dsLin1Key *n); +extern LIB3DSAPI void lib3ds_lin1_track_setup(Lib3dsLin1Track *track); +extern LIB3DSAPI void lib3ds_lin1_track_insert(Lib3dsLin1Track *track, Lib3dsLin1Key *key); +extern LIB3DSAPI void lib3ds_lin1_track_remove(Lib3dsLin1Track *track, Lib3dsIntd frame); +extern LIB3DSAPI void lib3ds_lin1_track_eval(Lib3dsLin1Track *track, Lib3dsFloat *p, Lib3dsFloat t); +extern LIB3DSAPI Lib3dsBool lib3ds_lin1_track_read(Lib3dsLin1Track *track, Lib3dsIo *io); +extern LIB3DSAPI Lib3dsBool lib3ds_lin1_track_write(Lib3dsLin1Track *track, Lib3dsIo *io); + +extern LIB3DSAPI Lib3dsLin3Key* lib3ds_lin3_key_new(); +extern LIB3DSAPI void lib3ds_lin3_key_free(Lib3dsLin3Key* key); +extern LIB3DSAPI void lib3ds_lin3_track_free_keys(Lib3dsLin3Track *track); +extern LIB3DSAPI void lib3ds_lin3_key_setup(Lib3dsLin3Key *p, Lib3dsLin3Key *cp, Lib3dsLin3Key *c, + Lib3dsLin3Key *cn, Lib3dsLin3Key *n); +extern LIB3DSAPI void lib3ds_lin3_track_setup(Lib3dsLin3Track *track); +extern LIB3DSAPI void lib3ds_lin3_track_insert(Lib3dsLin3Track *track, Lib3dsLin3Key *key); +extern LIB3DSAPI void lib3ds_lin3_track_remove(Lib3dsLin3Track *track, Lib3dsIntd frame); +extern LIB3DSAPI void lib3ds_lin3_track_eval(Lib3dsLin3Track *track, Lib3dsVector p, Lib3dsFloat t); +extern LIB3DSAPI Lib3dsBool lib3ds_lin3_track_read(Lib3dsLin3Track *track, Lib3dsIo *io); +extern LIB3DSAPI Lib3dsBool lib3ds_lin3_track_write(Lib3dsLin3Track *track, Lib3dsIo *io); + +extern LIB3DSAPI Lib3dsQuatKey* lib3ds_quat_key_new(); +extern LIB3DSAPI void lib3ds_quat_key_free(Lib3dsQuatKey* key); +extern LIB3DSAPI void lib3ds_quat_track_free_keys(Lib3dsQuatTrack *track); +extern LIB3DSAPI void lib3ds_quat_key_setup(Lib3dsQuatKey *p, Lib3dsQuatKey *cp, Lib3dsQuatKey *c, + Lib3dsQuatKey *cn, Lib3dsQuatKey *n); +extern LIB3DSAPI void lib3ds_quat_track_setup(Lib3dsQuatTrack *track); +extern LIB3DSAPI void lib3ds_quat_track_insert(Lib3dsQuatTrack *track, Lib3dsQuatKey *key); +extern LIB3DSAPI void lib3ds_quat_track_remove(Lib3dsQuatTrack *track, Lib3dsIntd frame); +extern LIB3DSAPI void lib3ds_quat_track_eval(Lib3dsQuatTrack *track, Lib3dsQuat p, Lib3dsFloat t); +extern LIB3DSAPI Lib3dsBool lib3ds_quat_track_read(Lib3dsQuatTrack *track, Lib3dsIo *io); +extern LIB3DSAPI Lib3dsBool lib3ds_quat_track_write(Lib3dsQuatTrack *track, Lib3dsIo *io); + +extern LIB3DSAPI Lib3dsMorphKey* lib3ds_morph_key_new(); +extern LIB3DSAPI void lib3ds_morph_key_free(Lib3dsMorphKey* key); +extern LIB3DSAPI void lib3ds_morph_track_free_keys(Lib3dsMorphTrack *track); +extern LIB3DSAPI void lib3ds_morph_track_insert(Lib3dsMorphTrack *track, Lib3dsMorphKey *key); +extern LIB3DSAPI void lib3ds_morph_track_remove(Lib3dsMorphTrack *track, Lib3dsIntd frame); +extern LIB3DSAPI void lib3ds_morph_track_eval(Lib3dsMorphTrack *track, char *p, Lib3dsFloat t); +extern LIB3DSAPI Lib3dsBool lib3ds_morph_track_read(Lib3dsMorphTrack *track, Lib3dsIo *io); +extern LIB3DSAPI Lib3dsBool lib3ds_morph_track_write(Lib3dsMorphTrack *track, Lib3dsIo *io); + +#ifdef __cplusplus +} +#endif +#endif + |