diff --git a/src/ifcblenderexport/blenderbim/bim/__init__.py b/src/ifcblenderexport/blenderbim/bim/__init__.py index 4783a0ffef..c1b42bdb78 100644 --- a/src/ifcblenderexport/blenderbim/bim/__init__.py +++ b/src/ifcblenderexport/blenderbim/bim/__init__.py @@ -193,6 +193,7 @@ if bpy is not None: operator.SelectScheduleFile, operator.BuildSchedule, operator.AddScheduleToSheet, + operator.SetViewportShadowFromSun, prop.StrProperty, prop.Variable, prop.Role, diff --git a/src/ifcblenderexport/blenderbim/bim/operator.py b/src/ifcblenderexport/blenderbim/bim/operator.py index b50edfe449..3308f327ae 100644 --- a/src/ifcblenderexport/blenderbim/bim/operator.py +++ b/src/ifcblenderexport/blenderbim/bim/operator.py @@ -3831,3 +3831,17 @@ class AddScheduleToSheet(bpy.types.Operator): props.schedules[props.active_schedule_index].name, props.sheets[props.active_sheet_index].name) return {'FINISHED'} + + +class SetViewportShadowFromSun(bpy.types.Operator): + bl_idname = 'bim.set_viewport_shadow_from_sun' + bl_label = 'Set Viewport Shadow from Sun' + + def execute(self, context): + # The vector used for the light direction is a bit funny + mat = Matrix(((-1.0, 0.0, 0.0, 0.0), + (0.0, 0, 1.0, 0.0), + (-0.0, -1.0, 0, 0.0), + (0.0, 0.0, 0.0, 1.0))) + context.scene.display.light_direction = mat.inverted() @ (context.active_object.matrix_world.to_quaternion() @ Vector((0,0,-1))) + return {'FINISHED'} diff --git a/src/ifcblenderexport/blenderbim/bim/ui.py b/src/ifcblenderexport/blenderbim/bim/ui.py index 5d1244353f..6ebe018738 100644 --- a/src/ifcblenderexport/blenderbim/bim/ui.py +++ b/src/ifcblenderexport/blenderbim/bim/ui.py @@ -1988,6 +1988,8 @@ class BIM_PT_misc_utilities(Panel): row.prop(props, 'override_colour', text='') row = layout.row(align=True) row.operator("bim.set_override_colour") + row = layout.row(align=True) + row.operator("bim.set_viewport_shadow_from_sun") def ifc_units(self, context):