initial commit
[liquidmodel] / libs / anim / README.md
1 libanim
2 =======
3
4 About
5 -----
6 Libanim is a C animation library, which can be used as a generic framework to
7 add keyframe interpolation tracks for any single-valued or 3-vector parameters,
8 or at a slightly higher level as a hierarchical PRS (position/rotation/scaling)
9 animation node framework for 3D graphics programs.
10
11 Version 2 of libanim dropped the dependency to libvmath, and instead carries a
12 copy of gph-cmath (https://github.com/jtsiomb/gph-cmath) internally. The API
13 has been reworked to avoid forcing a dependency to any math library to the user
14 program, relying on floats and float pointers instead, which can be aliased to
15 any kind contiguous `x,y,z` vector and `x,y,z,w` quaternion, or simple arrays
16 of floats. Matrix arguments are expected to be arrays of 16 contiguous floats,
17 in OpenGL-compatible order.
18
19 Programs written for earlier versions of libanim, and using the high-level PRS
20 interface in `anim.h` are not source-compatible, nor binary-compatible with
21 libanim 2. Though in practice the API changes are minor, and porting should be
22 straightforward. Programs using only the low-level keyframe tracks in `track.h`
23 are unaffected by these changes.
24
25 License
26 -------
27 Copyright (C) 2012-2018 John Tsiombikas <nuclear@member.fsf.org>
28
29 This program is free software. You may use, modify, and redistribute it under
30 the terms of the GNU Lesser General Public License v3 or (at your option), any
31 later version published by the Free Software Foundation. See COPYING and
32 COPYING.LESSER for details.
33
34 Build
35 -----
36 To build and install libanim on UNIX, run the usual:
37
38     ./configure
39     make
40     make install
41
42 See `./configure --help` for a complete list of build-time options.
43
44 To cross-compile for windows with mingw-w64, try the following incantation:
45
46     ./configure --prefix=/usr/i686-w64-mingw32
47     make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar sys=mingw
48     make install sys=mingw