mixedreality/com.microsoft.mixedreality..../Core/Providers/InputSimulation/IInputSimulationService.cs

157 lines
5.2 KiB
C#

// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
using System;
using UnityEngine;
namespace Microsoft.MixedReality.Toolkit.Input
{
public interface IInputSimulationService : IMixedRealityInputDeviceManager
{
/// <summary>
/// Typed representation of the ConfigurationProfile property.
/// </summary>
MixedRealityInputSimulationProfile InputSimulationProfile { get; }
/// <summary>
/// Simulated eye gaze behavior.
/// </summary>
EyeGazeSimulationMode EyeGazeSimulationMode { get; set; }
/// <summary>
/// Simulated controller behavior.
/// </summary>
ControllerSimulationMode ControllerSimulationMode { get; set; }
/// <summary>
/// Pose data for the left hand.
/// </summary>
SimulatedHandData HandDataLeft { get; }
/// <summary>
/// Pose data for the right hand.
/// </summary>
SimulatedHandData HandDataRight { get; }
/// <summary>
/// Pose data for the left motion controller.
/// </summary>
SimulatedMotionControllerData MotionControllerDataLeft { get; }
/// <summary>
/// Pose data for the right motion controller.
/// </summary>
SimulatedMotionControllerData MotionControllerDataRight { get; }
/// <summary>
/// If true then keyboard and mouse input are used to simulate controllers.
/// </summary>
bool UserInputEnabled { get; set; }
/// <summary>
/// The left controller is controlled by user input.
/// </summary>
bool IsSimulatingControllerLeft { get; }
/// <summary>
/// The right controller is controlled by user input.
/// </summary>
bool IsSimulatingControllerRight { get; }
/// <summary>
/// The left controller is always tracking.
/// </summary>
bool IsAlwaysVisibleControllerLeft { get; set; }
/// <summary>
/// The right controller is always tracking.
/// </summary>
bool IsAlwaysVisibleControllerRight { get; set; }
/// <summary>
/// Position of the left controller in view space.
/// </summary>
Vector3 ControllerPositionLeft { get; set; }
/// <summary>
/// Position of the right controller in view space.
/// </summary>
Vector3 ControllerPositionRight { get; set; }
/// <summary>
/// Rotation euler angles of the left controller in view space.
/// </summary>
Vector3 ControllerRotationLeft { get; set; }
/// <summary>
/// Rotation euler angles of the right controller in view space.
/// </summary>
Vector3 ControllerRotationRight { get; set; }
/// <summary>
/// Reset the left controller.
/// </summary>
void ResetControllerLeft();
/// <summary>
/// Reset the right controller.
/// </summary>
void ResetControllerRight();
#region Obsolete Properties
/// <summary>
/// Simulated hand behavior.
/// </summary>
[Obsolete("Use ControllerSimulationMode instead.")]
HandSimulationMode HandSimulationMode { get; set; }
/// <summary>
/// The left hand is controlled by user input.
/// </summary>
[Obsolete("Use IsSimulatingControllerLeft instead.")]
bool IsSimulatingHandLeft { get; }
/// <summary>
/// The right hand is controlled by user input.
/// </summary>
[Obsolete("Use IsSimulatingControllerRight instead.")]
bool IsSimulatingHandRight { get; }
/// <summary>
/// The left hand is always tracking.
/// </summary>
[Obsolete("Use IsAlwaysVisibleControllerLeft instead.")]
bool IsAlwaysVisibleHandLeft { get; set; }
/// <summary>
/// The right hand is always tracking.
/// </summary>
[Obsolete("Use IsAlwaysVisibleControllerRight instead.")]
bool IsAlwaysVisibleHandRight { get; set; }
/// <summary>
/// Position of the left hand in view space.
/// </summary>
[Obsolete("Use ControllerPositionLeft instead.")]
Vector3 HandPositionLeft { get; set; }
/// <summary>
/// Position of the right hand in view space.
/// </summary>
[Obsolete("Use ControllerPositionRight instead.")]
Vector3 HandPositionRight { get; set; }
/// <summary>
/// Rotation euler angles of the left hand in view space.
/// </summary>
[Obsolete("Use ControllerRotationLeft instead.")]
Vector3 HandRotationLeft { get; set; }
/// <summary>
/// Rotation euler angles of the right hand in view space.
/// </summary>
[Obsolete("Use ControllerRotationRight instead.")]
Vector3 HandRotationRight { get; set; }
/// <summary>
/// Reset the left hand.
/// </summary>
[Obsolete("Use ResetControllerLeft instead.")]
void ResetHandLeft();
/// <summary>
/// Reset the right hand.
/// </summary>
[Obsolete("Use ResetControllerRight instead.")]
void ResetHandRight();
#endregion
}
}