def construct_from_json_dict(self, bone_bind_pose_json_dict) -> TransformNode: vector3d_factory = Vector3dFactory() quaternion_factory = QuaternionFactory() result = TransformNode() result.position = vector3d_factory.construct_from_json_dict(bone_bind_pose_json_dict["position"]) result.rotation = quaternion_factory.construct_from_json_dict(bone_bind_pose_json_dict["rotation"]) result.scale = vector3d_factory.construct_from_json_dict(bone_bind_pose_json_dict["scale"]) return result
def construct_from_json_dict(self, channel_transform_json_dict) -> TransformNode: result = TransformNode() result.position = Vector3dFactory().construct_from_json_dict( channel_transform_json_dict["position"]) # altered_position = Vector3d(-result.position.x, -result.position.z, result.position.y) # result.position = altered_position result.rotation = QuaternionFactory().construct_from_json_dict( channel_transform_json_dict["rotation"]) result.scale = Vector3dFactory().construct_from_json_dict( channel_transform_json_dict["scale"]) return result
def zero_out_not_used_subobjects_bones_transformations_adding_them_to_pose_hierarchy( cls, pose_hierarchy: TreeHierarchy, all_actual_armature_bones_names: List[str]): for armature_bone_name in all_actual_armature_bones_names: if not pose_hierarchy.contains_node_key(armature_bone_name): effectively_zeroed_scale_out_transform_node = TransformNode() effectively_zeroed_scale_out_transform_node.scale = Vector3d( 0.0, 0.0, 0.0) pose_hierarchy.add_node( parent_key=UnifiedArmatureWithDeformSetsBonesNamingHelper. get_bone_name_for_root_channel(), node_key=armature_bone_name, node=BoneTransformNode.from_transform_node( bone_name=armature_bone_name, transform_node= effectively_zeroed_scale_out_transform_node, is_keyframe=True))