X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;ds=sidebyside;f=src%2Fpmd.cpp;h=23059ab6c32311cf64451e565dae13fde397e000;hb=af0f7ea2da9ace619ff51edef564fe4669582074;hp=2a3d5562cf7d76c72a07eee84317bac4551dd26e;hpb=6064301db9ff204e36ae69ecd502ab6e5675a2f0;p=meshio%2Fmeshio.git diff --git a/src/pmd.cpp b/src/pmd.cpp old mode 100644 new mode 100755 index 2a3d556..23059ab --- a/src/pmd.cpp +++ b/src/pmd.cpp @@ -47,6 +47,20 @@ std::wstring std::string(english_name, english_name+20))); } +std::wstring + RigidBody::getName()const + { + return text::trim(text::to_WideChar(CP_OEMCP, + std::string(name, name+20))); + } + +std::wstring + Constraint::getName()const + { + return text::trim(text::to_WideChar(CP_OEMCP, + std::string(name, name+20))); + } + // 38bytes template void @@ -684,6 +698,69 @@ bool IO::write(binary::IWriter &w) w.writeArray(toon_textures[i].name, 100); } + //////////////////////////////////////////////////////////// + // rigid bodies + //////////////////////////////////////////////////////////// + w.writeValue(rigidbodies.size()); + for(size_t i=0; i(rb.name, 20); + w.writeValue(rb.boneIndex); + w.writeValue(rb.group); + w.writeValue(rb.target); + w.writeValue(rb.shapeType); + w.writeValue(rb.w); + w.writeValue(rb.h); + w.writeValue(rb.d); + w.writeValue(rb.position.x); + w.writeValue(rb.position.y); + w.writeValue(rb.position.z); + w.writeValue(rb.rotation.x); + w.writeValue(rb.rotation.y); + w.writeValue(rb.rotation.z); + w.writeValue(rb.weight); + w.writeValue(rb.linearDamping); + w.writeValue(rb.angularDamping); + w.writeValue(rb.restitution); + w.writeValue(rb.friction); + w.writeValue(rb.processType); + } + + //////////////////////////////////////////////////////////// + // constraints + //////////////////////////////////////////////////////////// + w.writeValue(constraints.size()); + for(size_t i=0; i(c.name, 20); + w.writeValue(c.rigidA); + w.writeValue(c.rigidB); + w.writeValue(c.pos.x); + w.writeValue(c.pos.y); + w.writeValue(c.pos.z); + w.writeValue(c.rot.x); + w.writeValue(c.rot.y); + w.writeValue(c.rot.z); + w.writeValue(c.constraintPosMin.x); + w.writeValue(c.constraintPosMin.y); + w.writeValue(c.constraintPosMin.z); + w.writeValue(c.constraintPosMax.x); + w.writeValue(c.constraintPosMax.y); + w.writeValue(c.constraintPosMax.z); + w.writeValue(c.constraintRotMin.x); + w.writeValue(c.constraintRotMin.y); + w.writeValue(c.constraintRotMin.z); + w.writeValue(c.constraintRotMax.x); + w.writeValue(c.constraintRotMax.y); + w.writeValue(c.constraintRotMax.z); + w.writeValue(c.springPos.x); + w.writeValue(c.springPos.y); + w.writeValue(c.springPos.z); + w.writeValue(c.springRot.x); + w.writeValue(c.springRot.y); + w.writeValue(c.springRot.z); + } + return true; } @@ -704,6 +781,11 @@ const Vector2* IO::getUV(int index)const return &vertices[index].uv; } +void Bone::setName(const char *src) +{ + strncpy(name, src, 20); +} + void BoneDisplayName::setName(const char *src) { strncpy(name, src, 20); @@ -714,6 +796,27 @@ void BoneDisplayName::setEnglishName(const char *src) strncpy(english_name, src, 20); } +void Morph::setName(const char *src) +{ + strncpy(name, src, 20); +} + +void Morph::setEnglishName(const char *src) +{ + strncpy(english_name, src, 20); +} + +void RigidBody::setName(const char *src) +{ + strncpy(name, src, 20); +} + +void Constraint::setName(const char *src) +{ + strncpy(name, src, 20); +} + + } // namespace } // namespace