OSDN Git Service

fix converter shape_position
[meshio/pymeshio.git] / pymeshio / pmx / __init__.py
index f98032c..e367e46 100644 (file)
@@ -74,11 +74,11 @@ class Ik(Diff):
             'limit_radian',\r
             'link',\r
             ]\r
-    def __init__(self, target_index, loop, limit_radian, link=[]):\r
+    def __init__(self, target_index, loop, limit_radian, link=None):\r
         self.target_index=target_index\r
         self.loop=loop\r
         self.limit_radian=limit_radian\r
-        self.link=link\r
+        self.link=link or []\r
 \r
     def __eq__(self, rhs):\r
         return (\r
@@ -104,11 +104,11 @@ class IkLink(Diff):
             'limit_min',\r
             'limit_max',\r
             ]\r
-    def __init__(self, bone_index, limit_angle, limit_min=common.Vector3(), limit_max=common.Vector3()):\r
+    def __init__(self, bone_index, limit_angle, limit_min=None, limit_max=None):\r
         self.bone_index=bone_index\r
         self.limit_angle=limit_angle\r
-        self.limit_min=limit_min\r
-        self.limit_max=limit_max\r
+        self.limit_min=limit_min or common.Vector3()\r
+        self.limit_max=limit_max or common.Vector3()\r
 \r
     def __eq__(self, rhs):\r
         return (\r
@@ -155,13 +155,13 @@ class Bone(Diff):
             parent_index,\r
             layer,\r
             flag,\r
-            tail_position=common.Vector3(),\r
+            tail_position=None,\r
             tail_index=-1,\r
             effect_index=-1,\r
             effect_factor=0.0,\r
-            fixed_axis=common.Vector3(),\r
-            local_x_vector=common.Vector3(),\r
-            local_z_vector=common.Vector3(),\r
+            fixed_axis=None,\r
+            local_x_vector=None,\r
+            local_z_vector=None,\r
             external_key=-1,\r
             ik=None\r
             ):\r
@@ -171,13 +171,13 @@ class Bone(Diff):
         self.parent_index=parent_index\r
         self.layer=layer\r
         self.flag=flag\r
-        self.tail_position=tail_position\r
+        self.tail_position=tail_position or common.Vector3()\r
         self.tail_index=tail_index\r
         self.effect_index=effect_index\r
         self.effect_factor=effect_factor\r
-        self.fixed_axis=fixed_axis\r
-        self.local_x_vector=local_x_vector\r
-        self.local_z_vector=local_z_vector\r
+        self.fixed_axis=fixed_axis or common.Vector3()\r
+        self.local_x_vector=local_x_vector or common.Vector3()\r
+        self.local_z_vector=local_z_vector or common.Vector3()\r
         self.external_key=external_key\r
         self.ik=ik\r
 \r
@@ -470,12 +470,12 @@ class Morph(Diff):
             'morph_type',\r
             'offsets',\r
             ]\r
-    def __init__(self, name, english_name, panel, morph_type, offsets=[]):\r
+    def __init__(self, name, english_name, panel, morph_type, offsets=None):\r
         self.name=name\r
         self.english_name=english_name\r
         self.panel=panel\r
         self.morph_type=morph_type\r
-        self.offsets=offsets\r
+        self.offsets=offsets or []\r
 \r
     def __eq__(self, rhs):\r
         return (\r
@@ -497,7 +497,7 @@ class Morph(Diff):
         self._diff_array(rhs, 'offsets')\r
 \r
 \r
-class VerexMorphOffset(Diff):\r
+class VertexMorphOffset(Diff):\r
     """pmx vertex morph offset\r
 \r
     Attributes:\r
@@ -533,26 +533,29 @@ class DisplaySlot(Diff):
         name: \r
         english_name: \r
         special_flag:\r
-        refrences: list of (ref_type, ref_index)\r
+        references: list of (ref_type, ref_index)\r
     """\r
     __slots__=[\r
             'name',\r
             'english_name',\r
             'special_flag',\r
-            'refrences',\r
+            'references',\r
             ]\r
-    def __init__(self, name, english_name, special_flag, refrences=[]):\r
+    def __init__(self, name, english_name, special_flag, references=None):\r
         self.name=name\r
         self.english_name=english_name\r
         self.special_flag=special_flag\r
-        self.refrences=refrences\r
+        self.references=references or []\r
+\r
+    def __str__(self):\r
+        return "<DisplaySlots %s(%d)>" % (self.name, len(self.references))\r
 \r
     def __eq__(self, rhs):\r
         return (\r
                 self.name==rhs.name\r
                 and self.english_name==rhs.english_name\r
                 and self.special_flag==rhs.special_flag\r
-                and self.refrences==rhs.refrences\r
+                and self.references==rhs.references\r
                 )\r
 \r
     def __ne__(self, rhs):\r
@@ -562,7 +565,7 @@ class DisplaySlot(Diff):
         self._diff(rhs, 'name')\r
         self._diff(rhs, 'english_name')\r
         self._diff(rhs, 'special_flag')\r
-        #self._diff_array(rhs, 'refrences')\r
+        #self._diff_array(rhs, 'references')\r
 \r
 \r
 class RigidBodyParam(Diff):\r
@@ -691,7 +694,7 @@ class RigidBody(Diff):
         self._diff(rhs, 'no_collision_group')\r
         self._diff(rhs, 'shape_type')\r
         self._diff(rhs, 'shape_size')\r
-        #self._diff(rhs, 'shape_position')\r
+        self._diff(rhs, 'shape_position')\r
         self._diff(rhs, 'shape_rotation')\r
         self._diff(rhs, 'param')\r
         self._diff(rhs, 'mode')\r