+ 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
+ def __eq__(self, rhs):\r
+ return (\r
+ self.name==rhs.name\r
+ and self.english_name==rhs.english_name\r
+ and self.joint_type==rhs.joint_type\r
+ and self.rigidbody_index_a==rhs.rigidbody_index_a\r
+ and self.rigidbody_index_b==rhs.rigidbody_index_b\r
+ and self.position==rhs.position\r
+ and self.rotation==rhs.rotation\r
+ and self.translation_limit_min==rhs.translation_limit_min\r
+ and self.translation_limit_max==rhs.translation_limit_max\r
+ and self.rotation_limit_min==rhs.rotation_limit_min\r
+ and self.rotation_limit_max==rhs.rotation_limit_max\r
+ and self.spring_constant_translation==rhs.spring_constant_translation\r
+ and self.spring_constant_rotation==rhs.spring_constant_rotation\r
+ )\r
+\r
+ def __ne__(self, rhs):\r
+ return not self.__eq__(rhs)\r
+\r
+ def diff(self, rhs):\r
+ self._diff(rhs, 'name')\r
+ self._diff(rhs, 'joint_type')\r
+ self._diff(rhs, 'rigidbody_index_a')\r
+ self._diff(rhs, 'rigidbody_index_b')\r
+ self._diff(rhs, 'position')\r
+ self._diff(rhs, 'rotation')\r
+ self._diff(rhs, 'translation_limit_min')\r
+ self._diff(rhs, 'translation_limit_max')\r
+ self._diff(rhs, 'rotation_limit_min')\r
+ self._diff(rhs, 'rotation_limit_max')\r
+ self._diff(rhs, 'spring_constant_translation')\r
+ self._diff(rhs, 'spring_constant_rotation')\r
+\r
+\r
+class Model(Diff):\r
+ """\r
+ ==========\r
+ pmx model\r
+ ==========\r
+\r
+ :IVariables:\r
+ version\r
+ pmx version(expected 2.0)\r
+ name \r
+ model name\r
+ english_name \r
+ model name\r
+ comment \r
+ comment\r
+ english_comment \r
+ comment\r
+ vertices\r
+ vertex list\r
+ textures\r
+ texture list\r
+ materials\r
+ material list\r
+ bones\r
+ bone list\r
+ morph\r
+ morph list\r
+ display_slots\r
+ display list for bone/morph grouping\r
+ rigidbodies\r
+ bullet physics rigidbody list\r
+ joints\r
+ bullet physics joint list\r