namespace Zinnia.Tracking.CameraRig { using UnityEngine; using Zinnia.Data.Collection.List; using Zinnia.Extension; using Zinnia.Haptics; using Zinnia.Haptics.Collection; using Zinnia.Tracking.Velocity; /// /// Provides the basis for describing a CameraRig Alias Association by providing the linked elements of the CameraRig. /// public class LinkedAliasAssociationCollection : MonoBehaviour { #region PlayArea Settings [Header("PlayArea Settings")] [Tooltip("The associated PlayArea.")] [SerializeField] private GameObject playArea; /// /// The associated PlayArea. /// public GameObject PlayArea { get { return playArea; } set { playArea = value; } } #endregion #region Headset Settings [Header("Headset Settings")] [Tooltip("The associated Headset.")] [SerializeField] private GameObject headset; /// /// The associated Headset. /// public GameObject Headset { get { return headset; } set { headset = value; } } [Tooltip("The associated Headset Camera.")] [SerializeField] private Camera headsetCamera; /// /// The associated Headset Camera. /// public Camera HeadsetCamera { get { return headsetCamera; } set { headsetCamera = value; } } [Tooltip("The associated Headset Velocity Tracker.")] [SerializeField] private VelocityTracker headsetVelocityTracker; /// /// The associated Headset Velocity Tracker. /// public VelocityTracker HeadsetVelocityTracker { get { return headsetVelocityTracker; } set { headsetVelocityTracker = value; } } [Tooltip("A list of any additional cameras associated with the headset.")] [SerializeField] private CameraObservableList supplementHeadsetCameras; /// /// A list of any additional cameras associated with the headset. /// public CameraObservableList SupplementHeadsetCameras { get { return supplementHeadsetCameras; } set { supplementHeadsetCameras = value; } } [Tooltip("The details and status of the headset device.")] [SerializeField] private DeviceDetailsRecord headsetDeviceDetails; /// /// The details and status of the headset device. /// public DeviceDetailsRecord HeadsetDeviceDetails { get { return headsetDeviceDetails; } set { headsetDeviceDetails = value; } } [Tooltip("The dominant controller observer.")] [SerializeField] private DominantControllerObserver dominantController; /// /// The dominant controller observer. /// public DominantControllerObserver DominantController { get { return dominantController; } set { dominantController = value; } } #endregion #region Left Controller Settings [Header("Left Controller Settings")] [Tooltip("The associated Left Controller.")] [SerializeField] private GameObject leftController; /// /// The associated Left Controller. /// public GameObject LeftController { get { return leftController; } set { leftController = value; } } [Tooltip("The associated Left Controller Velocity Tracker.")] [SerializeField] private VelocityTracker leftControllerVelocityTracker; /// /// The associated Left Controller Velocity Tracker. /// public VelocityTracker LeftControllerVelocityTracker { get { return leftControllerVelocityTracker; } set { leftControllerVelocityTracker = value; } } [Tooltip("The main Left Controller Haptic Process profile.")] [SerializeField] private HapticProcess leftControllerHapticProcess; /// /// The main Left Controller Haptic Process profile. /// public HapticProcess LeftControllerHapticProcess { get { return leftControllerHapticProcess; } set { leftControllerHapticProcess = value; } } [Tooltip("A HapticProcess collection of haptic profiles that can be used with the Left Controller.")] [SerializeField] private HapticProcessObservableList leftControllerHapticProfiles; /// /// A collection of haptic profiles that can be used with the Left Controller. /// public HapticProcessObservableList LeftControllerHapticProfiles { get { return leftControllerHapticProfiles; } set { leftControllerHapticProfiles = value; } } [Tooltip("The details and status of the left controller device.")] [SerializeField] private DeviceDetailsRecord leftControllerDeviceDetails; /// /// The details and status of the left controller device. /// public DeviceDetailsRecord LeftControllerDeviceDetails { get { return leftControllerDeviceDetails; } set { leftControllerDeviceDetails = value; } } #endregion #region Right Controller Settings [Header("Right Controller Settings")] [Tooltip("The associated Right Controller.")] [SerializeField] private GameObject rightController; /// /// The associated Right Controller. /// public GameObject RightController { get { return rightController; } set { rightController = value; } } [Tooltip("The associated Right Controller Velocity Tracker.")] [SerializeField] private VelocityTracker rightControllerVelocityTracker; /// /// The associated Right Controller Velocity Tracker. /// public VelocityTracker RightControllerVelocityTracker { get { return rightControllerVelocityTracker; } set { rightControllerVelocityTracker = value; } } [Tooltip("The main Right Controller Haptic Process profile.")] [SerializeField] private HapticProcess rightControllerHapticProcess; /// /// The main Right Controller Haptic Process profile. /// public HapticProcess RightControllerHapticProcess { get { return rightControllerHapticProcess; } set { rightControllerHapticProcess = value; } } [Tooltip("A HapticProcess collection of supplement haptic settings that can be used with the Right Controller.")] [SerializeField] private HapticProcessObservableList rightControllerHapticProfiles; /// /// A collection of supplement haptic settings that can be used with the Right Controller. /// public HapticProcessObservableList RightControllerHapticProfiles { get { return rightControllerHapticProfiles; } set { rightControllerHapticProfiles = value; } } [Tooltip("The details and status of the right controller device.")] [SerializeField] private DeviceDetailsRecord rightControllerDeviceDetails; /// /// The details and status of the right controller device. /// public DeviceDetailsRecord RightControllerDeviceDetails { get { return rightControllerDeviceDetails; } set { rightControllerDeviceDetails = value; } } #endregion /// /// Clears . /// public virtual void ClearPlayArea() { if (!this.IsValidState()) { return; } PlayArea = default; } /// /// Clears . /// public virtual void ClearHeadset() { if (!this.IsValidState()) { return; } Headset = default; } /// /// Clears . /// public virtual void ClearHeadsetCamera() { if (!this.IsValidState()) { return; } HeadsetCamera = default; } /// /// Clears . /// public virtual void ClearHeadsetVelocityTracker() { if (!this.IsValidState()) { return; } HeadsetVelocityTracker = default; } /// /// Clears . /// public virtual void ClearSupplementHeadsetCameras() { if (!this.IsValidState()) { return; } SupplementHeadsetCameras = default; } /// /// Clears . /// public virtual void ClearHeadsetDeviceDetails() { if (!this.IsValidState()) { return; } HeadsetDeviceDetails = default; } /// /// Clears . /// public virtual void ClearDominantController() { if (!this.IsValidState()) { return; } DominantController = default; } /// /// Clears . /// public virtual void ClearLeftController() { if (!this.IsValidState()) { return; } LeftController = default; } /// /// Clears . /// public virtual void ClearLeftControllerVelocityTracker() { if (!this.IsValidState()) { return; } LeftControllerVelocityTracker = default; } /// /// Clears . /// public virtual void ClearLeftControllerHapticProcess() { if (!this.IsValidState()) { return; } LeftControllerHapticProcess = default; } /// /// Clears . /// public virtual void ClearLeftControllerHapticProfiles() { if (!this.IsValidState()) { return; } LeftControllerHapticProfiles = default; } /// /// Clears . /// public virtual void ClearLeftControllerDeviceDetails() { if (!this.IsValidState()) { return; } LeftControllerDeviceDetails = default; } /// /// Clears . /// public virtual void ClearRightController() { if (!this.IsValidState()) { return; } RightController = default; } /// /// Clears . /// public virtual void ClearRightControllerVelocityTracker() { if (!this.IsValidState()) { return; } RightControllerVelocityTracker = default; } /// /// Clears . /// public virtual void ClearRightControllerHapticProcess() { if (!this.IsValidState()) { return; } RightControllerHapticProcess = default; } /// /// Clears . /// public virtual void ClearRightControllerHapticProfiles() { if (!this.IsValidState()) { return; } RightControllerHapticProfiles = default; } /// /// Clears . /// public virtual void ClearRightControllerDeviceDetails() { if (!this.IsValidState()) { return; } RightControllerDeviceDetails = default; } } }