mirror of
https://github.com/Doodle3D/Doodle3D-Slicer.git
synced 2024-09-18 01:40:07 +02:00
126 lines
1.8 KiB
Python
Executable File
126 lines
1.8 KiB
Python
Executable File
from bpy import data, types, context
|
|
from .. import logger
|
|
|
|
|
|
def _camera(func):
|
|
"""
|
|
|
|
:param func:
|
|
|
|
"""
|
|
|
|
def inner(name, *args, **kwargs):
|
|
"""
|
|
|
|
:param name:
|
|
:param *args:
|
|
:param **kwargs:
|
|
|
|
"""
|
|
|
|
if isinstance(name, types.Camera):
|
|
camera = name
|
|
else:
|
|
camera = data.cameras[name]
|
|
|
|
return func(camera, *args, **kwargs)
|
|
|
|
return inner
|
|
|
|
|
|
@_camera
|
|
def aspect(camera):
|
|
"""
|
|
|
|
:param camera:
|
|
:rtype: float
|
|
|
|
"""
|
|
logger.debug("camera.aspect(%s)", camera)
|
|
render = context.scene.render
|
|
return render.resolution_x/render.resolution_y
|
|
|
|
|
|
@_camera
|
|
def bottom(camera):
|
|
"""
|
|
|
|
:param camera:
|
|
:rtype: float
|
|
|
|
"""
|
|
logger.debug("camera.bottom(%s)", camera)
|
|
return -(camera.angle_y * camera.ortho_scale)
|
|
|
|
|
|
@_camera
|
|
def far(camera):
|
|
"""
|
|
|
|
:param camera:
|
|
:rtype: float
|
|
|
|
"""
|
|
logger.debug("camera.far(%s)", camera)
|
|
return camera.clip_end
|
|
|
|
|
|
@_camera
|
|
def fov(camera):
|
|
"""
|
|
|
|
:param camera:
|
|
:rtype: float
|
|
|
|
"""
|
|
logger.debug("camera.fov(%s)", camera)
|
|
return camera.lens
|
|
|
|
|
|
@_camera
|
|
def left(camera):
|
|
"""
|
|
|
|
:param camera:
|
|
:rtype: float
|
|
|
|
"""
|
|
logger.debug("camera.left(%s)", camera)
|
|
return -(camera.angle_x * camera.ortho_scale)
|
|
|
|
|
|
@_camera
|
|
def near(camera):
|
|
"""
|
|
|
|
:param camera:
|
|
:rtype: float
|
|
|
|
"""
|
|
logger.debug("camera.near(%s)", camera)
|
|
return camera.clip_start
|
|
|
|
|
|
@_camera
|
|
def right(camera):
|
|
"""
|
|
|
|
:param camera:
|
|
:rtype: float
|
|
|
|
"""
|
|
logger.debug("camera.right(%s)", camera)
|
|
return camera.angle_x * camera.ortho_scale
|
|
|
|
|
|
@_camera
|
|
def top(camera):
|
|
"""
|
|
|
|
:param camera:
|
|
:rtype: float
|
|
|
|
"""
|
|
logger.debug("camera.top(%s)", camera)
|
|
return camera.angle_y * camera.ortho_scale
|