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))