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;
}
}
}