:py:mod:`rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d`
==================================================================

.. py:module:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d

.. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d
   :allowtitles:

Module Contents
---------------

Classes
~~~~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`SkeletonTree <rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree>`
     - .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree
          :summary:
   * - :py:obj:`SkeletonState <rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState>`
     - .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState
          :summary:
   * - :py:obj:`SkeletonMotion <rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion>`
     -

API
~~~

.. py:class:: SkeletonTree(node_names, parent_indices, local_translation, local_orientation=None)
   :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree

   Bases: :py:obj:`rofunc.utils.datalab.poselib.poselib.core.Serializable`

   .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree

   .. rubric:: Initialization

   .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.__init__

   .. py:property:: node_names
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.node_names

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.node_names

   .. py:property:: parent_indices
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.parent_indices

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.parent_indices

   .. py:property:: local_translation
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.local_translation

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.local_translation

   .. py:property:: local_orientation
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.local_orientation

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.local_orientation

   .. py:property:: num_joints
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.num_joints

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.num_joints

   .. py:method:: from_dict(dict_repr, *args, **kwargs)
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.from_dict
      :classmethod:

   .. py:method:: to_dict()
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.to_dict

   .. py:method:: from_mjcf(path: str) -> rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.from_mjcf
      :classmethod:

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.from_mjcf

   .. py:method:: parent_of(node_name)
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.parent_of

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.parent_of

   .. py:method:: index(node_name)
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.index

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.index

   .. py:method:: drop_nodes_by_names(node_names: rofunc.utils.datalab.poselib.poselib.core.List[str], pairwise_translation=None) -> rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.drop_nodes_by_names

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.drop_nodes_by_names

   .. py:method:: keep_nodes_by_names(node_names: rofunc.utils.datalab.poselib.poselib.core.List[str], pairwise_translation=None) -> rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.keep_nodes_by_names

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree.keep_nodes_by_names

.. py:class:: SkeletonState(tensor_backend, skeleton_tree, is_local)
   :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState

   Bases: :py:obj:`rofunc.utils.datalab.poselib.poselib.core.Serializable`

   .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState

   .. rubric:: Initialization

   .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.__init__

   .. py:property:: rotation
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.rotation

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.rotation

   .. py:property:: object_poses
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.object_poses

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.object_poses

   .. py:method:: set_object_poses(object_poses)
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.set_object_poses

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.set_object_poses

   .. py:property:: is_local
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.is_local

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.is_local

   .. py:property:: invariant_property
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.invariant_property

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.invariant_property

   .. py:property:: num_joints
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.num_joints

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.num_joints

   .. py:property:: skeleton_tree
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.skeleton_tree

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.skeleton_tree

   .. py:property:: root_translation
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.root_translation

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.root_translation

   .. py:property:: global_transformation
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.global_transformation

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.global_transformation

   .. py:property:: global_rotation
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.global_rotation

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.global_rotation

   .. py:property:: global_translation
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.global_translation

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.global_translation

   .. py:property:: global_translation_xy
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.global_translation_xy

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.global_translation_xy

   .. py:property:: global_translation_xz
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.global_translation_xz

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.global_translation_xz

   .. py:property:: local_rotation
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.local_rotation

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.local_rotation

   .. py:property:: local_transformation
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.local_transformation

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.local_transformation

   .. py:property:: local_translation
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.local_translation

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.local_translation

   .. py:property:: root_translation_xy
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.root_translation_xy

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.root_translation_xy

   .. py:property:: global_root_rotation
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.global_root_rotation

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.global_root_rotation

   .. py:property:: global_root_yaw_rotation
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.global_root_yaw_rotation

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.global_root_yaw_rotation

   .. py:property:: local_translation_to_root
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.local_translation_to_root

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.local_translation_to_root

   .. py:property:: local_rotation_to_root
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.local_rotation_to_root

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.local_rotation_to_root

   .. py:method:: compute_forward_vector(left_shoulder_index, right_shoulder_index, left_hip_index, right_hip_index, gaussian_filter_width=20)
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.compute_forward_vector

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.compute_forward_vector

   .. py:method:: from_dict(dict_repr: rofunc.utils.datalab.poselib.poselib.core.OrderedDict, *args, **kwargs) -> rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.from_dict
      :classmethod:

   .. py:method:: to_dict() -> rofunc.utils.datalab.poselib.poselib.core.OrderedDict
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.to_dict

   .. py:method:: from_rotation_and_root_translation(skeleton_tree, r, t, is_local=True)
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.from_rotation_and_root_translation
      :classmethod:

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.from_rotation_and_root_translation

   .. py:method:: zero_pose(skeleton_tree)
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.zero_pose
      :classmethod:

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.zero_pose

   .. py:method:: zero_pose_wo_qbhand(skeleton_tree)
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.zero_pose_wo_qbhand
      :classmethod:

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.zero_pose_wo_qbhand

   .. py:method:: local_repr()
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.local_repr

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.local_repr

   .. py:method:: global_repr()
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.global_repr

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.global_repr

   .. py:method:: drop_nodes_by_names(node_names: rofunc.utils.datalab.poselib.poselib.core.List[str], estimate_local_translation_from_states: bool = True) -> rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.drop_nodes_by_names

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.drop_nodes_by_names

   .. py:method:: keep_nodes_by_names(node_names: rofunc.utils.datalab.poselib.poselib.core.List[str], estimate_local_translation_from_states: bool = True) -> rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.keep_nodes_by_names

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.keep_nodes_by_names

   .. py:method:: retarget_to(joint_mapping: typing.Dict[str, str], source_tpose_local_rotation, source_tpose_root_translation: numpy.ndarray, target_skeleton_tree: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree, target_tpose_local_rotation, target_tpose_root_translation: numpy.ndarray, rotation_to_target_skeleton, scale_to_target_skeleton: float, z_up: bool = True) -> rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.retarget_to

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.retarget_to

   .. py:method:: retarget_to_by_tpose(joint_mapping: typing.Dict[str, str], source_tpose: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState, target_tpose: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState, rotation_to_target_skeleton, scale_to_target_skeleton: float) -> rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.retarget_to_by_tpose

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState.retarget_to_by_tpose

.. py:class:: SkeletonMotion(tensor_backend, skeleton_tree, is_local, fps, object_poses=None, *args, **kwargs)
   :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion

   Bases: :py:obj:`rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState`

   .. py:method:: clone()
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.clone

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.clone

   .. py:property:: invariant_property
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.invariant_property

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.invariant_property

   .. py:property:: global_velocity
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.global_velocity

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.global_velocity

   .. py:property:: global_angular_velocity
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.global_angular_velocity

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.global_angular_velocity

   .. py:property:: fps
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.fps

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.fps

   .. py:property:: time_delta
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.time_delta

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.time_delta

   .. py:property:: global_root_velocity
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.global_root_velocity

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.global_root_velocity

   .. py:property:: global_root_angular_velocity
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.global_root_angular_velocity

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.global_root_angular_velocity

   .. py:property:: object_poses
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.object_poses

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.object_poses

   .. py:method:: from_state_vector_and_velocity(skeleton_tree, state_vector, global_velocity, global_angular_velocity, is_local, fps)
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.from_state_vector_and_velocity
      :classmethod:

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.from_state_vector_and_velocity

   .. py:method:: from_skeleton_state(skeleton_state: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState, fps: int)
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.from_skeleton_state
      :classmethod:

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.from_skeleton_state

   .. py:method:: from_dict(dict_repr: rofunc.utils.datalab.poselib.poselib.core.OrderedDict, *args, **kwargs) -> rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.from_dict
      :classmethod:

   .. py:method:: to_dict() -> rofunc.utils.datalab.poselib.poselib.core.OrderedDict
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.to_dict

   .. py:method:: from_fbx(fbx_file_path, skeleton_tree=None, is_local=True, fps=120, root_joint='', root_trans_index=0, *args, **kwargs) -> rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.from_fbx
      :classmethod:

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.from_fbx

   .. py:method:: crop(start: int, end: int, fps: rofunc.utils.datalab.poselib.poselib.core.Optional[int] = None)
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.crop

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.crop

   .. py:method:: retarget_to(joint_mapping: typing.Dict[str, str], source_tpose_local_rotation, source_tpose_root_translation: numpy.ndarray, target_skeleton_tree: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonTree, target_tpose_local_rotation, target_tpose_root_translation: numpy.ndarray, rotation_to_target_skeleton, scale_to_target_skeleton: float, z_up: bool = True) -> rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.retarget_to

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.retarget_to

   .. py:method:: retarget_to_by_tpose(joint_mapping: typing.Dict[str, str], source_tpose: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState, target_tpose: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonState, rotation_to_target_skeleton, scale_to_target_skeleton: float, z_up: bool = True) -> rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion
      :canonical: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.retarget_to_by_tpose

      .. autodoc2-docstring:: rofunc.utils.datalab.poselib.poselib.skeleton.skeleton3d.SkeletonMotion.retarget_to_by_tpose
