Skip to content
This repository has been archived by the owner on Aug 11, 2024. It is now read-only.

Change requests for controller provider inspectors #526

Conversation

FejZa
Copy link
Contributor

@FejZa FejZa commented Apr 14, 2020

XRTK - Mixed Reality Toolkit Change Request

Overview

I updated the inspector for controller data providers to include a simplified version that is suited for beginners and provides important features.

My reference for the layout of the inspector is Unity's render pipeline asset inspector. I think it provides a nice guidline for indentation levels and titles.

See screenshots for details.

reference_pipeline_settings
openvr_profile
lumin_profile
simulation_profile
oculus_profile

@SimonDarksideJ
Copy link
Contributor

Looks good to me from a UX point, a great improvement and first pass.
Couldn't add more to the code review beyond Stephen's comments.

Question, are you planning in another PR to also being back the simple Controller Image / Action selection controller popup @FejZa ?

@StephenHodgson
Copy link
Contributor

Yeah we can do the controller images in a separate PR or push. It was still something on my to-do list

@StephenHodgson StephenHodgson merged commit 768472a into feature/controller-mapping-refactor Apr 15, 2020
@StephenHodgson StephenHodgson deleted the feature/cmr-inspector-changes branch April 15, 2020 12:36
StephenHodgson added a commit that referenced this pull request Apr 26, 2020
* re-implemented controller visualization

* fixed profile generation

* Added default constructors for controllers

* fixed openVR controller instance creation

* fixed interaction profile inspector

* updated TryRenderController method

Added Async counterpart in the interface

* updated sdk checkout

* fixed mouse x/y default mappings

* updated axis processor menus

* updated sdk checkout

* Strip full asset path before we ask Unity for a unique name (paths should be relative to the project

* Made the interaction mapping profile inspector even more awesome

changed input processor to a base mixed reality profile to make sure it gets copied correctly on configure

* updated sdk checkout

* disabled controller popout window

* filter input actions by selected axis type

* cleaned up the constructors on MixedRealityInteractionMapping

* made the input action settable for the interaction mapping

* reverted quality settings change

* fixed controller popout window

* fixed some formatting in the controller popout window

* always show the popout window

* reverted removal of axis elements and fixed a bit of spacing issues

* added profile fields

* updated window with controller graphics

fixed a bug with the mouse drag offset being miscalculated

* Make labels fit perfect

* Fixed simulated hand profile inspector and auto generation of default controller mappings

* Fixed an issue with being able to set the simulated hand pose data in the inspector's default list property field

* fixed navigation back to parent profile

* Added missing field property in the interaction mapping profile inspector

* updated all the profiles in the SDK

* removed this error, it's okay if it's null sometimes

* updated icon

* Fixed some issues with the visualization profile inspector

* updated a few of the controller popout window label locations

* updated lumin checkout

* Update XRTK-Core/Packages/com.xrtk.core/Inspectors/ControllerPopupWindow.cs

* updated sdk

* fixed change from browser

* Aligned changes from pr

* updated changes to reflect other open PRs

* fixed inspector and updated speech data provider registrations

* cleaned up references

* removed unused file

* reverted removal of asset menu for controller visualization profile

* temporarily removed stateChangeType until we fully understand how we want to implement it and what exactly it does

* commented out inspector change from last commit

* updated input action

* revert removal of menu attribute

* Updated input processors context menus

* updated sdk

* updated sdk

* Sorted a few interfaces and fixed namespaces

* removed asset menus for input data providers. Most are auto generated anyway

* removed input processor outside call

* revert

* revert

* fixed hand controller rendering in uwp

* Remove obsolete SetupDefaultInteractions (#515)

* updated submodules

* updated interaction mapping for base hand controller

* updated touch controller

* cleaned up references and updated sdk checkout

* updated project settings

* updated lumin checkout

* updated sdk checkout

* removed profile references from outside constructor

* First pass at camera system refactor

* put some files in their proper place

* Added camera data provider

* updated how we applied the head height

* Fixed a race condition after we've reset the profile and started re-initialization

Fixed platforms so they only return true outside of the editor

* reverted some changes

* added GameObject reference to camera rig

* updated sdk

* reverted quality settings change

* updated sdk

* fixed hand inspectors

* updated sdk checkout

* updated sdk checkout

* updated lumin checkout

* removed extra line

* fixed merge conflict

* Added a reference to the camera system since the toolkit static accessor comes back null when the application is either quitting or resetting

* Added an optional flag to set the head height on all registered providers

* moved logic about how we get main camera rig into the getter property itself instead of having it set on registration

* removed the Enable call searching for main camera. Not lives in property accessor

* updated wmr checkout

* updated wmr checkout

* updated boundary system to utilize enable and disable properly

* fixed WMR Open VR controller initialization

* updated base camera provider

* refactored the platforms to include IsBuildTargetAvailible and IsBuildTargetActive

Added configuration flag to determine if more than one data provider can be registered with a service per platform

* Better inspector

* reverted single service per platform

* updated Icon

* updated submodules

* reverted inspector changes

* fixed sdk checkout

* updated submodules

* better dropdown menu

* optimized and made sure we call gui changed correctly

* updated sdk checkout

* reverted name change

* Updated Service Locator

Added IMixedRealityDataProvider.ParentService
Added IMixedRealityService partent to all data provider constructors
Updated IMixedRealityDataProvider.Priority to also include the parent's priority so it's ordered better in the registry
Added Try prefix to all registration methods to conform to industry standard naming conventions
Updated tests

* updated sdk checkout

* updated usage for TryRegisterServiceConfigurations

* removed unused reference

* Updated TryUnregisterService to also unregister any data providers it's a parent of

Updated Unit Test to reflect changes

* fixed head height for services that start at the origin

* Added priority override to camera system

* Change requests for controller provider inspectors (#526)

* Add extension to render foldout with bold label

* Implement simple view for controller mappings

* Update indent levels for profile settings according to render pipeline reference layout

* Cache GUIContent and toolbar options

* Remove null elements

* optimized Check Service Match

* removed redundant type arg

* updated wmr checkout

* Apply the default head height settings if the camera's opacity flag changes

* Made sure we're resetting the transforms of the visualizations for each system

Fixed teleportation height

* updated some documentation

* updated wmr and sdk checkouts

* removed oculus head height getting set in the controllers

* removed adjustment of plays pace transform in ApplySettingsForDefaultHeadHeight when head height == 0

* updated lumin checkout

added virtual HeadHeight property

* updated lumin checkout

* updated sdk checkout

* removed comment

* updated sdk checkout

* updated oculus checkout

* updated submodule checkouts

* updated submodule checkouts

* Removed duplicated serialized fields for the camera data provider global settings.

Instead we'll just create a default camera data provider profile and use it as our global settings

* using the proper list of registered configurations

cleaned up global override field assignments to be much simpler

* added configuration foldout

* Moved registered service configurations directly into input system profile

updated input system foldouts to use the bold style

* updated foldout label content to include the interface type this configuration expects

* updated sdk checkout

* updated sdk checkout

* fixed skipping null interaction mapping field

* cleaned up a reference

* fixed multiple serialized field names in inherited inspector class

* Added a way to render the simple controller mapping buttons in the main input system profile inspector

* bail early if the controller mapping list is null

* Updated windows controller type name to get the controller textures to show up correctly based on the type name

* updated usage with configuration foldout

* updated simulated controller type name to make texture lookup work

updated the names of many controller textures to get them to match the controller type name
updated the generic controller image to have both left and right hands
updated the controller mapping aggregate list in the input system profile inspector to only add profiles if they're not already referenced

* fixed a possible NRE

updated the name of the holoLens input action button text

* Added Oculus Go Controller line art

updated fallback for controller texture

* better filtering of duplicate controller mapping profiles

* updated controller layouts and fixed a perf bug with action equality

* disabled wisisyg

* updated oculus checkout

* updated oculus and sdk checkouts

* Added platform overrides

* removed debug

* updated oculus checkout

* updated wmr checkout

* updated wmr assets

* force the camera and all it's data providers to the highest priority

* updated sdk checkout

* updated sdk checkout

* cleaned up controller popout window a bit more

* fixed up oculus remote controller windows

* updated oculus checkout and fixed platform definitions for all configurations

* used camera parent transform instead of querying for camera system playspace

* updated submodules

* cleaned up docs

cleaned up profile value assignments
cleaned up magic numbers

* Changed from input system refactor

* Update XRTK-Core/Packages/com.xrtk.core/Inspectors/Profiles/BaseMixedRealityCameraDataProviderProfileInspector.cs

* added camera cache fallbacks

* reverted change

* revert

* don't try again

* updated base profile inspector to handle null controller types a bit better

* Update XRTK-Core/Packages/com.xrtk.core/Inspectors/Profiles/InputSystem/MixedRealityInputSystemProfileInspector.cs

* fixed un-responsive input system profile inspector

renamed OpenVRDataControllerDataProvider to OpenVRControllerDataProvider
updated all subodules

Co-authored-by: Dino Fejzagic <dino.f@live.de>
XRTK-Build-Bot pushed a commit that referenced this pull request Dec 25, 2020
* re-implemented controller visualization

* fixed profile generation

* Added default constructors for controllers

* fixed openVR controller instance creation

* fixed interaction profile inspector

* updated TryRenderController method

Added Async counterpart in the interface

* updated sdk checkout

* fixed mouse x/y default mappings

* updated axis processor menus

* updated sdk checkout

* Strip full asset path before we ask Unity for a unique name (paths should be relative to the project

* Made the interaction mapping profile inspector even more awesome

changed input processor to a base mixed reality profile to make sure it gets copied correctly on configure

* updated sdk checkout

* disabled controller popout window

* filter input actions by selected axis type

* cleaned up the constructors on MixedRealityInteractionMapping

* made the input action settable for the interaction mapping

* reverted quality settings change

* fixed controller popout window

* fixed some formatting in the controller popout window

* always show the popout window

* reverted removal of axis elements and fixed a bit of spacing issues

* added profile fields

* updated window with controller graphics

fixed a bug with the mouse drag offset being miscalculated

* Make labels fit perfect

* Fixed simulated hand profile inspector and auto generation of default controller mappings

* Fixed an issue with being able to set the simulated hand pose data in the inspector's default list property field

* fixed navigation back to parent profile

* Added missing field property in the interaction mapping profile inspector

* updated all the profiles in the SDK

* removed this error, it's okay if it's null sometimes

* updated icon

* Fixed some issues with the visualization profile inspector

* updated a few of the controller popout window label locations

* updated lumin checkout

* Update XRTK-Core/Packages/com.xrtk.core/Inspectors/ControllerPopupWindow.cs

* updated sdk

* fixed change from browser

* Aligned changes from pr

* updated changes to reflect other open PRs

* fixed inspector and updated speech data provider registrations

* cleaned up references

* removed unused file

* reverted removal of asset menu for controller visualization profile

* temporarily removed stateChangeType until we fully understand how we want to implement it and what exactly it does

* commented out inspector change from last commit

* updated input action

* revert removal of menu attribute

* Updated input processors context menus

* updated sdk

* updated sdk

* Sorted a few interfaces and fixed namespaces

* removed asset menus for input data providers. Most are auto generated anyway

* removed input processor outside call

* revert

* revert

* fixed hand controller rendering in uwp

* Remove obsolete SetupDefaultInteractions (#515)

* updated submodules

* updated interaction mapping for base hand controller

* updated touch controller

* cleaned up references and updated sdk checkout

* updated project settings

* updated lumin checkout

* updated sdk checkout

* removed profile references from outside constructor

* First pass at camera system refactor

* put some files in their proper place

* Added camera data provider

* updated how we applied the head height

* Fixed a race condition after we've reset the profile and started re-initialization

Fixed platforms so they only return true outside of the editor

* reverted some changes

* added GameObject reference to camera rig

* updated sdk

* reverted quality settings change

* updated sdk

* fixed hand inspectors

* updated sdk checkout

* updated sdk checkout

* updated lumin checkout

* removed extra line

* fixed merge conflict

* Added a reference to the camera system since the toolkit static accessor comes back null when the application is either quitting or resetting

* Added an optional flag to set the head height on all registered providers

* moved logic about how we get main camera rig into the getter property itself instead of having it set on registration

* removed the Enable call searching for main camera. Not lives in property accessor

* updated wmr checkout

* updated wmr checkout

* updated boundary system to utilize enable and disable properly

* fixed WMR Open VR controller initialization

* updated base camera provider

* refactored the platforms to include IsBuildTargetAvailible and IsBuildTargetActive

Added configuration flag to determine if more than one data provider can be registered with a service per platform

* Better inspector

* reverted single service per platform

* updated Icon

* updated submodules

* reverted inspector changes

* fixed sdk checkout

* updated submodules

* better dropdown menu

* optimized and made sure we call gui changed correctly

* updated sdk checkout

* reverted name change

* Updated Service Locator

Added IMixedRealityDataProvider.ParentService
Added IMixedRealityService partent to all data provider constructors
Updated IMixedRealityDataProvider.Priority to also include the parent's priority so it's ordered better in the registry
Added Try prefix to all registration methods to conform to industry standard naming conventions
Updated tests

* updated sdk checkout

* updated usage for TryRegisterServiceConfigurations

* removed unused reference

* Updated TryUnregisterService to also unregister any data providers it's a parent of

Updated Unit Test to reflect changes

* fixed head height for services that start at the origin

* Added priority override to camera system

* Change requests for controller provider inspectors (#526)

* Add extension to render foldout with bold label

* Implement simple view for controller mappings

* Update indent levels for profile settings according to render pipeline reference layout

* Cache GUIContent and toolbar options

* Remove null elements

* optimized Check Service Match

* removed redundant type arg

* updated wmr checkout

* Apply the default head height settings if the camera's opacity flag changes

* Made sure we're resetting the transforms of the visualizations for each system

Fixed teleportation height

* updated some documentation

* updated wmr and sdk checkouts

* removed oculus head height getting set in the controllers

* removed adjustment of plays pace transform in ApplySettingsForDefaultHeadHeight when head height == 0

* updated lumin checkout

added virtual HeadHeight property

* updated lumin checkout

* updated sdk checkout

* removed comment

* updated sdk checkout

* updated oculus checkout

* updated submodule checkouts

* updated submodule checkouts

* Removed duplicated serialized fields for the camera data provider global settings.

Instead we'll just create a default camera data provider profile and use it as our global settings

* using the proper list of registered configurations

cleaned up global override field assignments to be much simpler

* added configuration foldout

* Moved registered service configurations directly into input system profile

updated input system foldouts to use the bold style

* updated foldout label content to include the interface type this configuration expects

* updated sdk checkout

* updated sdk checkout

* fixed skipping null interaction mapping field

* cleaned up a reference

* fixed multiple serialized field names in inherited inspector class

* Added a way to render the simple controller mapping buttons in the main input system profile inspector

* bail early if the controller mapping list is null

* Updated windows controller type name to get the controller textures to show up correctly based on the type name

* updated usage with configuration foldout

* updated simulated controller type name to make texture lookup work

updated the names of many controller textures to get them to match the controller type name
updated the generic controller image to have both left and right hands
updated the controller mapping aggregate list in the input system profile inspector to only add profiles if they're not already referenced

* fixed a possible NRE

updated the name of the holoLens input action button text

* Added Oculus Go Controller line art

updated fallback for controller texture

* better filtering of duplicate controller mapping profiles

* updated controller layouts and fixed a perf bug with action equality

* disabled wisisyg

* updated oculus checkout

* updated oculus and sdk checkouts

* Added platform overrides

* removed debug

* updated oculus checkout

* updated wmr checkout

* updated wmr assets

* force the camera and all it's data providers to the highest priority

* updated sdk checkout

* updated sdk checkout

* cleaned up controller popout window a bit more

* fixed up oculus remote controller windows

* updated oculus checkout and fixed platform definitions for all configurations

* used camera parent transform instead of querying for camera system playspace

* updated submodules

* cleaned up docs

cleaned up profile value assignments
cleaned up magic numbers

* Changed from input system refactor

* Update XRTK-Core/Packages/com.xrtk.core/Inspectors/Profiles/BaseMixedRealityCameraDataProviderProfileInspector.cs

* added camera cache fallbacks

* reverted change

* revert

* don't try again

* updated base profile inspector to handle null controller types a bit better

* Update XRTK-Core/Packages/com.xrtk.core/Inspectors/Profiles/InputSystem/MixedRealityInputSystemProfileInspector.cs

* fixed un-responsive input system profile inspector

renamed OpenVRDataControllerDataProvider to OpenVRControllerDataProvider
updated all subodules

Co-authored-by: Dino Fejzagic <dino.f@live.de>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Ready for review PR finished primary development, open for review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants