// Copyright (c) 2023 Bytedance
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/XR_BD_controller_interaction.adoc[]

*Last Modified Date*::
    2023-08-10

IP Status*::
    No known IP claims.

*Contributors*::
 Baolin Fu, Bytedance +
 Shanliang Xu, Bytedance +
 Zhanrui Jia, Bytedance

*Overview*

This extension defines the interaction profile for PICO Neo3, PICO 4, and
PICO G3 Controllers.

*BD(Bytedance) Controller interaction profile*

Interaction profile path for PICO Neo3:

* pathname:/interaction_profiles/bytedance/pico_neo3_controller

// This extension does not meet the current style guide requirements:
// the path name must be vendor-suffixed in new extensions.
:legacy-path: /interaction_profiles/bytedance/pico_neo3_controller
:properly-suffixed-path: /interaction_profiles/bytedance/pico_neo3_controller_bd
include::{config}/interaction_profile_missing_suffix_warning.adoc[]

Interaction profile path for PICO 4:

* pathname:/interaction_profiles/bytedance/pico4_controller

// This extension does not meet the current style guide requirements:
// the path name must be vendor-suffixed in new extensions.
:legacy-path: /interaction_profiles/bytedance/pico4_controller
:properly-suffixed-path: /interaction_profiles/bytedance/pico4_controller_bd
include::{config}/interaction_profile_missing_suffix_warning.adoc[]

Interaction profile path for PICO G3:

* pathname:/interaction_profiles/bytedance/pico_g3_controller

// This extension does not meet the current style guide requirements:
// the path name must be vendor-suffixed in new extensions.
:legacy-path: /interaction_profiles/bytedance/pico_g3_controller
:properly-suffixed-path: /interaction_profiles/bytedance/pico_g3_controller_bd
include::{config}/interaction_profile_missing_suffix_warning.adoc[]

Valid for user paths for pico_neo3_controller, pico4_controller, and
pico_g3_controller:

* pathname:/user/hand/left
* pathname:/user/hand/right

Supported component paths for pico_neo3_controller:

* On /user/hand/left only:
** subpathname:/input/x/click
** subpathname:/input/x/touch
** subpathname:/input/y/click
** subpathname:/input/y/touch
* On /user/hand/right only:
** subpathname:/input/a/click
** subpathname:/input/a/touch
** subpathname:/input/b/click
** subpathname:/input/b/touch
* subpathname:/input/menu/click
* subpathname:/input/system/click (may: not be available for application
  use)
* subpathname:/input/trigger/click
* subpathname:/input/trigger/value
* subpathname:/input/trigger/touch
* subpathname:/input/thumbstick/y
* subpathname:/input/thumbstick/x
* subpathname:/input/thumbstick/click
* subpathname:/input/thumbstick/touch
* subpathname:/input/squeeze/click
* subpathname:/input/squeeze/value
* subpathname:/input/grip/pose
* subpathname:/input/aim/pose
* subpathname:/output/haptic

Supported component paths for pico4_controller:

* On /user/hand/left only:
** subpathname:/input/x/click
** subpathname:/input/x/touch
** subpathname:/input/y/click
** subpathname:/input/y/touch
** subpathname:/input/menu/click
* On /user/hand/right only:
** subpathname:/input/a/click
** subpathname:/input/a/touch
** subpathname:/input/b/click
** subpathname:/input/b/touch
* subpathname:/input/system/click (may: not be available for application
use)
* subpathname:/input/trigger/click
* subpathname:/input/trigger/value
* subpathname:/input/trigger/touch
* subpathname:/input/thumbstick/y
* subpathname:/input/thumbstick/x
* subpathname:/input/thumbstick/click
* subpathname:/input/thumbstick/touch
* subpathname:/input/squeeze/click
* subpathname:/input/squeeze/value
* subpathname:/input/grip/pose
* subpathname:/input/aim/pose
* subpathname:/output/haptic

Supported component paths for pico_g3_controller:

* subpathname:/input/trigger/click
* subpathname:/input/trigger/value
* subpathname:/input/menu/click
* subpathname:/input/grip/pose
* subpathname:/input/aim/pose
* subpathname:/input/thumbstick
* subpathname:/input/thumbstick/click

Be careful with the following difference:

* pico_neo3_controller supports subpathname:/input/menu/click both on
  pathname:/user/hand/left and pathname:/user/hand/right.
* pico4_controller supports subpathname:/input/menu/click only on
  pathname:/user/hand/left.
* pico_g3_controller has only one physical controller.
  When designing suggested bindings for this interaction profile, you may:
  suggest bindings for both pathname:/user/hand/left and
  pathname:/user/hand/right.
  However, only one of them will be active at a given time, so do not design
  interactions that require simultaneous use of both hands.

include::{config}/grip_surface_notice.adoc[]
include::{config}/ext_palm_pose_notice.adoc[]
include::{config}/ext_hand_interaction_notice.adoc[]

*New Object Types*

*New Flag Types*

*New Enum Constants*

*New Enums*

*New Structures*

*New Functions*

*Issues*

*Version History*

* Revision 1, 2023-01-04 (Baolin Fu)

** Initial extension description

* Revision 2, 2023-08-10 (Shanliang Xu)

** Add support for G3 devices
