X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2F3dengfx%2Flibs%2Flib3ds%2Ftcb.c;fp=src%2F3dengfx%2Flibs%2Flib3ds%2Ftcb.c;h=0000000000000000000000000000000000000000;hb=6c322d339ec9c5063c8f47117633b46e2a8eafd0;hp=6427f973ec739b234a9cd84a4eb5936d5c5d3f8f;hpb=787ad7856f5074db4fe805b15bfca61553895de1;p=summerhack diff --git a/src/3dengfx/libs/lib3ds/tcb.c b/src/3dengfx/libs/lib3ds/tcb.c deleted file mode 100644 index 6427f97..0000000 --- a/src/3dengfx/libs/lib3ds/tcb.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * The 3D Studio File Format Library - * Copyright (C) 1996-2001 by J.E. Hoffmann - * 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: tcb.c,v 1.9 2001/07/07 19:05:30 jeh Exp $ - */ -#define LIB3DS_EXPORT -#include -#include -#include - - -/*! - * \defgroup tcb Tension/Continuity/Bias Splines - * - * \author J.E. Hoffmann - */ - - -/*! - * \ingroup tcb - */ -void -lib3ds_tcb(Lib3dsTcb *p, Lib3dsTcb *pc, Lib3dsTcb *c, Lib3dsTcb *nc, Lib3dsTcb *n, - Lib3dsFloat *ksm, Lib3dsFloat *ksp, Lib3dsFloat *kdm, Lib3dsFloat *kdp) -{ - Lib3dsFloat tm,cm,cp,bm,bp,tmcm,tmcp,cc; - Lib3dsFloat dt,fp,fn; - - if (!pc) { - pc=c; - } - if (!nc) { - nc=c; - } - - fp=fn=1.0f; - if (p&&n) { - dt=0.5f*(Lib3dsFloat)(pc->frame-p->frame+n->frame-nc->frame); - fp=((Lib3dsFloat)(pc->frame-p->frame))/dt; - fn=((Lib3dsFloat)(n->frame-nc->frame))/dt; - cc=(Lib3dsFloat)fabs(c->cont); - fp=fp+cc-cc*fp; - fn=fn+cc-cc*fn; - } - - cm=1.0f-c->cont; - tm=0.5f*(1.0f-c->tens); - cp=2.0f-cm; - bm=1.0f-c->bias; - bp=2.0f-bm; - tmcm=tm*cm; - tmcp=tm*cp; - *ksm=tmcm*bp*fp; - *ksp=tmcp*bm*fp; - *kdm=tmcp*bp*fn; - *kdp=tmcm*bm*fn; -} - - -/*! - * \ingroup tcb - */ -Lib3dsBool -lib3ds_tcb_read(Lib3dsTcb *tcb, Lib3dsIo *io) -{ - Lib3dsWord flags; - - tcb->frame=lib3ds_io_read_intd(io); - tcb->flags=flags=lib3ds_io_read_word(io); - if (flags&LIB3DS_USE_TENSION) { - tcb->tens=lib3ds_io_read_float(io); - } - if (flags&LIB3DS_USE_CONTINUITY) { - tcb->cont=lib3ds_io_read_float(io); - } - if (flags&LIB3DS_USE_BIAS) { - tcb->bias=lib3ds_io_read_float(io); - } - if (flags&LIB3DS_USE_EASE_TO) { - tcb->ease_to=lib3ds_io_read_float(io); - } - if (flags&LIB3DS_USE_EASE_FROM) { - tcb->ease_from=lib3ds_io_read_float(io); - } - if (lib3ds_io_error(io)) { - return(LIB3DS_FALSE); - } - return(LIB3DS_TRUE); -} - - -/*! - * \ingroup tcb - */ -Lib3dsBool -lib3ds_tcb_write(Lib3dsTcb *tcb, Lib3dsIo *io) -{ - lib3ds_io_write_intd(io, tcb->frame); - lib3ds_io_write_word(io, tcb->flags); - if (tcb->flags&LIB3DS_USE_TENSION) { - lib3ds_io_write_float(io, tcb->tens); - } - if (tcb->flags&LIB3DS_USE_CONTINUITY) { - lib3ds_io_write_float(io, tcb->cont); - } - if (tcb->flags&LIB3DS_USE_BIAS) { - lib3ds_io_write_float(io, tcb->bias); - } - if (tcb->flags&LIB3DS_USE_EASE_TO) { - lib3ds_io_write_float(io, tcb->ease_to); - } - if (tcb->flags&LIB3DS_USE_EASE_FROM) { - lib3ds_io_write_float(io, tcb->ease_from); - } - if (lib3ds_io_error(io)) { - return(LIB3DS_FALSE); - } - return(LIB3DS_TRUE); -} - - - -