+++ /dev/null
-#ifndef MSP_GL_ARMATURE_H_
-#define MSP_GL_ARMATURE_H_
-
-#include <list>
-#include <string>
-#include <msp/datafile/objectloader.h>
-#include "pose.h"
-#include "vector.h"
-
-namespace Msp {
-namespace GL {
-
-class Armature
-{
-public:
- class Loader: public DataFile::ObjectLoader<Armature>
- {
- public:
- Loader(Armature &);
- private:
- void link(const std::string &);
- };
-
- class Link
- {
- public:
- class Loader: public DataFile::ObjectLoader<Link>
- {
- private:
- const Armature &armature;
-
- public:
- Loader(Link &, const Armature &);
- private:
- void base(float, float, float);
- void parent(const std::string &);
- };
-
- private:
- std::string name;
- unsigned index;
- const Link *parent;
- Vector3 base;
-
- public:
- Link(const std::string &, unsigned);
-
- void set_parent(const Link *);
- void set_base(const Vector3 &);
-
- const std::string &get_name() const { return name; }
- unsigned get_index() const { return index; }
- const Link *get_parent() const { return parent; }
- const Vector3 &get_base() const { return base; }
- };
-
-private:
- std::vector<Link> links;
-
-public:
- Link &add_link();
-
- const Link &get_link(unsigned) const;
- const Link &get_link(const std::string &) const;
- unsigned get_max_link_index() const;
-};
-
-} // namespace GL
-} // namespace Msp
-
-#endif