77 lines
2.7 KiB
C#
77 lines
2.7 KiB
C#
// Copyright (c) Microsoft Corporation.
|
|
// Licensed under the MIT License.
|
|
|
|
using Microsoft.MixedReality.Toolkit.Utilities;
|
|
using UnityEngine;
|
|
|
|
namespace Microsoft.MixedReality.Toolkit.Input
|
|
{
|
|
/// <summary>
|
|
/// Mixed Reality Toolkit controller definition, used to manage a specific controller type
|
|
/// </summary>
|
|
public interface IMixedRealityController
|
|
{
|
|
/// <summary>
|
|
/// Is the controller enabled?
|
|
/// </summary>
|
|
bool Enabled { get; set; }
|
|
|
|
/// <summary>
|
|
/// Outputs the current state of the Input Source, whether it is tracked or not. As defined by the SDK / Unity.
|
|
/// </summary>
|
|
TrackingState TrackingState { get; }
|
|
|
|
/// <summary>
|
|
/// The designated hand that the Input Source is managing, as defined by the SDK / Unity.
|
|
/// </summary>
|
|
Handedness ControllerHandedness { get; }
|
|
|
|
/// <summary>
|
|
/// The registered Input Source for this controller
|
|
/// </summary>
|
|
IMixedRealityInputSource InputSource { get; }
|
|
|
|
/// <summary>
|
|
/// The controller's "Visual" <see href="https://docs.unity3d.com/ScriptReference/Component.html">Component</see> in the scene.
|
|
/// </summary>
|
|
IMixedRealityControllerVisualizer Visualizer { get; }
|
|
|
|
/// <summary>
|
|
/// Indicates that this controller is currently providing position data.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// <para>This value may change during usage for some controllers. As a best practice,
|
|
/// be sure to check this value before using position data.</para>
|
|
/// </remarks>
|
|
bool IsPositionAvailable { get; }
|
|
|
|
/// <summary>
|
|
/// Indicates the accuracy of the position data being reported.
|
|
/// </summary>
|
|
bool IsPositionApproximate { get; }
|
|
|
|
/// <summary>
|
|
/// Indicates that this controller is currently providing rotation data.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// <para>This value may change during usage for some controllers. As a best practice,
|
|
/// be sure to check this value before using rotation data.</para>
|
|
/// </remarks>
|
|
bool IsRotationAvailable { get; }
|
|
|
|
/// <summary>
|
|
/// Mapping definition for this controller, linking the Physical inputs to logical Input System Actions
|
|
/// </summary>
|
|
MixedRealityInteractionMapping[] Interactions { get; }
|
|
|
|
Vector3 AngularVelocity { get; }
|
|
|
|
Vector3 Velocity { get; }
|
|
|
|
/// <summary>
|
|
/// Some controllers such as articulated should only be able
|
|
/// to invoke pointing/distant interactions in certain poses.
|
|
/// </summary>
|
|
bool IsInPointingPose { get; }
|
|
}
|
|
} |