mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 17:31:45 +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(
|
||||
self, viewpoint: bcf.agnostic.visinfo.VisualizationInfoHandler, context: bpy.types.Context
|
||||
) -> None:
|
||||
if viewpoint.visualization_info.components.view_setup_hints:
|
||||
if not viewpoint.visualization_info.components.view_setup_hints.spaces_visible:
|
||||
# TODO: handle view_setup_hints.openings_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)
|
||||
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:
|
||||
self.hide_spaces(context)
|
||||
self.set_openings_visibility(False, context)
|
||||
|
||||
def hide_spaces(self, context: bpy.types.Context) -> None:
|
||||
old = context.area.type
|
||||
@@ -1397,9 +1395,6 @@ class ActivateBcfViewpoint(bpy.types.Operator):
|
||||
bpy.ops.object.hide_view_set()
|
||||
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:
|
||||
selected_global_ids = viewpoint.get_selected_guids()
|
||||
if selected_global_ids is None:
|
||||
|
||||
@@ -21,12 +21,17 @@ import bonsai.core.tool
|
||||
import bonsai.tool as tool
|
||||
import bpy
|
||||
import bcf.v2.model
|
||||
import bcf.v2.model.visinfo
|
||||
import bcf.v2.topic
|
||||
|
||||
import bcf.v3.model
|
||||
import bcf.v3.model.visinfo
|
||||
import bcf.v3.topic
|
||||
|
||||
import bcf.agnostic.model
|
||||
import bcf.agnostic.topic
|
||||
import bcf.agnostic.visinfo
|
||||
|
||||
from typing import Any, Union, TypeVar, TypeGuard, Optional
|
||||
|
||||
|
||||
@@ -260,3 +265,19 @@ class Bcf(bonsai.core.tool.Bcf):
|
||||
bitmaps = viewpoint.visualization_info.bitmaps
|
||||
bitmaps = bitmaps.bitmap if bitmaps else []
|
||||
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