14        RESOURCE_DEFINE_CONSTRUCTOR(
Skeleton);
 
   16        Skeleton(
int jointCount, 
Joint* headJoint) : m_jointCount(jointCount), m_headJoint(headJoint),
 
   18            SetUndestroyable(
true);
 
   25        void SetJoint(
int jointCount, 
Joint* headJoint) {
 
   26            m_jointCount = jointCount;
 
   27            m_headJoint = headJoint;
 
   31        int getJointCount()
 const {
 
   32            if (!isLoaded()) 
return -1;
 
   36        void setJointCount(
int jointCount) {
 
   37            Skeleton::m_jointCount = jointCount;
 
   40        Joint* getHeadJoint()
 const {
 
   41            if (!isLoaded()) 
return nullptr;
 
   45        void setHeadJoint(
Joint* headJoint) {
 
   46            Skeleton::m_headJoint = headJoint;
 
   49        void Exterminate()
 override {
 
   50            SAFE_DELETE(m_headJoint);
 
   53        void SetValue(std::string name_str, Arguments value) 
override;
 
   55        std::string PrintValue() 
const override;
 
   63        bool isLoaded()
 const {
 
   64            return m_jointCount > 0 && m_headJoint != 
nullptr;
 
   69        Joint* m_headJoint = 
nullptr;