Source code for blendersynth.blender.other_objects

from .bsyn_object import BsynObject
import bpy
from ..utils import types
from .utils import GetNewObject


[docs] class Empty(BsynObject): def __init__(self, obj: bpy.types.Object = None, name=None, **kwargs): if obj is None: obj = self._create_empty_in_blender(**kwargs) self._object = obj if name is not None: obj.name = name
[docs] @classmethod def create( cls, location: types.VectorLike = None, rotation: types.VectorLike = None, scale: types.VectorLike = None, radius: float = 1.0, name=None, **kwargs ): """Create and return a new Empty instance.""" obj = cls._create_empty_in_blender(location, rotation, scale, radius, **kwargs) return cls(obj, name=name)
@staticmethod def _create_empty_in_blender( location: types.VectorLike = None, rotation: types.VectorLike = None, scale: types.VectorLike = None, radius: float = 1.0, **kwargs ) -> bpy.types.Object: """Private method to create and return a new Empty object in Blender.""" importer = GetNewObject(bpy.context.scene) kwargs = { **kwargs, **{ k: v for k, v in zip( ["location", "rotation", "scale", "radius"], [location, rotation, scale, radius], ) }, } kwargs = {k: v for k, v in kwargs.items() if v is not None} with importer: bpy.ops.object.empty_add(**kwargs) return importer.imported_obj