/// Registers a <see href="https://docs.unity3d.com/ScriptReference/GameObject.html">GameObject</see> to listen for events from this Event System.
/// </summary>
/// <param name="listener"><see href="https://docs.unity3d.com/ScriptReference/GameObject.html">GameObject</see> to add to <see cref="EventListeners"/>.</param>
[Obsolete("Register using a game object causes all components of this object to receive global events of all types. "+
"Use RegisterHandler<> methods instead to avoid unexpected behavior.")]
voidRegister(GameObjectlistener);
/// <summary>
/// Unregisters a <see href="https://docs.unity3d.com/ScriptReference/GameObject.html">GameObject</see> from listening for events from this Event System.
/// </summary>
/// <param name="listener"><see href="https://docs.unity3d.com/ScriptReference/GameObject.html">GameObject</see> to remove from <see cref="EventListeners"/>.</param>
[Obsolete("Unregister using a game object will disable listening of global events for all components of this object. "+
"Use UnregisterHandler<> methods instead to avoid unexpected behavior.")]
voidUnregister(GameObjectlistener);
/// <summary>
/// Registers the given handler as a global listener for all events handled via the T interface.
/// T must be an interface type, not a class type, derived from IEventSystemHandler.
/// </summary>
/// <remarks>
/// If you want to register a single C# object as global handler for several event handling interfaces,
/// you must call this function for each interface type.
/// </remarks>
/// <param name="handler">Handler to receive global input events of specified handler type.</param>
/// The Focus Enter event is raised on this <see href="https://docs.unity3d.com/ScriptReference/GameObject.html">GameObject</see> whenever a <see cref="Microsoft.MixedReality.Toolkit.Input.IMixedRealityPointer"/>'s focus enters this <see href="https://docs.unity3d.com/ScriptReference/GameObject.html">GameObject</see>'s <see href="https://docs.unity3d.com/ScriptReference/Collider.html">Collider</see>.
/// </summary>
voidOnFocusEnter(FocusEventDataeventData);
/// <summary>
/// The Focus Exit event is raised on this <see href="https://docs.unity3d.com/ScriptReference/GameObject.html">GameObject</see> whenever a <see cref="Microsoft.MixedReality.Toolkit.Input.IMixedRealityPointer"/>'s focus leaves this <see href="https://docs.unity3d.com/ScriptReference/GameObject.html">GameObject</see>'s <see href="https://docs.unity3d.com/ScriptReference/Collider.html">Collider</see>.
/// Stores pointers and transform information for Hand Mesh data provided by current platform. This is the data container for the IMixedRealityHandMeshHandler input system event interface.
/// </summary>
publicclassHandMeshInfo
{
/// <summary>
/// Pointer to vertices buffer of the hand mesh in the local coordinate system (i.e relative to center of hand)
/// </summary>
publicVector3[]vertices;
/// <summary>
/// Pointer to the triangle indices buffer of the hand mesh.
/// </summary>
publicint[]triangles;
/// <summary>
/// Pointer to the normals buffer of the hand mesh in the local coordinate system
/// </summary>
publicVector3[]normals;
/// <summary>
/// Pointer to UV mapping of the hand mesh triangles
/// </summary>
publicVector2[]uvs;
/// <summary>
/// Translation to apply to mesh to go from local coordinates to world coordinates
/// </summary>
publicVector3position;
/// <summary>
/// Rotation to apply to mesh to go from local coordinates to world coordinates
/// Interface for cursor modifiers that can modify a <see href="https://docs.unity3d.com/ScriptReference/GameObject.html">GameObject</see>'s properties.
/// Transform for which this <see cref="IMixedRealityCursor"/> modifies applies its various properties.
/// </summary>
TransformHostTransform{get;set;}
/// <summary>
/// How much a <see cref="IMixedRealityCursor"/>'s position should be offset from the surface of the <see href="https://docs.unity3d.com/ScriptReference/GameObject.html">GameObject</see> when overlapping.
/// </summary>
Vector3CursorPositionOffset{get;set;}
/// <summary>
/// Should the <see cref="IMixedRealityCursor"/> snap to the <see href="https://docs.unity3d.com/ScriptReference/GameObject.html">GameObject</see>'s position?
/// </summary>
boolSnapCursorPosition{get;set;}
/// <summary>
/// Scale of the <see cref="IMixedRealityCursor"/> when looking at this <see href="https://docs.unity3d.com/ScriptReference/GameObject.html">GameObject</see>.
/// </summary>
Vector3CursorScaleOffset{get;set;}
/// <summary>
/// Direction of the <see cref="IMixedRealityCursor"/> offset.
/// </summary>
Vector3CursorNormalOffset{get;set;}
/// <summary>
/// If true, the normal from the pointing vector will be used to orient the <see cref="IMixedRealityCursor"/> instead of the targeted <see href="https://docs.unity3d.com/ScriptReference/GameObject.html">GameObject</see>'s normal at point of contact.
/// </summary>
boolUseGazeBasedNormal{get;set;}
/// <summary>
/// Should the <see cref="IMixedRealityCursor"/> be hidden when this <see href="https://docs.unity3d.com/ScriptReference/GameObject.html">GameObject</see> is focused?
/// </summary>
boolHideCursorOnFocus{get;set;}
/// <summary>
/// <see cref="IMixedRealityCursor"/> animation parameters to set when this <see href="https://docs.unity3d.com/ScriptReference/GameObject.html">GameObject</see> is focused. Leave empty for none.
/// </summary>
AnimatorParameter[]CursorParameters{get;}
/// <summary>
/// Indicates whether the <see cref="IMixedRealityCursor"/> should be visible or not.
/// </summary>
/// <returns>True if <see cref="IMixedRealityCursor"/> should be visible, false if not.</returns>
boolGetCursorVisibility();
/// <summary>
/// Returns the <see cref="IMixedRealityCursor"/> position after considering this modifier.
/// </summary>
/// <param name="cursor"><see cref="IMixedRealityCursor"/> that is being modified.</param>
/// <returns>New position for the <see cref="IMixedRealityCursor"/></returns>
/// Returns the modified <see href="https://docs.unity3d.com/ScriptReference/Transform.html">Transform</see> for the <see cref="IMixedRealityCursor"/> after considering this modifier.
/// </summary>
/// <param name="cursor">Cursor that is being modified.</param>