-
Notifications
You must be signed in to change notification settings - Fork 61
Description
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>Activeand<DeviceType>Connectedattributes -
Use attribute
VirtualReality.DeviceTypefor devices categorized as "HMD," "Controller" or "Tracker". -
Use attribute
VirtualReality.DeviceActiveattribute 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
SlicerIGTextensively - 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.PoseValidandVirtualReality.PoseStatusoriginally introduced in 3f12e85 (ENH: Adding additional information to VR transforms for pose status) -
Attributes
VirtualReality.HMDActiveintroduced in 5848c8c (Resolves #36. Exposes HMD pose to Slicer as a singleton transform named "VirtualReality.HMD") -
Attributes
VirtualReality.ControllerActiveandVirtualReality.ControllerConnectedintroduced 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