Share via


AlignmentManager Class

Definition

Unity level implementation of aligning Unity's coordinate system
with a discrete finite set of markers in the real world.

public class AlignmentManager : Microsoft.MixedReality.WorldLocking.Core.IAlignmentManager
type AlignmentManager = class
    interface IAlignmentManager
Public Class AlignmentManager
Implements IAlignmentManager
Inheritance
AlignmentManager
Implements

Remarks

In addition to anchoring the otherwise arbitrary WorldLocked coordinate space to this set of correspondences, this addresses the tracker-scale issue, whereby due to tracker error, traversing a known distance in the real world traverses a different distance in Unity space. This means that, given a large object of length L meters in Unity space, starting at one end and walking L meters will not end up at the other end of the object, but only within +- 10% of L. Use of this service gives fairly exact correspondence at alignment points, and by interpolation gives fairly accurate correspondence within the convex set of alignment points. Note that no extrapolation is done, so outside the convex set of alignment points results, particularly with respect to scale compensation, will be less accurate.

Constructors

AlignmentManager(WorldLockingManager)

Constructor, binds to a specific WorldLockingManager. Also registers for scene loading events.

Properties

PinnedFromLocked

The pose to insert into the camera's hierarchy above the WorldLocking Adjustment transform (if any).

SaveFileName

File to save to and load from.

Methods

AddAlignmentAnchor(String, Pose, Pose)
ClearAlignmentAnchors()
ComputePinnedPose(Pose)

Do the weighted average of all active reference poses to get an alignment pose.

Dispose()

Dispose of internals on shutdown.

Finalize()

Dispose of internals on shutdown.

GetAlignmentPose(AnchorId, Pose)
IsValidSavePath(String)

Check validity of a save/load path. Any path not passing this test will be ignored without error.

Load()

Load the database and issue notification if loaded.

RegisterForLoad(PostAlignmentLoadedDelegate)

Register for notification after any successful loads.

RemoveAlignmentAnchor(AnchorId)
RestoreAlignmentAnchor(String, Pose)
Save()

Explicitly save the database.

SendAlignmentAnchors()
UnregisterForLoad(PostAlignmentLoadedDelegate)

Un-register for post load notifications, after registration via RegisterForLoad(PostAlignmentLoadedDelegate).

Events

OnTriangulationBuilt

Applies to