Source code for PyR3.shortcut.transform

# -*- coding: utf-8 -*-
from __future__ import annotations

from typing import Tuple

import bpy


[docs]class Transform: """This class is a container for set of object transforming functions. They all operate on global (currently selected) object(s). """
[docs] @staticmethod def apply( do_move: bool = False, do_rotation: bool = False, do_scale: bool = False, ): """Apply the object's transformation to its data. :param use_move: applies move if true, defaults to False :type use_move: bool, optional :param use_rotation: applies rotation if true, defaults to False :type use_rotation: bool, optional :param use_scale: applies scale if true, defaults to False :type use_scale: bool, optional """ bpy.ops.object.transform_apply( location=do_move, rotation=do_rotation, scale=do_scale )
[docs] @classmethod def move( cls, vector: Tuple[float, float, float], **kwargs, ): """Move selected objects. :param vector: absolute coordinates to move to :type vector: Tuple[float, float, float], optional :param `**kwargs`: All from `bpy.ops.transform.translate <https://docs.blender.org/api/current/bpy.ops.transform.html#bpy.ops.transform.translate>`_. """ bpy.ops.transform.translate( value=vector, **kwargs, )
[docs] @classmethod def rotate( cls, angle: float, orient_axis: str, **kwargs, ): """Rotate selected objects around `orient_axis` :param angle: rotation angle :type angle: float, optional :param orient_axis: axis to rotate around, either "X", "Y" or "Z". :type orient_axis: str, optional :param `**kwargs`: All from `bpy.ops.transform.rotate <https://docs.blender.org/api/current/bpy.ops.transform.html#bpy.ops.transform.rotate>`_. """ context_override = bpy.context.copy() context_override["area"] = [ a for a in bpy.context.screen.areas if a.type == "VIEW_3D" ][0] bpy.ops.transform.rotate( context_override, value=angle, orient_axis=orient_axis, **kwargs, )
[docs] @classmethod def scale( cls, scales: Tuple[float, float, float], **kwargs, ): """Scale (resize) selected objects. :param scales: Tuple of scales for each axis, (x, y, z) :type scales: tuple, optional :param `**kwargs`: All from `bpy.ops.transform.resize <https://docs.blender.org/api/current/bpy.ops.transform.html#bpy.ops.transform.resize>`_. """ bpy.ops.transform.resize( value=scales, **kwargs, )
resize = scale