mirror of
https://github.com/Doodle3D/Doodle3D-Slicer.git
synced 2024-09-19 18:20:06 +02:00
126 lines
1.8 KiB
Python
126 lines
1.8 KiB
Python
|
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
|