comparison dmlerp.c @ 0:32250b436bca

Initial re-import.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 28 Sep 2012 01:54:23 +0300
parents
children 72813cece1ba
comparison
equal deleted inserted replaced
-1:000000000000 0:32250b436bca
1 #include "dmlib.h"
2
3 void dmLerpInit(DMLerpContext *ctx, DMFloat start, DMFloat end, DMFloat nsteps)
4 {
5 ctx->start = start;
6 ctx->end = end;
7 ctx->nsteps = nsteps;
8 }
9
10
11 DMFloat dmLerpSCurve(DMLerpContext *ctx, const DMFloat step)
12 {
13 const DMFloat n = step / ctx->nsteps;
14 const DMFloat v = DMM_S_CURVE(n);
15 return DMM_LERP(v, ctx->start, ctx->end);
16 }
17
18
19 DMFloat dmLerp1(DMLerpContext *ctx, const DMFloat step)
20 {
21 const DMFloat v = step / ctx->nsteps;
22 return DMM_LERP(v, ctx->start, ctx->end);
23 }
24
25
26 DMFloat dmCatmull_Rom(const DMFloat t, const DMFloat p0, const DMFloat p1, const DMFloat p2, const DMFloat p3)
27 {
28 const DMFloat q = t * t;
29 return (
30 (2 * p1) +
31 (-p0 + p2) * t +
32 (2 * p0 - 5 * p1 + 4 * p2 - p3) * q +
33 ( -p0 + 3 * p1 - 3 * p2 + p3) * q * t
34 ) * 0.5f;
35 }