X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=include%2Fpmd.h;h=0d0b55191f0d391198d2bea33c8e25b8787e4a15;hb=4b7b856e70fe8047f985e2598020032d0d87a672;hp=a402015033802c95eafd2d4229e76c162dca5cb3;hpb=5b1d24fcf5aec37d73d79c1e7bd4dc0c7414d7f4;p=meshio%2Fmeshio.git diff --git a/include/pmd.h b/include/pmd.h index a402015..0d0b551 100644 --- a/include/pmd.h +++ b/include/pmd.h @@ -40,11 +40,11 @@ namespace meshio { namespace pmd { -typedef la::Vector2 Vector2; -typedef la::Vector3 Vector3; -typedef la::Vector4 Vector4; -typedef color::fRGBA fRGBA; -typedef color::fRGB fRGB; +typedef ::meshio::la::Vector2 Vector2; +typedef ::meshio::la::Vector3 Vector3; +typedef ::meshio::la::Vector4 Vector4; +typedef ::meshio::color::fRGBA fRGBA; +typedef ::meshio::color::fRGB fRGB; //////////////////////////////////////////////////////////// //! ’¸“_ @@ -103,6 +103,9 @@ struct Material unsigned int vertex_count; //! ƒeƒNƒXƒ`ƒƒ char texture[20]; + + std::wstring getTexture()const; + void setTexture(const char *src); }; inline std::ostream &operator<<(std::ostream &os, const Material &rhs) @@ -166,10 +169,14 @@ struct Bone Bone* parent; Vector3 tail; std::vector children; + unsigned short index; Bone() : parent(0) {} + std::wstring getName()const; + void setName(const char *src); + void setEnglishName(const char *src); }; inline std::ostream &operator<<(std::ostream &os, const Bone &rhs) @@ -240,6 +247,11 @@ struct Morph std::vector pos_list; //! ‰pŒê–¼ char english_name[20]; + + 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) { @@ -252,6 +264,29 @@ inline std::ostream &operator<<(std::ostream &os, const Morph &rhs) } //////////////////////////////////////////////////////////// +//! ƒ{[ƒ“•\Ž¦˜g +//////////////////////////////////////////////////////////// +struct BoneGroup +{ + char name[50]; + char english_name[50]; + + void setName(const char *src); + void setEnglishName(const char *src); + std::wstring getName()const; +}; + +//////////////////////////////////////////////////////////// +//! ƒgƒD[ƒ“ƒeƒNƒXƒ`ƒƒ +//////////////////////////////////////////////////////////// +struct ToonTexture +{ + char name[100]; + std::wstring getName()const; + void setName(const char *src); +}; + +//////////////////////////////////////////////////////////// //! „‘Ì //////////////////////////////////////////////////////////// //! Œ`ó @@ -303,6 +338,9 @@ struct RigidBody float friction; //! „‘̃^ƒCƒv PROCESS_TYPE processType; + + std::wstring getName()const; + void setName(const char *src); }; //! Joint(•¨—‰‰ŽZ‚Å‚ÌJoint‚ÆConstraint‚Í“¯‚¶ˆÓ–¡) @@ -327,6 +365,9 @@ struct Constraint //! ‚Î‚Ë Vector3 springPos; Vector3 springRot; + + std::wstring getName()const; + void setName(const char *src); }; @@ -344,19 +385,34 @@ struct IO std::vector bones; std::vector ik_list; std::vector morph_list; - std::vector > bone_list; - std::vector bone_name_list; + std::vector face_list; + std::vector bone_group_list; + std::vector > bone_display_list; + ToonTexture toon_textures[10]; std::vector rigidbodies; std::vector constraints; - char english_model_name[20]; + char english_name[20]; char english_comment[256]; IO(); ~IO(); bool read(binary::IReader &reader); - bool read(const char *path); - bool write(std::ostream &os); + //bool read(const char *path); + 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 getComment()const; + std::wstring getEnglishName()const; + std::wstring getEnglishComment()const; + void setName(const char *src); + void setComment(const char *src); + void setEnglishName(const char *src); + void setEnglishComment(const char *src); }; inline std::ostream &operator<<(std::ostream &os, const IO &rhs) {