You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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))
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
attributesUse 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):
SlicerIGT
extensivelyHistorical Notes
Attributes
VirtualReality.PoseValid
andVirtualReality.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
andVirtualReality.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
The text was updated successfully, but these errors were encountered: