OSDN Git Service

implement pmx loading
[meshio/pymeshio.git] / pymeshio / pmx / __init__.py
index f267af1..90caeb2 100644 (file)
@@ -331,6 +331,7 @@ class RigidBodyParam(object):
         self.restitution=restitution\r
         self.friction=friction\r
 \r
+\r
 class RigidBody(object):\r
     """pmx rigidbody\r
 \r
@@ -391,6 +392,67 @@ class RigidBody(object):
         self.mode=mode\r
 \r
 \r
+class Joint(object):\r
+    """pmx joint\r
+\r
+    Attributes:\r
+        name: \r
+        english_name: \r
+        joint_type:\r
+        rigidbody_index_a:\r
+        rigidbody_index_b:\r
+        position: Vector3\r
+        rotation: Vector3\r
+        translation_limit_min: Vector3\r
+        translation_limit_max: Vector3\r
+        rotation_limit_min: Vector3\r
+        rotation_limit_max: Vector3\r
+        spring_constant_translation: Vector3\r
+        spring_constant_rotation: Vector3\r
+    """\r
+    __slots__=[\r
+            'name',\r
+            'english_name',\r
+            'joint_type',\r
+            'rigidbody_index_a',\r
+            'rigidbody_index_b',\r
+            'position',\r
+            'rotation',\r
+            'translation_limit_min',\r
+            'translation_limit_max',\r
+            'rotation_limit_min',\r
+            'rotation_limit_max',\r
+            'spring_constant_translation',\r
+            'spring_constant_rotation',\r
+            ]\r
+    def __init__(self, name, english_name,\r
+            joint_type,\r
+            rigidbody_index_a,\r
+            rigidbody_index_b,\r
+            position,\r
+            rotation,\r
+            translation_limit_min,\r
+            translation_limit_max,\r
+            rotation_limit_min,\r
+            rotation_limit_max,\r
+            spring_constant_translation,\r
+            spring_constant_rotation\r
+            ):\r
+        self.name=name\r
+        self.english_name=english_name\r
+        self.joint_type=joint_type\r
+        self.rigidbody_index_a=rigidbody_index_a\r
+        self.rigidbody_index_b=rigidbody_index_b\r
+        self.position=position\r
+        self.rotation=rotation\r
+        self.translation_limit_min=translation_limit_min\r
+        self.translation_limit_max=translation_limit_max\r
+        self.rotation_limit_min=rotation_limit_min\r
+        self.rotation_limit_max=rotation_limit_max\r
+        self.spring_constant_translation=spring_constant_translation\r
+        self.spring_constant_rotation=spring_constant_rotation\r
+\r
+\r
 class Model(object):\r
     """pmx data representation\r
 \r
@@ -407,6 +469,7 @@ class Model(object):
         morph:\r
         display_slots:\r
         rigidbodies:\r
+        joints:\r
     """\r
     __slots__=[\r
             'version', # pmx version\r
@@ -422,6 +485,7 @@ class Model(object):
             'morphs',\r
             'display_slots',\r
             'rigidbodies',\r
+            'joints',\r
             ]\r
     def __init__(self, version):\r
         self.version=version\r
@@ -435,4 +499,5 @@ class Model(object):
         self.materials=[]\r
         self.bones=[]\r
         self.rigidbodies=[]\r
+        self.joints=[]\r
 \r