o-----------------------------------------------------------------------------o | T O D O | o-----------------------------------------------------------------------------o o-----------------------------------------------------------------------------o | Questions | o-----------------------------------------------------------------------------o - Use portable STL? (http://www.stlport.org) - C++ casts of object pointers? (rtti) - Do we need floats or doubles for computations? - Do we really need to renormalize blended normals? sqrt() lookup table? - Remove the track structure (make keyframes that hold all bones for a given time)? - Split translation and rotation in seperate tracks? - Use 2d or 3d texture coordinates (u, v, w)? - Do we need to store per vertex colors? - Would a memory/resource manager be a good solution to the dynamic memory allocation/deallocation nature of different classes? - Sliding-Window VIPM? Predefined/prestored LOD levels? - how should we handle collision detection? - Allow loading of model data from memory? - Make various functions (create, destroy, update,...) virtual to allow subclassing? o-----------------------------------------------------------------------------o | Must have | o-----------------------------------------------------------------------------o - beginFigureMode(), endFigureMode() in Cal3D exporter. - Clean accessor functions. (getXXXCount(), getXXX(), getVectorXXX() etc.). - Use reserve()/resize() whereever we use vectors/etc. - Big-/little-endian stuff in the file formats! - Remove all dynamic new/delete. Performance breakdown! - Optimize memory management! - Optimize accumulation of the state if we only have one type of animation - Destroy() / destructor design (validity flag?). - Insert meaningfull error-texts in CalError::setLastError() calls. - Make appropriate functions inlined. - Use a time-factor in animation instances (faster/slower/paused playback). - Nice API to access bone, animation etc. states. - Iterator/[] cleanup for std::vector<>. - Speed and memory optimizations. - Detailed class description. - Default material thread/set handling. - Remove the 'duration' argument in CalCoreTrack::getState(). - Implement a "no-LOD"-flag to save memory in the CalModel structure when LOD is not needed. - Implement a priority-system for the active animations. - Submesh material access? (e.g. eyebrows). - Direct setting of bone transformations (e.g.for "point-at" etc.) - README in the docs directory o-----------------------------------------------------------------------------o | Nice to have | o-----------------------------------------------------------------------------o - Make creation process of models available through the API. - Different animation types? (keyframes/splines/...)? - (Selective) bone stretch functionality. - Scaling of the bones for different model sizes. - A way to select the kind of interpolation made between keyframes (like ROUND_DOWN, NEAREST, LINEAR, SPLINE, ...). o-----------------------------------------------------------------------------o | Fixes | o-----------------------------------------------------------------------------o o-----------------------------------------------------------------------------o