Skip to content

Commit 7de6571

Browse files
committed
feat: refactor angle conventions to allow options beyond Pinpoint/IBL
1 parent 1df059e commit 7de6571

19 files changed

+1667
-636
lines changed

Assets/Prefabs/UI/SettingsMenu/Menus/ProbeMenu.prefab

Lines changed: 1380 additions & 603 deletions
Large diffs are not rendered by default.

Assets/Scenes/TrajectoryPlanner.unity

Lines changed: 86 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,17 @@ GameObject:
435435
m_CorrespondingSourceObject: {fileID: 1206530233342419659, guid: 94cdeca105038d74ea47b57e6b99eb4e, type: 3}
436436
m_PrefabInstance: {fileID: 341190943874437988}
437437
m_PrefabAsset: {fileID: 0}
438+
--- !u!114 &320149453 stripped
439+
MonoBehaviour:
440+
m_CorrespondingSourceObject: {fileID: 7816610327736870163, guid: 94cdeca105038d74ea47b57e6b99eb4e, type: 3}
441+
m_PrefabInstance: {fileID: 341190943874437988}
442+
m_PrefabAsset: {fileID: 0}
443+
m_GameObject: {fileID: 0}
444+
m_Enabled: 1
445+
m_EditorHideFlags: 0
446+
m_Script: {fileID: 11500000, guid: 7b743370ac3e4ec2a1668f5455a8ef8a, type: 3}
447+
m_Name:
448+
m_EditorClassIdentifier:
438449
--- !u!114 &367637130 stripped
439450
MonoBehaviour:
440451
m_CorrespondingSourceObject: {fileID: 2699667523703933131, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3}
@@ -3073,15 +3084,15 @@ PrefabInstance:
30733084
objectReference: {fileID: 1703646459}
30743085
- target: {fileID: 341190943836035196, guid: 94cdeca105038d74ea47b57e6b99eb4e, type: 3}
30753086
propertyPath: m_AnchorMax.y
3076-
value: 0
3087+
value: 1
30773088
objectReference: {fileID: 0}
30783089
- target: {fileID: 341190943836035196, guid: 94cdeca105038d74ea47b57e6b99eb4e, type: 3}
30793090
propertyPath: m_AnchorMin.y
3080-
value: 0
3091+
value: 1
30813092
objectReference: {fileID: 0}
30823093
- target: {fileID: 341190943836035196, guid: 94cdeca105038d74ea47b57e6b99eb4e, type: 3}
30833094
propertyPath: m_AnchoredPosition.x
3084-
value: 0
3095+
value: 169.88
30853096
objectReference: {fileID: 0}
30863097
- target: {fileID: 341190943836276264, guid: 94cdeca105038d74ea47b57e6b99eb4e, type: 3}
30873098
propertyPath: m_IsOn
@@ -3217,19 +3228,19 @@ PrefabInstance:
32173228
objectReference: {fileID: 0}
32183229
- target: {fileID: 341190944034978748, guid: 94cdeca105038d74ea47b57e6b99eb4e, type: 3}
32193230
propertyPath: m_AnchorMax.y
3220-
value: 0
3231+
value: 1
32213232
objectReference: {fileID: 0}
32223233
- target: {fileID: 341190944034978748, guid: 94cdeca105038d74ea47b57e6b99eb4e, type: 3}
32233234
propertyPath: m_AnchorMin.y
3224-
value: 0
3235+
value: 1
32253236
objectReference: {fileID: 0}
32263237
- target: {fileID: 341190944034978748, guid: 94cdeca105038d74ea47b57e6b99eb4e, type: 3}
32273238
propertyPath: m_AnchoredPosition.x
3228-
value: 0
3239+
value: 354.84
32293240
objectReference: {fileID: 0}
32303241
- target: {fileID: 341190944034978748, guid: 94cdeca105038d74ea47b57e6b99eb4e, type: 3}
32313242
propertyPath: m_AnchoredPosition.y
3232-
value: 0
3243+
value: -15
32333244
objectReference: {fileID: 0}
32343245
- target: {fileID: 341190944071593138, guid: 94cdeca105038d74ea47b57e6b99eb4e, type: 3}
32353246
propertyPath: m_AnchorMax.x
@@ -3509,19 +3520,19 @@ PrefabInstance:
35093520
objectReference: {fileID: 0}
35103521
- target: {fileID: 341190944410943211, guid: 94cdeca105038d74ea47b57e6b99eb4e, type: 3}
35113522
propertyPath: m_AnchorMax.y
3512-
value: 0
3523+
value: 1
35133524
objectReference: {fileID: 0}
35143525
- target: {fileID: 341190944410943211, guid: 94cdeca105038d74ea47b57e6b99eb4e, type: 3}
35153526
propertyPath: m_AnchorMin.y
3516-
value: 0
3527+
value: 1
35173528
objectReference: {fileID: 0}
35183529
- target: {fileID: 341190944410943211, guid: 94cdeca105038d74ea47b57e6b99eb4e, type: 3}
35193530
propertyPath: m_AnchoredPosition.x
3520-
value: 0
3531+
value: 384.91998
35213532
objectReference: {fileID: 0}
35223533
- target: {fileID: 341190944410943211, guid: 94cdeca105038d74ea47b57e6b99eb4e, type: 3}
35233534
propertyPath: m_AnchoredPosition.y
3524-
value: 0
3535+
value: -15
35253536
objectReference: {fileID: 0}
35263537
- target: {fileID: 341190944411999430, guid: 94cdeca105038d74ea47b57e6b99eb4e, type: 3}
35273538
propertyPath: m_AnchorMax.y
@@ -7639,6 +7650,18 @@ PrefabInstance:
76397650
propertyPath: m_AnchoredPosition.y
76407651
value: -506.30676
76417652
objectReference: {fileID: 0}
7653+
- target: {fileID: 7816610327736870163, guid: 94cdeca105038d74ea47b57e6b99eb4e, type: 3}
7654+
propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Target
7655+
value:
7656+
objectReference: {fileID: 2108153956}
7657+
- target: {fileID: 7816610327736870163, guid: 94cdeca105038d74ea47b57e6b99eb4e, type: 3}
7658+
propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
7659+
value: SetAngleConvention
7660+
objectReference: {fileID: 0}
7661+
- target: {fileID: 7816610327736870163, guid: 94cdeca105038d74ea47b57e6b99eb4e, type: 3}
7662+
propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
7663+
value: Settings, trajectoryplanner.core.utilities
7664+
objectReference: {fileID: 0}
76427665
- target: {fileID: 7868159287455251634, guid: 94cdeca105038d74ea47b57e6b99eb4e, type: 3}
76437666
propertyPath: m_AnchorMax.y
76447667
value: 1
@@ -9230,6 +9253,10 @@ PrefabInstance:
92309253
propertyPath: _probePanelHeightSlider
92319254
value:
92329255
objectReference: {fileID: 125483035}
9256+
- target: {fileID: 8016510558008620337, guid: 482bfae3ba88b424e96d7fcd669f7b73, type: 3}
9257+
propertyPath: _angleConventionDropdown
9258+
value:
9259+
objectReference: {fileID: 320149453}
92339260
- target: {fileID: 8016510558008620337, guid: 482bfae3ba88b424e96d7fcd669f7b73, type: 3}
92349261
propertyPath: ephysLinkServerPortInput
92359262
value:
@@ -9358,6 +9385,10 @@ PrefabInstance:
93589385
propertyPath: ShowBregmaAxisChangedEvent.m_PersistentCalls.m_Calls.Array.size
93599386
value: 1
93609387
objectReference: {fileID: 0}
9388+
- target: {fileID: 8016510558008620337, guid: 482bfae3ba88b424e96d7fcd669f7b73, type: 3}
9389+
propertyPath: AngleConventionChangedEvent.m_PersistentCalls.m_Calls.Array.size
9390+
value: 2
9391+
objectReference: {fileID: 0}
93619392
- target: {fileID: 8016510558008620337, guid: 482bfae3ba88b424e96d7fcd669f7b73, type: 3}
93629393
propertyPath: InvivoTransformChangedEvent.m_PersistentCalls.m_Calls.Array.size
93639394
value: 1
@@ -9642,6 +9673,10 @@ PrefabInstance:
96429673
propertyPath: UseIBLAnglesChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_Target
96439674
value:
96449675
objectReference: {fileID: 716699760}
9676+
- target: {fileID: 8016510558008620337, guid: 482bfae3ba88b424e96d7fcd669f7b73, type: 3}
9677+
propertyPath: AngleConventionChangedEvent.m_PersistentCalls.m_Calls.Array.data[1].m_Mode
9678+
value: 1
9679+
objectReference: {fileID: 0}
96459680
- target: {fileID: 8016510558008620337, guid: 482bfae3ba88b424e96d7fcd669f7b73, type: 3}
96469681
propertyPath: CameraZoomChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
96479682
value: 2
@@ -9722,6 +9757,14 @@ PrefabInstance:
97229757
propertyPath: UseAcronymsChangedEvent.m_PersistentCalls.m_Calls.Array.data[2].m_CallState
97239758
value: 2
97249759
objectReference: {fileID: 0}
9760+
- target: {fileID: 8016510558008620337, guid: 482bfae3ba88b424e96d7fcd669f7b73, type: 3}
9761+
propertyPath: AngleConventionChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_Target
9762+
value:
9763+
objectReference: {fileID: 881772377}
9764+
- target: {fileID: 8016510558008620337, guid: 482bfae3ba88b424e96d7fcd669f7b73, type: 3}
9765+
propertyPath: AngleConventionChangedEvent.m_PersistentCalls.m_Calls.Array.data[1].m_Target
9766+
value:
9767+
objectReference: {fileID: 2108153954}
97259768
- target: {fileID: 8016510558008620337, guid: 482bfae3ba88b424e96d7fcd669f7b73, type: 3}
97269769
propertyPath: BregmaLambdaChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
97279770
value: 2
@@ -9910,6 +9953,14 @@ PrefabInstance:
99109953
propertyPath: ShowBregmaAxisChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
99119954
value: 2
99129955
objectReference: {fileID: 0}
9956+
- target: {fileID: 8016510558008620337, guid: 482bfae3ba88b424e96d7fcd669f7b73, type: 3}
9957+
propertyPath: AngleConventionChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
9958+
value: 2
9959+
objectReference: {fileID: 0}
9960+
- target: {fileID: 8016510558008620337, guid: 482bfae3ba88b424e96d7fcd669f7b73, type: 3}
9961+
propertyPath: AngleConventionChangedEvent.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
9962+
value: 2
9963+
objectReference: {fileID: 0}
99139964
- target: {fileID: 8016510558008620337, guid: 482bfae3ba88b424e96d7fcd669f7b73, type: 3}
99149965
propertyPath: CameraRotationChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
99159966
value: SetCameraRotation
@@ -9946,6 +9997,14 @@ PrefabInstance:
99469997
propertyPath: ShowBregmaAxisChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
99479998
value: SetActive
99489999
objectReference: {fileID: 0}
10000+
- target: {fileID: 8016510558008620337, guid: 482bfae3ba88b424e96d7fcd669f7b73, type: 3}
10001+
propertyPath: AngleConventionChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
10002+
value: SetActiveAngleConvention
10003+
objectReference: {fileID: 0}
10004+
- target: {fileID: 8016510558008620337, guid: 482bfae3ba88b424e96d7fcd669f7b73, type: 3}
10005+
propertyPath: AngleConventionChangedEvent.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
10006+
value: UpdateAllProbePositions
10007+
objectReference: {fileID: 0}
994910008
- target: {fileID: 8016510558008620337, guid: 482bfae3ba88b424e96d7fcd669f7b73, type: 3}
995010009
propertyPath: DetectCollisionsChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
995110010
value: 2
@@ -10194,6 +10253,14 @@ PrefabInstance:
1019410253
propertyPath: SurfaceCoordChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument
1019510254
value: 1
1019610255
objectReference: {fileID: 0}
10256+
- target: {fileID: 8016510558008620337, guid: 482bfae3ba88b424e96d7fcd669f7b73, type: 3}
10257+
propertyPath: AngleConventionChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
10258+
value: CoordinateEntryPanel, trajectoryplanner.core
10259+
objectReference: {fileID: 0}
10260+
- target: {fileID: 8016510558008620337, guid: 482bfae3ba88b424e96d7fcd669f7b73, type: 3}
10261+
propertyPath: AngleConventionChangedEvent.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName
10262+
value: TrajectoryPlanner.TrajectoryPlannerManager, trajectoryplanner.core
10263+
objectReference: {fileID: 0}
1019710264
- target: {fileID: 8016510558008620337, guid: 482bfae3ba88b424e96d7fcd669f7b73, type: 3}
1019810265
propertyPath: InvivoTransformChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
1019910266
value: TrajectoryPlanner.TrajectoryPlannerManager, trajectoryplanner.core
@@ -10366,6 +10433,14 @@ PrefabInstance:
1036610433
propertyPath: ShowBregmaAxisChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
1036710434
value: UnityEngine.Object, UnityEngine
1036810435
objectReference: {fileID: 0}
10436+
- target: {fileID: 8016510558008620337, guid: 482bfae3ba88b424e96d7fcd669f7b73, type: 3}
10437+
propertyPath: AngleConventionChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
10438+
value: UnityEngine.Object, UnityEngine
10439+
objectReference: {fileID: 0}
10440+
- target: {fileID: 8016510558008620337, guid: 482bfae3ba88b424e96d7fcd669f7b73, type: 3}
10441+
propertyPath: AngleConventionChangedEvent.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName
10442+
value: UnityEngine.Object, UnityEngine
10443+
objectReference: {fileID: 0}
1036910444
- target: {fileID: 8016510558008620337, guid: 482bfae3ba88b424e96d7fcd669f7b73, type: 3}
1037010445
propertyPath: InvivoTransformChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
1037110446
value: UnityEngine.Object, UnityEngine

Assets/Scripts/Accounts/ActiveExperimentUI.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,7 @@ private void UpdateUIPanels()
112112

113113
// Get angles
114114
Vector3 angles = new Vector3(insertionData.phi, insertionData.theta, insertionData.spin);
115-
if (Settings.UseIBLAngles)
116-
angles = PinpointUtils.World2IBL(angles);
115+
// [TODO] Should this convert according to the active convention?
117116

118117
// Set the insertion data and active state
119118
insertionUI.SetInsertionData(_accountsManager, insertionData.UUID, insertionData.name, insertionData.active);

Assets/Scripts/Pinpoint/AngleConventions.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
using UnityEngine;
2+
3+
public abstract class AngleConvention
4+
{
5+
6+
public abstract string DisplayName { get; }
7+
8+
public abstract Vector3 ToConvention(Vector3 pinpointAngles);
9+
10+
public abstract Vector3 FromConvention(Vector3 conventionAngles);
11+
}

Assets/Scripts/Pinpoint/AngleConventions/AngleConvention.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using UnityEngine;
2+
3+
public class IBLAngleConvention : AngleConvention
4+
{
5+
public override string DisplayName => "IBL";
6+
7+
/// <summary>
8+
/// Convert Pinpoint angles to IBL format
9+
/// </summary>
10+
/// <param name="pinpointAngles"></param>
11+
/// <returns></returns>
12+
public override Vector3 ToConvention(Vector3 pinpointAngles)
13+
{
14+
float iblPhi = -pinpointAngles.x - 90f;
15+
float iblTheta = 90 - pinpointAngles.y;
16+
return new Vector3(iblPhi, iblTheta, pinpointAngles.z);
17+
}
18+
19+
/// <summary>
20+
/// Convert from IBL format angles to Pinpoint
21+
/// </summary>
22+
/// <param name="conventionAngles"></param>
23+
/// <returns></returns>
24+
public override Vector3 FromConvention(Vector3 conventionAngles)
25+
{
26+
float worldPhi = -conventionAngles.x - 90f;
27+
float worldTheta = 90 - conventionAngles.y;
28+
return new Vector3(worldPhi, worldTheta, conventionAngles.z);
29+
}
30+
}

Assets/Scripts/Pinpoint/AngleConventions/IBLAngleConvention.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using UnityEngine;
2+
3+
public class MISAngleConvention : AngleConvention
4+
{
5+
// The current implementation of this is going to make some assumptions about the orientations
6+
7+
public override string DisplayName => "New Scale MIS";
8+
9+
/// <summary>
10+
/// Convert MIS angles to IBL format
11+
/// </summary>
12+
/// <param name="pinpointAngles"></param>
13+
/// <returns></returns>
14+
public override Vector3 ToConvention(Vector3 pinpointAngles)
15+
{
16+
// todo
17+
return new Vector3();
18+
}
19+
20+
/// <summary>
21+
/// Convert from IBL format angles to Pinpoint
22+
/// </summary>
23+
/// <param name="conventionAngles"></param>
24+
/// <returns></returns>
25+
public override Vector3 FromConvention(Vector3 conventionAngles)
26+
{
27+
// todo
28+
return new Vector3();
29+
}
30+
}

Assets/Scripts/Pinpoint/AngleConventions/MISAngleConvention.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)