1o-----------------------------------------------------------------------------o
2|                                  T O D O                                    |
3o-----------------------------------------------------------------------------o
4
5o-----------------------------------------------------------------------------o
6| Questions                                                                   |
7o-----------------------------------------------------------------------------o
8
9  - Use portable STL? (http://www.stlport.org)
10  - C++ casts of object pointers? (rtti)
11  - Do we need floats or doubles for computations?
12  - Do we really need to renormalize blended normals? sqrt() lookup table?
13  - Remove the track structure (make keyframes that hold all bones for a
14    given time)?
15  - Split translation and rotation in seperate tracks?
16  - Use 2d or 3d texture coordinates (u, v, w)?
17  - Do we need to store per vertex colors?
18  - Would a memory/resource manager be a good solution to the dynamic memory
19    allocation/deallocation nature of different classes?
20  - Sliding-Window VIPM? Predefined/prestored LOD levels?
21  - how should we handle collision detection?
22  - Allow loading of model data from memory?
23  - Make various functions (create, destroy, update,...) virtual to allow
24    subclassing?
25
26o-----------------------------------------------------------------------------o
27| Must have                                                                   |
28o-----------------------------------------------------------------------------o
29
30  - beginFigureMode(), endFigureMode() in Cal3D exporter.
31  - Clean accessor functions. (getXXXCount(), getXXX(), getVectorXXX() etc.).
32  - Use reserve()/resize() whereever we use vectors/etc.
33  - Big-/little-endian stuff in the file formats!
34  - Remove all dynamic new/delete. Performance breakdown!
35  - Optimize memory management!
36  - Optimize accumulation of the state if we only have one type of animation
37  - Destroy() / destructor design (validity flag?).
38  - Insert meaningfull error-texts in CalError::setLastError() calls.
39  - Make appropriate functions inlined.
40  - Use a time-factor in animation instances (faster/slower/paused playback).
41  - Nice API to access bone, animation etc. states.
42  - Iterator/[] cleanup for std::vector<>.
43  - Speed and memory optimizations.
44  - Detailed class description.
45  - Default material thread/set handling.
46  - Remove the 'duration' argument in CalCoreTrack::getState().
47  - Implement a "no-LOD"-flag to save memory in the CalModel structure when
48    LOD is not needed.
49  - Implement a priority-system for the active animations.
50  - Submesh material access? (e.g. eyebrows).
51  - Direct setting of bone transformations (e.g.for "point-at" etc.)
52  - README in the docs directory
53
54o-----------------------------------------------------------------------------o
55| Nice to have                                                                |
56o-----------------------------------------------------------------------------o
57
58  - Make creation process of models available through the API.
59  - Different animation types? (keyframes/splines/...)?
60  - (Selective) bone stretch functionality.
61  - Scaling of the bones for different model sizes.
62  - A way to select the kind of interpolation made between keyframes (like
63    ROUND_DOWN, NEAREST, LINEAR, SPLINE, ...).
64
65o-----------------------------------------------------------------------------o
66| Fixes                                                                       |
67o-----------------------------------------------------------------------------o
68
69o-----------------------------------------------------------------------------o
70