X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2F3dengfx%2Flibs%2Flib3ds%2Fease.c;fp=src%2F3dengfx%2Flibs%2Flib3ds%2Fease.c;h=745bf109acd6f4f30178c30f776b73b6a710c012;hb=6e23259dbabaeb1711a2a5ca25b9cb421f693759;hp=0000000000000000000000000000000000000000;hpb=fe068fa879814784c45e0cb2e65dac489e8f5594;p=summerhack diff --git a/src/3dengfx/libs/lib3ds/ease.c b/src/3dengfx/libs/lib3ds/ease.c new file mode 100644 index 0000000..745bf10 --- /dev/null +++ b/src/3dengfx/libs/lib3ds/ease.c @@ -0,0 +1,65 @@ +/* + * 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: ease.c,v 1.4 2001/01/12 10:29:17 jeh Exp $ + */ +#define LIB3DS_EXPORT +#include + + +/*! + * \defgroup ease Ease + * + * \author J.E. Hoffmann + */ + + +/*! + * \ingroup ease + */ +Lib3dsFloat +lib3ds_ease(Lib3dsFloat fp, Lib3dsFloat fc, Lib3dsFloat fn, + Lib3dsFloat ease_from, Lib3dsFloat ease_to) +{ + Lib3dsDouble s,step; + Lib3dsDouble tofrom; + Lib3dsDouble a; + + s=step=(Lib3dsFloat)(fc-fp)/(fn-fp); + tofrom=ease_to+ease_from; + if (tofrom!=0.0) { + if (tofrom>1.0) { + ease_to=(Lib3dsFloat)(ease_to/tofrom); + ease_from=(Lib3dsFloat)(ease_from/tofrom); + } + a=1.0/(2.0-(ease_to+ease_from)); + + if (step