bonsai bcf v3 - fix issue activating camera in some cases

This commit is contained in:
Andrej730
2024-10-28 20:07:04 +05:00
parent 4c3bb54f98
commit fd6a541689
2 changed files with 26 additions and 10 deletions
+5 -10
View File
@@ -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
View File
@@ -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