StereoKit icon indicating copy to clipboard operation
StereoKit copied to clipboard

BoundingBox with orientation.

Open laultman opened this issue 1 year ago • 1 comments

StereoKit references and employes the Windows.Perception.Spatial SpatialBoundingBox. There is another implementation called SpatialBoundingOrientedBox. Like the SpatialBoundingBox it adds a property for the orientation.

The orientation allows the developer to reorient the box around the object that is in local space such as an object in a UI.Handle hierarchy when the object is moved as part of the hierarchy. The assumption that a UI.Handle may contain several objects that the developer has chosen to relate spatially within a hierarchy. Interaction with objects in a hierarchy from inputs such as hands or eyes needs the bounding box to also orient itself with any rotation applied to the object that has a bounding box. Having bounding boxes that are attached to an object is very desirable over the bulk bounds of the UI.Handle. This would open an avenue for very granular interactions with individual objects.

Use case: Our applications are industrial in nature. Consider managing an assembly line. In today's world employees are routinely cross trained to be useful at multiple points in assembly lines. Guided assembly is useful in training and in actual assembly. Each user in the line has multiple "parts" that must individually be positioned in some orientation with respect to some other object. For example, an engine has a block and head(s). Each of these objects are augmented by multiple objects (valves, crank, bearing, etc.) that must be applied sequentially in the correct location relative to other objects. The orientation of each object must change as the user manipulates them. Using hand and eye inputs to cause actions such as animations of the process is very helpful to people.

laultman avatar Jun 14 '24 11:06 laultman

StereoKit does not reference anything from Windows.Perception.Spatial, that sounds like something UWP specific. If you're using a Handle, then you already have a Pose for your bounding box, which contains an orientation. Are you looking for helper functions to simplify something here?

maluoi avatar Jun 15 '24 02:06 maluoi