OSDN Git Service

fix bone.
[meshio/meshio.git] / include / pmd.h
index 905fce5..ac706b3 100644 (file)
@@ -168,11 +168,13 @@ struct Bone
        Bone* parent;
        Vector3 tail;
        std::vector<Bone*> children;
+       unsigned short index;
 
        Bone()
                : parent(0)
                {}
        std::wstring getName()const;
+       void setName(const char *src);
 };
 inline std::ostream &operator<<(std::ostream &os,
                const Bone &rhs)
@@ -246,6 +248,8 @@ struct Morph
 
        void append(int index, float x, float y, float z);
        std::wstring getName()const;
+       void setName(const char *src);
+       void setEnglishName(const char *src);
 };
 inline std::ostream &operator<<(std::ostream &os, const Morph &rhs)
 {
@@ -258,6 +262,26 @@ inline std::ostream &operator<<(std::ostream &os, const Morph &rhs)
 }
 
 ////////////////////////////////////////////////////////////
+//! \83{\81[\83\93\95\\8e¦\98g
+////////////////////////////////////////////////////////////
+struct BoneDisplayName
+{
+       char name[50];
+       char english_name[50];
+
+       void setName(const char *src);
+       void setEnglishName(const char *src);
+};
+
+////////////////////////////////////////////////////////////
+//! \83g\83D\81[\83\93\83e\83N\83X\83`\83\83
+////////////////////////////////////////////////////////////
+struct ToonTexture
+{
+       char name[100];
+};
+
+////////////////////////////////////////////////////////////
 //! \8d\84\91Ì
 ////////////////////////////////////////////////////////////
 //! \8c`\8fó
@@ -351,12 +375,13 @@ struct IO
        std::vector<IK> ik_list;
        std::vector<Morph> morph_list;
        std::vector<unsigned short> face_list;
-       std::vector<std::pair<unsigned short, unsigned char> > bone_list;
-       std::vector<std::string> bone_name_list;
+       std::vector<BoneDisplayName> bone_display_name_list;
+       std::vector<std::pair<unsigned short, unsigned char> > bone_display_list;
+       ToonTexture toon_textures[10];
        std::vector<RigidBody> rigidbodies;
        std::vector<Constraint> constraints;
 
-       char english_model_name[20];
+       char english_name[20];
        char english_comment[256];
 
        IO();
@@ -366,9 +391,11 @@ struct IO
        bool read(const wchar_t *path);
        bool write(binary::IWriter &writer);
        bool write(const char *path);
+       bool write(const wchar_t *path);
 
        const Vector2* getUV(int index)const;
        std::wstring getName()const;
+       std::wstring getEnglishName()const;
 };
 inline std::ostream &operator<<(std::ostream &os, const IO &rhs)
 {