Tilt Five™ Unity API  1.3.0
 
Loading...
Searching...
No Matches
TiltFive.Glasses.GlassesCore Class Reference

Internal Glasses core runtime. More...

Inheritance diagram for TiltFive.Glasses.GlassesCore:
TiltFive.Glasses.BaseGlassesCore TiltFive.TrackableCore< GlassesSettings, T5_GlassesPose >

Public Member Functions

 GlassesCore (GlassesHandle glassesHandle)
 
override void Dispose ()
 
void Reset (GlassesSettings glassesSettings, SpectatorSettings spectatorSettings)
 Reset this T:TiltFive.Glasses.GlassesCore
 
bool Validate (GlassesSettings glassesSettings, SpectatorSettings spectatorSettings)
 Tests this T:TiltFive.Glasses.GlassesCore for validity with the parameterized T:TiltFive.Glasses.GlassesSettings
 
bool TryGetFriendlyName (out string friendlyName)
 
virtual void Update (GlassesSettings glassesSettings, ScaleSettings scaleSettings, GameBoardSettings gameBoardSettings, SpectatorSettings spectatorSettings)
 Updates this T:TiltFive.Glasses.GlassesCore
 
- Public Member Functions inherited from TiltFive.Glasses.BaseGlassesCore
 BaseGlassesCore (GlassesHandle glassesHandle, T5_GlassesPoseUsage glassesPoseUsage, string name)
 
virtual void Dispose ()
 

Public Attributes

PlayerIndex playerIndex
 
GameObject baseObject
 
string friendlyName
 
bool configured = false
 Configuration ready indicator.
 
Dictionary< AREyes, Vector3 > eyePositions
 
Dictionary< AREyes, Quaternion > eyeRotations
 
GlassesPreviewCore previewCore
 
- Public Attributes inherited from TiltFive.Glasses.BaseGlassesCore
GlassesHandle glassesHandle
 
GameObject headPoseRoot
 

Protected Member Functions

override void SetDrivenObjectTransform (GlassesSettings settings, ScaleSettings scaleSettings, GameBoardSettings gameBoardSettings)
 
- Protected Member Functions inherited from TiltFive.Glasses.BaseGlassesCore
override void Update (GlassesSettings glassesSettings, ScaleSettings scaleSettings, GameBoardSettings gameBoardSettings)
 Updates this T:TiltFive.Glasses.BaseGlassesCore
 
override void SetDefaultPoseGameboardSpace (GlassesSettings settings)
 
override void SetPoseUnityWorldSpace (ScaleSettings scaleSettings, GameBoardSettings gameBoardSettings)
 Sets the pose values of the tracked object in Unity World Space.
 
override bool TryCheckConnected (out bool connected)
 Determines whether the tracked object is still connected.
 
override bool TryGetStateFromPlugin (out T5_GlassesPose glassesPose, out bool poseIsValid, GameBoardSettings gameBoardSettings)
 
override void SetPoseGameboardSpace (in T5_GlassesPose glassesPose, GlassesSettings glassesSettings, ScaleSettings scaleSettings, GameBoardSettings gameboardSettings)
 
override void SetInvalidPoseGameboardSpace (in T5_GlassesPose glassesPose, GlassesSettings settings, ScaleSettings scaleSettings, GameBoardSettings gameboardSettings)
 
override void SetDrivenObjectTransform (GlassesSettings settings, ScaleSettings scaleSettings, GameBoardSettings gameBoardSettings)
 
- Protected Member Functions inherited from TiltFive.TrackableCore< GlassesSettings, T5_GlassesPose >
void Reset (TSettings settings)
 
virtual void Update (TSettings settings, ScaleSettings scaleSettings, GameBoardSettings gameboardSettings)
 
abstract void SetDefaultPoseGameboardSpace (TSettings settings)
 Gets the default pose of the tracked object.
 
abstract void SetPoseGameboardSpace (in TState state, TSettings settings, ScaleSettings scaleSettings, GameBoardSettings gameboardSettings)
 Sets the pose values of the tracked object in Unity World Space.
 
abstract void SetInvalidPoseGameboardSpace (in TState state, TSettings settings, ScaleSettings scaleSettings, GameBoardSettings gameboardSettings)
 Sets the pose values of the tracked object in Unity World Space when we already know the pose is invalid.
 
abstract void SetPoseUnityWorldSpace (ScaleSettings scaleSettings, GameBoardSettings gameboardSettings)
 Sets the pose values of the tracked object in Unity World Space.
 
abstract bool TryCheckConnected (out bool connected)
 Determines whether the tracked object is still connected.
 
abstract bool TryGetStateFromPlugin (out TState state, out bool poseIsValid, GameBoardSettings gameboardSettings)
 Gets the latest pose for the tracked object from the native plugin.
 
abstract void SetDrivenObjectTransform (TSettings settings, ScaleSettings scaleSettings, GameBoardSettings gameboardSettings)
 Sets the pose of the object(s) being driven by TrackableCore.
 

Properties

bool TrackingUpdated = false [get, private set]
 Gets a value indicating whether this T:TiltFive.Glasses.GlassesCore tracking was successfully updated.
 
- Properties inherited from TiltFive.Glasses.BaseGlassesCore
Transform headPose [get]
 
- Properties inherited from TiltFive.TrackableCore< GlassesSettings, T5_GlassesPose >
Pose Pose_GameboardSpace [get]
 The pose of the trackable w.r.t. the gameboard reference frame.
 
Pose Pose_UnityWorldSpace [get]
 The Pose of the trackable in Unity world space.
 
bool IsTracked [get]
 Whether or not the trackable is being tracked.
 
bool IsConnected [get]
 Whether or not the trackable is connected.
 

Private Attributes

SplitStereoCamera splitStereoCamera = null
 The split stereo camera implementation used in lieu of XRSettings.
 

Additional Inherited Members

- Static Protected Member Functions inherited from TiltFive.TrackableCore< GlassesSettings, T5_GlassesPose >
static Vector3 ConvertPosGBDToUGBD (Vector3 pos_GBD)
 
static Pose GameboardToWorldSpace (Pose pose_GameboardSpace, ScaleSettings scaleSettings, GameBoardSettings gameboardSettings)
 
static Vector3 GameboardToWorldSpace (Vector3 pos_UGBD, ScaleSettings scaleSettings, GameBoardSettings gameboardSettings)
 
static Quaternion GameboardToWorldSpace (Quaternion rotToUGBD_OBJ, GameBoardSettings gameboardSettings)
 
static Vector3 WorldToGameboardSpace (Vector3 pos_UWRLD, ScaleSettings scaleSettings, GameBoardSettings gameboardSettings)
 
static Quaternion WorldToGameboardSpace (Quaternion rotToUWRLD_OBJ, GameBoardSettings gameboardSettings)
 
- Protected Attributes inherited from TiltFive.TrackableCore< GlassesSettings, T5_GlassesPose >
Pose pose_UGBD
 
Pose pose_UWRLD
 
bool isTracked
 
bool isConnected
 
Pose gameboardPos_UWRLD
 The pose of the gameboard reference frame w.r.t. the Unity world-space reference frame.
 

Detailed Description

Internal Glasses core runtime.

Definition at line 824 of file Glasses.cs.

Constructor & Destructor Documentation

◆ GlassesCore()

TiltFive.Glasses.GlassesCore.GlassesCore ( GlassesHandle  glassesHandle)

Definition at line 849 of file Glasses.cs.

849 :
850 base(glassesHandle, T5_GlassesPoseUsage.GlassesPresentation, $"Glasses {glassesHandle}")
851 {
852 if(!Player.TryGetPlayerIndex(glassesHandle, out playerIndex))
853 {
854 Player.TryAddPlayer(glassesHandle, out playerIndex);
855 }
856 previewCore = new GlassesPreviewCore(glassesHandle);
857 CameraImage.Initialize(glassesHandle);
858
859 Log.Info($"Glasses {glassesHandle} connected.");
860 }
The Camera Frame API and runtime.
Definition: CameraImage.cs:31
GlassesPreviewCore previewCore
Definition: Glasses.cs:847
The Logger.
Definition: Log.cs:42
static void Info(string m, params object[] list)
INFO logging function call.
Definition: Log.cs:140
Provides access to player settings and functionality.
Definition: Player.cs:16
T5_GlassesPoseUsage
Glasses pose usage indicator.

References TiltFive.Logging.Log.Info().

Member Function Documentation

◆ Dispose()

override void TiltFive.Glasses.GlassesCore.Dispose ( )
virtual

Reimplemented from TiltFive.Glasses.BaseGlassesCore.

Definition at line 862 of file Glasses.cs.

863 {
864 GameObject.Destroy(splitStereoCamera);
865 GameObject.Destroy(baseObject);
866 CameraImage.RemoveCore(glassesHandle);
868
869 base.Dispose();
870
871 Log.Info($"Glasses {glassesHandle} (\"{friendlyName}\") disconnected");
872 }
SplitStereoCamera splitStereoCamera
The split stereo camera implementation used in lieu of XRSettings.
Definition: Glasses.cs:883

References TiltFive.Glasses.BaseGlassesCore.Dispose(), and TiltFive.Logging.Log.Info().

◆ Reset()

void TiltFive.Glasses.GlassesCore.Reset ( GlassesSettings  glassesSettings,
SpectatorSettings  spectatorSettings 
)

Reset this T:TiltFive.Glasses.GlassesCore

Parameters
glassesSettingsGlasses settings for configuring the instance.
spectatorSettingsSpectator settings for configuring the instance.

Definition at line 893 of file Glasses.cs.

894 {
895 base.Reset(glassesSettings);
896
897 configured = false;
898
899 if(null == spectatorSettings.spectatorCamera)
900 {
901 Log.Error($"Required Camera assignment missing from { spectatorSettings.GetType() }. Check Spectator settings in Tilt Five Manager");
902 return;
903 }
904
905#if UNITY_EDITOR
906 if (glassesSettings.tiltFiveXR)
907 {
908#endif
909 //if the splitScreenCamera does not exist already.
910 if (null == splitStereoCamera)
911 {
912 //get the head pose camera's GameObject
913 GameObject spectatorCameraObject = spectatorSettings.spectatorCamera.gameObject;
914
915 // Initialize the SplitStereoCamera
916 splitStereoCamera = spectatorCameraObject.AddComponent<SplitStereoCamera>();
917 if (null == headPoseRoot)
918 {
919
920 headPoseRoot = new GameObject($"Glasses {glassesHandle}");
921 previewCore = new GlassesPreviewCore(glassesHandle);
922 }
923 if (glassesSettings.objectTemplate && null == baseObject)
924 {
925 baseObject = GameObject.Instantiate(glassesSettings.objectTemplate);
926 baseObject.transform.parent = headPoseRoot.transform;
927 baseObject.name = $"{baseObject.transform.parent.name} - Prefab {playerIndex}";
928
929#if UNITY_2019_1_OR_NEWER && INPUTSYSTEM_AVAILABLE
930 // If the provided prefab includes a playerInput, we assume the developer
931 // is trying to use the input system to manage/enumerate their players.
932 // Warn the developer that they should include a PlayerInputManager
933 // if there isn't one already.
934 var playerInput = baseObject.GetComponentInChildren<PlayerInput>();
935 var playerInputManager = GameObject.FindObjectOfType<PlayerInputManager>();
936 if (playerInput != null && playerInputManager == null)
937 {
938 Log.Warn("No PlayerInputManager detected. " +
939 "Add a PlayerInputManager to the scene to enable the Input System " +
940 "to enumerate players as T5 devices connect/disconnect.");
941 }
942
943 if (playerInput != null && playerInput.actions != null && playerInput.actions.controlSchemes.Count < 1)
944 {
945 // Control Schemes appear to be very important when creating an InputUser.
946 // This isn't well-documented, but this can be a problem when working with a brand new empty Action Map.
947 // If the action map doesn't include any defined schemes, User #1 (the second user)
948 // will not be created in the Input System, and it isn't an obvious thing to debug.
949 // Warn the developer if the action map they provide doesn't have any schemes defined yet.
950 Log.Warn("The prefab provided to TiltFiveManager2 appears to have a PlayerInput component " +
951 "with an action map assigned, but the provided action map has no defined control schemes. " +
952 "This may cause the input system to fail to create a new InputUser for players 2 and beyond. " +
953 "Consider defining a control scheme in the provided action map.");
954 }
955#endif
956 }
957
958 splitStereoCamera.Initialize(headPoseRoot, glassesSettings, spectatorSettings);
959 }
960#if UNITY_EDITOR
961 }
962#endif //UNITY_EDITOR
963
965
966 configured = true;
967 }
bool TryGetFriendlyName(out string friendlyName)
Definition: Glasses.cs:986
bool configured
Configuration ready indicator.
Definition: Glasses.cs:833
GameObject objectTemplate
The object used as a template for creating the base Game Object when a pair of glasses connects.
static void Warn(string m, params object[] list)
WARN logging function call.
Definition: Log.cs:166
static void Error(string m, params object[] list)
ERROR logging function call.
Definition: Log.cs:127
Camera spectatorCamera
The camera used for rendering the onscreen preview.
void Initialize(GameObject headPoseRoot, GlassesSettings glassesSettings, SpectatorSettings spectatorSettings)

References TiltFive.Logging.Log.Error(), TiltFive.SplitStereoCamera.Initialize(), TiltFive.GlassesSettings.objectTemplate, TiltFive.SpectatorSettings.spectatorCamera, and TiltFive.Logging.Log.Warn().

◆ SetDrivenObjectTransform()

override void TiltFive.Glasses.GlassesCore.SetDrivenObjectTransform ( GlassesSettings  settings,
ScaleSettings  scaleSettings,
GameBoardSettings  gameBoardSettings 
)
protected

Definition at line 1136 of file Glasses.cs.

1137 {
1138 base.SetDrivenObjectTransform(settings, scaleSettings, gameBoardSettings);
1139 }

◆ TryGetFriendlyName()

bool TiltFive.Glasses.GlassesCore.TryGetFriendlyName ( out string  friendlyName)

Definition at line 986 of file Glasses.cs.

987 {
988 T5_StringUTF8 friendlyNameResult = "";
989 int result = 1;
990
991 try
992 {
993 result = NativePlugin.GetGlassesFriendlyName(glassesHandle, ref friendlyNameResult);
994 }
995 catch (System.Exception e)
996 {
997 Log.Error($"Error getting friendly name: {e.Message}");
998 }
999 finally
1000 {
1001 friendlyName = (result == 0)
1002 ? friendlyNameResult
1003 : null;
1004
1005 // Unfortunately we can't use a "using" block for friendlyNameResult
1006 // since "using" parameters are readonly, preventing us from passing it via "ref".
1007 // We do the next best thing with try-finally and dispose of it here.
1008 friendlyNameResult.Dispose();
1009 }
1010
1011 return result == 0;
1012 }
static int GetGlassesFriendlyName(UInt64 glassesHandle, ref T5_StringUTF8 glassesFriendlyName)
Represents a string value.
void Dispose()
Safely disposes of this T5_StringUTF8 and any unmanaged memory allocated during its construction.

References TiltFive.T5_StringUTF8.Dispose(), TiltFive.Logging.Log.Error(), and TiltFive.NativePlugin.GetGlassesFriendlyName().

◆ Update()

virtual void TiltFive.Glasses.GlassesCore.Update ( GlassesSettings  glassesSettings,
ScaleSettings  scaleSettings,
GameBoardSettings  gameBoardSettings,
SpectatorSettings  spectatorSettings 
)
virtual

Updates this T:TiltFive.Glasses.GlassesCore

Parameters
glassesSettingsGlasses settings for the update.

Definition at line 1018 of file Glasses.cs.

1019 {
1020 TrackingUpdated = false;
1021
1022 if (null == glassesSettings)
1023 {
1024 Log.Error("GlassesSettings configuration required for Glasses tracking Update.");
1025 return;
1026 }
1027
1028 if (null == splitStereoCamera)
1029 {
1030 Log.Error($"Stereo camera(s) missing from Glasses {glassesHandle} - aborting Update.");
1031 return;
1032 }
1033
1034 if (glassesSettings.cameraTemplate != splitStereoCamera.cameraTemplate)
1035 {
1036 Log.Warn("Found mismatched template Cameras in GlassesCore Update - should call Reset.");
1037 return;
1038 }
1039
1040 if (spectatorSettings != splitStereoCamera.spectatorSettings)
1041 {
1042 Log.Warn("Found mismatched spectator settings in GlassesCore Update - should call Reset.");
1043 return;
1044 }
1045
1046 // Obtain the latest glasses poses.
1047 base.Update(glassesSettings, scaleSettings, gameBoardSettings);
1048 previewCore.Update(glassesSettings, scaleSettings, gameBoardSettings);
1049
1050 // Check whether the glasses are plugged in and available.
1052 splitStereoCamera.glassesHandle = glassesHandle;
1053 splitStereoCamera.enabled = glassesAvailable;
1054
1055 // Sync settings with splitStereoCamera
1056 splitStereoCamera.glassesSettings = glassesSettings;
1057 splitStereoCamera.spectatorSettings = spectatorSettings;
1058
1059 // Enable spectating for player specified in the spectator settings, if they're available.
1060 splitStereoCamera.UseSpectatorCamera = Player.IsConnected(spectatorSettings.spectatedPlayer)
1061 && Player.TryGetGlassesHandle(spectatorSettings.spectatedPlayer, out var spectatorGlassesHandle)
1062 && spectatorGlassesHandle == glassesHandle;
1063
1064 // Get the glasses pose in Unity world-space.
1065 float scaleToUGBD_UWRLD = scaleSettings.physicalMetersPerWorldSpaceUnit * gameBoardSettings.gameBoardScale;
1066 float scaleToUWRLD_UGBD = scaleSettings.GetScaleToUWRLD_UGBD(gameBoardSettings.gameBoardScale);
1067
1068 // Set the game board transform on the SplitStereoCamera.
1069 splitStereoCamera.posUGBD_UWRLD = gameboardPos_UWRLD.position;
1070 splitStereoCamera.rotToUGBD_UWRLD = gameboardPos_UWRLD.rotation;
1071 splitStereoCamera.scaleToUGBD_UWRLD = scaleToUGBD_UWRLD;
1072
1073 // TODO: Revisit native XR support.
1074
1075 // NOTE: We do this because "Mock HMD" in UNITY_2017_0_2_OR_NEWER
1076 // the fieldOfView is locked to 111.96 degrees (Vive emulation),
1077 // so setting custom projection matrices is broken. If Unity
1078 // opens the API to custom settings, we can go back to native XR
1079 // support.
1080
1081 // Manual split screen 'new glasses' until the day Unity lets
1082 // me override their Mock HMD settings.
1083
1084 // compute half ipd translation
1085 float ipd_UGBD = GlassesSettings.DEFAULT_IPD_UGBD;
1087 {
1088 Log.Error("Failed to obtain Glasses IPD");
1089 }
1090 float ipd_UWRLD = scaleToUWRLD_UGBD * ipd_UGBD;
1091 Vector3 eyeOffset = (headPose.right.normalized * (ipd_UWRLD * 0.5f));
1092
1093 // set the left eye camera offset from the head by the half ipd amount (-)
1094 eyePositions[AREyes.EYE_LEFT] = headPose.position - eyeOffset;
1095 eyeRotations[AREyes.EYE_LEFT] = headPose.rotation;
1096
1097 // set the right eye camera offset from the head by the half ipd amount (+)
1098 eyePositions[AREyes.EYE_RIGHT] = headPose.position + eyeOffset;
1099 eyeRotations[AREyes.EYE_RIGHT] = headPose.rotation;
1100
1101 Camera leftEyeCamera = splitStereoCamera.leftEyeCamera;
1102 if (null != leftEyeCamera)
1103 {
1104 GameObject leftEye = leftEyeCamera.gameObject;
1105 leftEye.transform.position = eyePositions[AREyes.EYE_LEFT];
1106 leftEye.transform.rotation = eyeRotations[AREyes.EYE_LEFT];
1107
1108 //make sure projection fields are synchronized to the head camera.
1109 leftEyeCamera.nearClipPlane = glassesSettings.nearClipPlane / scaleToUGBD_UWRLD;
1110 leftEyeCamera.farClipPlane = glassesSettings.farClipPlane / scaleToUGBD_UWRLD;
1111 leftEyeCamera.fieldOfView = glassesSettings.fieldOfView;
1112 leftEyeCamera.cullingMask = glassesSettings.cullingMask;
1113 }
1114
1115 Camera rightEyeCamera = splitStereoCamera.rightEyeCamera;
1116 if (null != rightEyeCamera)
1117 {
1118 GameObject rightEye = rightEyeCamera.gameObject;
1119 rightEye.transform.position = eyePositions[AREyes.EYE_RIGHT];
1120 rightEye.transform.rotation = eyeRotations[AREyes.EYE_RIGHT];
1121
1122 //make sure projection fields are synchronized to the head camera.
1123 rightEyeCamera.nearClipPlane = glassesSettings.nearClipPlane / scaleToUGBD_UWRLD;
1124 rightEyeCamera.farClipPlane = glassesSettings.farClipPlane / scaleToUGBD_UWRLD;
1125 rightEyeCamera.fieldOfView = glassesSettings.fieldOfView;
1126 rightEyeCamera.cullingMask = glassesSettings.cullingMask;
1127 }
1128
1129 // TODO: Poll less frequently by plumbing t5_hmdGetChangedParams up to Unity.
1130 if (!TryGetFriendlyName(out glassesSettings.friendlyName))
1131 {
1132 glassesSettings.friendlyName = GlassesSettings.DEFAULT_FRIENDLY_NAME;
1133 }
1134 }
TiltFive.Glasses.AREyes AREyes
static bool GetGlassesIPD(UInt64 glassesHandle, ref float glassesIPD)
Definition: Display.cs:398
float gameBoardScale
The game board's scale multiplies the perceived size of objects in the scene.
bool TrackingUpdated
Gets a value indicating whether this T:TiltFive.Glasses.GlassesCore tracking was successfully updated...
Definition: Glasses.cs:878
Dictionary< AREyes, Vector3 > eyePositions
Definition: Glasses.cs:835
Dictionary< AREyes, Quaternion > eyeRotations
Definition: Glasses.cs:841
new void Update(GlassesSettings glassesSettings, ScaleSettings scaleSettings, GameBoardSettings gameBoardSettings)
Updates this T:TiltFive.Glasses.GlassesPreviewCore
Definition: Glasses.cs:811
static bool glassesAvailable
Indicates whether the glasses are plugged in and functioning.
Definition: Glasses.cs:120
GlassesSettings encapsulates all configuration data used by the Glasses' tracking runtime to compute ...
Camera cameraTemplate
The camera used as a template for creating the eye cameras at runtime.
static readonly string DEFAULT_FRIENDLY_NAME
LayerMask cullingMask
The culling mask to be used by the eye cameras for this pair of glasses.
static bool IsConnected(PlayerIndex playerIndex)
Determines whether the specified player has an associated pair of glasses connected.
Definition: Player.cs:32
float GetScaleToUWRLD_UGBD(float gameboardScale)
PlayerIndex spectatedPlayer
The player that will have their perspective mirrored on screen.
Camera leftEyeCamera
The left eye Camera property.
Camera cameraTemplate
The Camera used as a template when creating the eye cameras.
Camera rightEyeCamera
The right eye Camera property.
Pose gameboardPos_UWRLD
The pose of the gameboard reference frame w.r.t. the Unity world-space reference frame.

References TiltFive.SplitStereoCamera.cameraTemplate, TiltFive.GlassesSettings.cameraTemplate, TiltFive.GlassesSettings.cullingMask, TiltFive.GlassesSettings.DEFAULT_FRIENDLY_NAME, TiltFive.GlassesSettings.DEFAULT_IPD_UGBD, TiltFive.Logging.Log.Error(), TiltFive.GlassesSettings.fieldOfView, TiltFive.GlassesSettings.friendlyName, TiltFive.GameBoardSettings.gameBoardScale, TiltFive.Display.GetGlassesIPD(), TiltFive.ScaleSettings.GetScaleToUWRLD_UGBD(), TiltFive.Player.IsConnected(), TiltFive.SplitStereoCamera.leftEyeCamera, TiltFive.SplitStereoCamera.rightEyeCamera, TiltFive.SpectatorSettings.spectatedPlayer, TiltFive.Glasses.GlassesPreviewCore.Update(), and TiltFive.Logging.Log.Warn().

◆ Validate()

bool TiltFive.Glasses.GlassesCore.Validate ( GlassesSettings  glassesSettings,
SpectatorSettings  spectatorSettings 
)

Tests this T:TiltFive.Glasses.GlassesCore for validity with the parameterized T:TiltFive.Glasses.GlassesSettings

Returns
true, if valid, false otherwise.
Parameters
glassesSettingsGlasses settings.

Definition at line 975 of file Glasses.cs.

976 {
977 bool valid = true;
978
979 valid &= splitStereoCamera != null
980 && glassesSettings.cameraTemplate == splitStereoCamera.cameraTemplate
981 && spectatorSettings == splitStereoCamera.spectatorSettings;
982
983 return valid;
984 }

Member Data Documentation

◆ baseObject

GameObject TiltFive.Glasses.GlassesCore.baseObject

Definition at line 827 of file Glasses.cs.

◆ configured

bool TiltFive.Glasses.GlassesCore.configured = false

Configuration ready indicator.

Definition at line 833 of file Glasses.cs.

◆ eyePositions

Dictionary<AREyes, Vector3> TiltFive.Glasses.GlassesCore.eyePositions
Initial value:
= new Dictionary<AREyes, Vector3>()
{
{ AREyes.EYE_LEFT, new Vector3() },
{ AREyes.EYE_RIGHT, new Vector3() }
}

Definition at line 835 of file Glasses.cs.

◆ eyeRotations

Dictionary<AREyes, Quaternion> TiltFive.Glasses.GlassesCore.eyeRotations
Initial value:
= new Dictionary<AREyes, Quaternion>()
{
{ AREyes.EYE_LEFT, new Quaternion() },
{ AREyes.EYE_RIGHT, new Quaternion() }
}

Definition at line 841 of file Glasses.cs.

◆ friendlyName

string TiltFive.Glasses.GlassesCore.friendlyName

Definition at line 828 of file Glasses.cs.

◆ playerIndex

PlayerIndex TiltFive.Glasses.GlassesCore.playerIndex

Definition at line 826 of file Glasses.cs.

◆ previewCore

GlassesPreviewCore TiltFive.Glasses.GlassesCore.previewCore

Definition at line 847 of file Glasses.cs.

◆ splitStereoCamera

SplitStereoCamera TiltFive.Glasses.GlassesCore.splitStereoCamera = null
private

The split stereo camera implementation used in lieu of XRSettings.

Definition at line 883 of file Glasses.cs.

Property Documentation

◆ TrackingUpdated

bool TiltFive.Glasses.GlassesCore.TrackingUpdated = false
getprivate set

Gets a value indicating whether this T:TiltFive.Glasses.GlassesCore tracking was successfully updated.

true if tracking updated; otherwise, false.

Definition at line 878 of file Glasses.cs.

878{ get; private set; } = false;

The documentation for this class was generated from the following file: