+++ /dev/null
-#include <msp/core/maputils.h>
-#include "armature.h"
-
-using namespace std;
-
-namespace Msp {
-namespace GL {
-
-Armature::Link &Armature::add_link()
-{
- links.push_back(Link(string(), links.size()));
- return links.back();
-}
-
-const Armature::Link &Armature::get_link(unsigned index) const
-{
- for(list<Link>::const_iterator i=links.begin(); i!=links.end(); ++i)
- if(i->get_index()==index)
- return *i;
- throw key_error(typeid(list<Link>));
-}
-
-const Armature::Link &Armature::get_link(const string &name) const
-{
- for(list<Link>::const_iterator i=links.begin(); i!=links.end(); ++i)
- if(i->get_name()==name)
- return *i;
- throw key_error(typeid(list<Link>));
-}
-
-unsigned Armature::get_max_link_index() const
-{
- unsigned max_index = 0;
- for(list<Link>::const_iterator i=links.begin(); i!=links.end(); ++i)
- max_index = max(max_index, i->get_index());
- return max_index;
-}
-
-
-Armature::Link::Link(const string &n, unsigned i):
- name(n),
- index(i),
- parent(0)
-{ }
-
-void Armature::Link::set_parent(const Link *p)
-{
- parent = p;
-}
-
-void Armature::Link::set_base(const Vector3 &b)
-{
- base = b;
-}
-
-
-Armature::Loader::Loader(Armature &a):
- DataFile::ObjectLoader<Armature>(a)
-{
- add("link", &Loader::link);
-}
-
-void Armature::Loader::link(const string &n)
-{
- Link lnk(n, obj.links.size());
- load_sub(lnk, obj);
- obj.links.push_back(lnk);
-}
-
-
-Armature::Link::Loader::Loader(Link &l, const Armature &a):
- DataFile::ObjectLoader<Link>(l),
- armature(a)
-{
- add("base", &Loader::base);
- add("index", &Link::index);
- add("parent", &Loader::parent);
-}
-
-void Armature::Link::Loader::base(float x, float y, float z)
-{
- obj.base = Vector3(x, y, z);
-}
-
-void Armature::Link::Loader::parent(const string &n)
-{
- obj.parent = &armature.get_link(n);
-}
-
-} // namespace GL
-} // namespace Msp