OSDN Git Service

fix for gcc-4.5 on cygwin
[meshio/meshio.git] / swig / pmd.i
index 0547d37..bc2ec4e 100644 (file)
@@ -1,17 +1,17 @@
 %module pmd
+
 %{
 #include <pmd.h>
-using namespace meshio;
-using namespace pmd;
 %}
-%include "std_vector.i"
-%include "std_wstring.i"
-%include "../include/color.h"
-%include "../include/la.h"
-%include "../include/pmd.h"
+%include "../../src/pmd.h"
+%include "../../src/color.h"
+%include "../../src/la.h"
+%include "../../src/text.h"
 
+%include "std_pair.i"
+%include "std_vector.i"
 %template(VertexVector) std::vector<meshio::pmd::Vertex>;
-%template(MaterialVector) std::vector<meshio::pmd::Material*>;
+%template(MaterialVector) std::vector<meshio::pmd::Material>;
 %template(BoneVector) std::vector<meshio::pmd::Bone>;
 %template(IKVector) std::vector<meshio::pmd::IK>;
 %template(MorphVector) std::vector<meshio::pmd::Morph>;
@@ -19,51 +19,10 @@ using namespace pmd;
 %template(ConstraintVector) std::vector<meshio::pmd::Constraint>;
 %template(UintVector) std::vector<unsigned int>;
 %template(UshortVector) std::vector<unsigned short>;
-%template(Vector3Vector) std::vector<meshio::pmd::Vector3>;
+%template(Vector3Vector) std::vector<meshio::Vector3>;
 %template(PBoneVector) std::vector<meshio::pmd::Bone*>;
-
-///////////////////////////////////////////////////////////////////////////////
-// vertices
-///////////////////////////////////////////////////////////////////////////////
-%inline %{
-//! Thin wrapper for ONLY the increment operator
-void _vertices_incr(std::vector<meshio::pmd::Vertex>::const_iterator* iter)
-{
-    // increment the iterator
-    ++(*iter);
-}
-%}
-
-%extend meshio::pmd::IO {
-%pythoncode {
-    def each_vertex(self):
-        iter = self._beginVertices()
-        while True:
-            vertex = self._dereferenceVertex(iter)
-            if vertex:
-                _vertices_incr(iter)
-                yield vertex
-            else:
-                break
-%}
-
-//! get the first element in the vector
-std::vector<meshio::pmd::Vertex>::const_iterator* _beginVertices()
-{
-    return new std::vector<meshio::pmd::Vertex>::const_iterator(
-            ($self->vertices.begin()));
-}
-
-//! dereference the iterator; return NULL if at the end
-const meshio::pmd::Vertex* _dereferenceVertex(
-        const std::vector<meshio::pmd::Vertex>::const_iterator* iter )
-{
-    // if at the end, return NULL
-    if (*iter == ($self)->vertices.end() ) {
-        return NULL;
-    }
-    // otherwise, return the face to which this iterator points
-    return &(**iter);
-}
-}
+%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> >;
+%template(fixed_string_20) meshio::fixed_string<20>;