OSDN Git Service

separate vertex with uv or normal.
[meshio/meshio.git] / swig / pmd.i
index 41c1d37..f858e8b 100644 (file)
@@ -1,4 +1,11 @@
 %module pmd
+
+///////////////////////////////////////////////////////////////////////////////
+// bytearray typemap
+///////////////////////////////////////////////////////////////////////////////
+%include <pybuffer.i>
+%pybuffer_string(const char *src);
+
 %{
 #include <pmd.h>
 using namespace meshio;
@@ -7,6 +14,7 @@ using namespace pmd;
 %include "std_vector.i"
 %include "std_wstring.i"
 %include "std_string.i"
+%include "std_pair.i"
 %include "../include/color.h"
 %include "../include/la.h"
 %include "../include/pmd.h"
@@ -22,6 +30,9 @@ using namespace pmd;
 %template(UshortVector) std::vector<unsigned short>;
 %template(Vector3Vector) std::vector<meshio::pmd::Vector3>;
 %template(PBoneVector) std::vector<meshio::pmd::Bone*>;
+%template(BoneGroupVector) std::vector<meshio::pmd::BoneGroup>;
+%template(DisplayPair) std::pair<unsigned short, unsigned char>;
+%template(BoneDisplayVector) std::vector<std::pair<unsigned short, unsigned char> >;
 
 ///////////////////////////////////////////////////////////////////////////////
 // meshio::pmd::IO::each_vertex
@@ -73,6 +84,12 @@ const meshio::pmd::Vertex* _dereferenceVertex(
 // addMaterial
 // addBone
 // addMorph
+// addIK
+// addBoneDisplay
+// addBoneGroup
+// getToonTexture
+// addRigidBody
+// addConstraint
 ///////////////////////////////////////////////////////////////////////////////
 %extend meshio::pmd::IO {
 
@@ -112,10 +129,10 @@ void addBoneDisplay(unsigned short bone_index, unsigned char display_index)
             std::make_pair(bone_index, display_index));
 }
 
-meshio::pmd::BoneDisplayName *addBoneDisplayName()
+meshio::pmd::BoneGroup *addBoneGroup()
 {
-    $self->bone_display_name_list.push_back(meshio::pmd::BoneDisplayName());
-    return &($self->bone_display_name_list.back());
+    $self->bone_group_list.push_back(meshio::pmd::BoneGroup());
+    return &($self->bone_group_list.back());
 }
 
 meshio::pmd::ToonTexture *getToonTexture(int index)
@@ -123,4 +140,17 @@ meshio::pmd::ToonTexture *getToonTexture(int index)
     return &($self->toon_textures[index]);
 }
 
+meshio::pmd::RigidBody *addRigidBody()
+{
+    $self->rigidbodies.push_back(meshio::pmd::RigidBody());
+    return &($self->rigidbodies.back());
 }
+
+meshio::pmd::Constraint *addConstraint()
+{
+    $self->constraints.push_back(meshio::pmd::Constraint());
+    return &($self->constraints.back());
+}
+
+}
+