Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve usability of transform node attributes #148

Open
jcfr opened this issue Dec 27, 2023 · 0 comments
Open

Improve usability of transform node attributes #148

jcfr opened this issue Dec 27, 2023 · 0 comments

Comments

@jcfr
Copy link
Contributor

jcfr commented Dec 27, 2023

Issue description based on suggestions originally posted by @lassoan in #147 (comment)

Is your feature request related to a problem? Please describe.

Using the current API[^1], it is challenging to find out which devices are active or not. First, the user would have to know what device types are possible and then do trial-and-error to find an attribute that can tell if the status is valid.

The attributes may also be contradicting (if you have both HMD and Controller status attributes then which ones should be used?).

Describe the solution you'd like

  • Remove use of PoseValid, PoseStatus, <DeviceType>Active and <DeviceType>Connected attributes

  • Use attribute VirtualReality.DeviceType for devices categorized as "HMD," "Controller" or "Tracker".

  • Use attribute VirtualReality.DeviceActive attribute to indicate the validity of the transform for all device types.

Consider also adding transform status support directly into Slicer and have it become a first-class property of transform nodes (instead of note attribute):

  • It would be used in SlicerIGT extensively
  • Also useful to temporarily disable a transform to quickly see the transformed nodes with/without the transformation in effect.
  • Transformable display node could also use the information to be represented differently:
    • if invalid status: node appear more transparent and/or different color, or use identity as transform; or ignore transform status for display.

Historical Notes

  • Attributes VirtualReality.PoseValid and VirtualReality.PoseStatus originally introduced in 3f12e85 (ENH: Adding additional information to VR transforms for pose status)

  • Attributes VirtualReality.HMDActive introduced in 5848c8c (Resolves #36. Exposes HMD pose to Slicer as a singleton transform named "VirtualReality.HMD")

  • Attributes VirtualReality.ControllerActive and VirtualReality.ControllerConnected introduced in 7aaf98c (Adding population of controller transforms (#29))

  • Logic refactored (while keep the same attributes) through Decouple update of transform node matrix and attributes #147

Related

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant