mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-22 01:31:00 +00:00
Fix #7364: If you change the width/height of a drawing camera it doesn't scale the text decoration.
This commit is contained in:
@@ -172,16 +172,12 @@ class BaseDecorator:
|
|||||||
def get_camera_width_mm(self):
|
def get_camera_width_mm(self):
|
||||||
# Horrific prototype code to ensure bgl draws at drawing scales
|
# Horrific prototype code to ensure bgl draws at drawing scales
|
||||||
# https://blender.stackexchange.com/questions/16493/is-there-a-way-to-fit-the-viewport-to-the-current-field-of-view
|
# https://blender.stackexchange.com/questions/16493/is-there-a-way-to-fit-the-viewport-to-the-current-field-of-view
|
||||||
def is_landscape(render):
|
|
||||||
return render.resolution_x > render.resolution_y
|
|
||||||
|
|
||||||
camera = bpy.context.scene.camera
|
camera = bpy.context.scene.camera
|
||||||
render = bpy.context.scene.render
|
render = bpy.context.scene.render
|
||||||
if is_landscape(render):
|
|
||||||
camera_width_model = camera.data.ortho_scale
|
# Always use the camera's ortho_scale as the width in model space
|
||||||
else:
|
camera_width_model = camera.data.ortho_scale
|
||||||
camera_width_model = camera.data.ortho_scale / render.resolution_y * render.resolution_x
|
|
||||||
|
|
||||||
scale = tool.Drawing.get_scale_ratio(tool.Drawing.get_diagram_scale(camera)["Scale"])
|
scale = tool.Drawing.get_scale_ratio(tool.Drawing.get_diagram_scale(camera)["Scale"])
|
||||||
camera_width_mm = scale * camera_width_model
|
camera_width_mm = scale * camera_width_model
|
||||||
return camera_width_mm
|
return camera_width_mm
|
||||||
|
|||||||
Reference in New Issue
Block a user