mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-18 06:21:40 +00:00
bonsai bcf v3 - fix issue activating camera in some cases
This commit is contained in:
@@ -1378,16 +1378,14 @@ class ActivateBcfViewpoint(bpy.types.Operator):
|
|||||||
def set_view_setup_hints(
|
def set_view_setup_hints(
|
||||||
self, viewpoint: bcf.agnostic.visinfo.VisualizationInfoHandler, context: bpy.types.Context
|
self, viewpoint: bcf.agnostic.visinfo.VisualizationInfoHandler, context: bpy.types.Context
|
||||||
) -> None:
|
) -> None:
|
||||||
if viewpoint.visualization_info.components.view_setup_hints:
|
# TODO: handle view_setup_hints.openings_visible
|
||||||
if not viewpoint.visualization_info.components.view_setup_hints.spaces_visible:
|
# should we reload elements with/without opening applied here or ...?
|
||||||
|
if view_setup_hints := tool.Bcf.get_viewpoint_view_setup_hints(viewpoint):
|
||||||
|
pass
|
||||||
|
if not view_setup_hints.spaces_visible:
|
||||||
self.hide_spaces(context)
|
self.hide_spaces(context)
|
||||||
if viewpoint.visualization_info.components.view_setup_hints.openings_visible is not None:
|
|
||||||
self.set_openings_visibility(
|
|
||||||
viewpoint.visualization_info.components.view_setup_hints.openings_visible, context
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
self.hide_spaces(context)
|
self.hide_spaces(context)
|
||||||
self.set_openings_visibility(False, context)
|
|
||||||
|
|
||||||
def hide_spaces(self, context: bpy.types.Context) -> None:
|
def hide_spaces(self, context: bpy.types.Context) -> None:
|
||||||
old = context.area.type
|
old = context.area.type
|
||||||
@@ -1397,9 +1395,6 @@ class ActivateBcfViewpoint(bpy.types.Operator):
|
|||||||
bpy.ops.object.hide_view_set()
|
bpy.ops.object.hide_view_set()
|
||||||
context.area.type = old
|
context.area.type = old
|
||||||
|
|
||||||
def set_openings_visibility(self, is_visible, context):
|
|
||||||
pass # We no longer have an openings collection
|
|
||||||
|
|
||||||
def set_selection(self, viewpoint: bcf.agnostic.visinfo.VisualizationInfoHandler) -> None:
|
def set_selection(self, viewpoint: bcf.agnostic.visinfo.VisualizationInfoHandler) -> None:
|
||||||
selected_global_ids = viewpoint.get_selected_guids()
|
selected_global_ids = viewpoint.get_selected_guids()
|
||||||
if selected_global_ids is None:
|
if selected_global_ids is None:
|
||||||
|
|||||||
@@ -21,12 +21,17 @@ import bonsai.core.tool
|
|||||||
import bonsai.tool as tool
|
import bonsai.tool as tool
|
||||||
import bpy
|
import bpy
|
||||||
import bcf.v2.model
|
import bcf.v2.model
|
||||||
|
import bcf.v2.model.visinfo
|
||||||
import bcf.v2.topic
|
import bcf.v2.topic
|
||||||
|
|
||||||
import bcf.v3.model
|
import bcf.v3.model
|
||||||
|
import bcf.v3.model.visinfo
|
||||||
import bcf.v3.topic
|
import bcf.v3.topic
|
||||||
|
|
||||||
import bcf.agnostic.model
|
import bcf.agnostic.model
|
||||||
import bcf.agnostic.topic
|
import bcf.agnostic.topic
|
||||||
import bcf.agnostic.visinfo
|
import bcf.agnostic.visinfo
|
||||||
|
|
||||||
from typing import Any, Union, TypeVar, TypeGuard, Optional
|
from typing import Any, Union, TypeVar, TypeGuard, Optional
|
||||||
|
|
||||||
|
|
||||||
@@ -260,3 +265,19 @@ class Bcf(bonsai.core.tool.Bcf):
|
|||||||
bitmaps = viewpoint.visualization_info.bitmaps
|
bitmaps = viewpoint.visualization_info.bitmaps
|
||||||
bitmaps = bitmaps.bitmap if bitmaps else []
|
bitmaps = bitmaps.bitmap if bitmaps else []
|
||||||
return bitmaps
|
return bitmaps
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_viewpoint_view_setup_hints(
|
||||||
|
cls, viewpoint: bcf.agnostic.visinfo.VisualizationInfoHandler
|
||||||
|
) -> Union[bcf.v2.model.visinfo.ViewSetupHints, bcf.v3.model.visinfo.ViewSetupHints, None]:
|
||||||
|
components = viewpoint.visualization_info.components
|
||||||
|
if not components:
|
||||||
|
return None
|
||||||
|
|
||||||
|
if isinstance(components, bcf.v2.model.visinfo.Components):
|
||||||
|
return components.view_setup_hints
|
||||||
|
|
||||||
|
visibility = components.visibility
|
||||||
|
if not visibility:
|
||||||
|
return None
|
||||||
|
return visibility.view_setup_hints
|
||||||
|
|||||||
Reference in New Issue
Block a user