%module pmd
+
+///////////////////////////////////////////////////////////////////////////////
+// bytearray typemap
+///////////////////////////////////////////////////////////////////////////////
+%include <pybuffer.i>
+%pybuffer_string(const char *src);
+
%{
#include <pmd.h>
using namespace meshio;
%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"
%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
// addMaterial
// addBone
// addMorph
+// addIK
+// addBoneDisplay
+// addBoneGroup
+// getToonTexture
+// addRigidBody
+// addConstraint
///////////////////////////////////////////////////////////////////////////////
%extend meshio::pmd::IO {
return &($self->ik_list.back());
}
-void addBoneNameList(const std::string &name)
-{
- $self->bone_display_name_list.push_back(name);
-}
-
void addBoneDisplay(unsigned short bone_index, unsigned char display_index)
{
$self->bone_display_list.push_back(
std::make_pair(bone_index, display_index));
}
+meshio::pmd::BoneGroup *addBoneGroup()
+{
+ $self->bone_group_list.push_back(meshio::pmd::BoneGroup());
+ return &($self->bone_group_list.back());
+}
+
+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());
}
+
+}
+