Preserve recorded camera orbit when toggling follow

This commit is contained in:
DCCONSTRUCTIONS
2026-07-23 13:57:36 +03:00
parent ecd95a22f0
commit 90450ae320
2 changed files with 32 additions and 38 deletions
+12 -8
View File
@@ -37,9 +37,6 @@ from k1link.device_plugins.xgrids_k1.rrd_export import (
export_k1mqtt_to_rrd,
recorded_blueprint_rrd,
)
from k1link.viewer.recorded import (
RECORDED_SPATIAL_FOLLOW_VIEW_ID,
)
from k1link.viewer.recorded import (
recorded_blueprint as viewer_recorded_blueprint,
)
@@ -453,7 +450,7 @@ def test_viewer_blueprint_reset_is_bounded_and_recreates_render_views() -> None:
assert perception_behavior.visible.as_arrow_array().to_pylist() == [False]
def test_recorded_follow_mode_tracks_sensor_pose_with_an_independent_orbital_eye() -> None:
def test_recorded_follow_mode_tracks_sensor_pose_with_the_same_orbital_eye() -> None:
normal = viewer_recorded_blueprint(
RerunSceneSettings(),
include_initial_playback_state=False,
@@ -471,16 +468,23 @@ def test_recorded_follow_mode_tracks_sensor_pose_with_an_independent_orbital_eye
normal_view = normal.root_container.contents[0]
followed_view = followed.root_container.contents[0]
normal_eye = normal_view.properties["EyeControls3D"]
followed_eye = followed_view.properties["EyeControls3D"]
normal_components = {
str(batch.component_descriptor()): batch.as_arrow_array().to_pylist()
for batch in normal_eye.as_component_batches()
}
followed_components = {
str(batch.component_descriptor()): batch.as_arrow_array().to_pylist()
for batch in followed_eye.as_component_batches()
}
assert "EyeControls3D" not in normal_view.properties
assert followed_view.id == RECORDED_SPATIAL_FOLLOW_VIEW_ID
assert followed_again.root_container.contents[0].id == RECORDED_SPATIAL_FOLLOW_VIEW_ID
assert followed_view.id != normal_view.id
assert followed_view.id == RECORDED_SPATIAL_VIEW_ID
assert followed_again.root_container.contents[0].id == RECORDED_SPATIAL_VIEW_ID
assert followed_view.id == normal_view.id
assert normal_components == {
"EyeControls3D:tracking_entity": [""],
}
assert followed_components == {
"EyeControls3D:kind": [2],
"EyeControls3D:tracking_entity": ["/world/sensor_pose"],