WLT documentation has moved.

We are publishing both conceptual docs and API references on docs.microsoft.com. For conceptual docs, please visit our new landing page. For API references, please visit the Core WLT section of the dot net API explorer and related pages. Existing content will remain here but will not be updated further.

Search Results for

    Show / Hide Table of Contents

    Class AnchorManagerWSA

    Encapsulation of spongy world (raw input) state. Its primary duty is the creation and maintenance of the graph of (spongy) anchors built up over the space traversed by the camera.

    Inheritance
    Object
    AnchorManager
    AnchorManagerWSA
    Implements
    IAnchorManager
    IDisposable
    Inherited Members
    AnchorManager.MinNewAnchorDistance
    AnchorManager.MaxAnchorEdgeLength
    AnchorManager.MaxLocalAnchors
    AnchorManager.ErrorStatus
    AnchorManager.NumAnchors
    AnchorManager.NumEdges
    AnchorManager.AnchorFromSpongy
    AnchorManager.SpongyAnchors
    AnchorManager.Dispose()
    AnchorManager.Reset()
    AnchorManager.Update()
    AnchorManager.DebugLogExtra(String)
    AnchorManager.DebugLogSetup(String)
    AnchorManager.RemoveSpongyAnchorById(AnchorId)
    AnchorManager.SaveAnchors()
    AnchorManager.LoadAnchors()
    Object.ToString()
    Object.Equals(Object)
    Object.Equals(Object, Object)
    Object.ReferenceEquals(Object, Object)
    Object.GetHashCode()
    Object.GetType()
    Object.MemberwiseClone()
    Namespace: Microsoft.MixedReality.WorldLocking.Core
    Assembly: cs.temp.dll.dll
    Syntax
    public class AnchorManagerWSA : AnchorManager, IAnchorManager, IDisposable
    Remarks

    Anchor and Edge creation algorithm:

    Goal: a simple and robust algorithm that guarantees an even distribution of anchors, fully connected by edges between nearest neighbors with a minimum of redundant edges

    For simplicity, the algorithm should be stateless between time steps

    Rules

    • two parameters define spheres MIN and MAX around current position
    • whenever MIN does not contain any anchors, a new anchor is created
    • when a new anchor is created is is linked by edges to all anchors within MAX
    • the MAX radius is 20cm larger than MIN radius which would require 12 m/s beyond world record sprinting speed to cover in one frame
    • whenever MIN contains more than one anchor, the anchor closest to current position is connected to all others within MIN

    Properties

    SupportsPersistence

    Whether the underlying anchors can be locally persisted and reloaded.

    Declaration
    public override bool SupportsPersistence { get; }
    Property Value
    Type Description
    Boolean
    Overrides
    AnchorManager.SupportsPersistence

    TrackingStartDelayTime

    Declaration
    protected override float TrackingStartDelayTime { get; }
    Property Value
    Type Description
    Single
    Overrides
    AnchorManager.TrackingStartDelayTime

    Methods

    CreateAnchor(AnchorId, Transform, Pose)

    Declaration
    protected override SpongyAnchor CreateAnchor(AnchorId id, Transform parent, Pose initialPose)
    Parameters
    Type Name Description
    AnchorId id
    Transform parent
    Pose initialPose
    Returns
    Type Description
    SpongyAnchor
    Overrides
    AnchorManager.CreateAnchor(AnchorId, Transform, Pose)

    DestroyAnchor(AnchorId, SpongyAnchor)

    Declaration
    protected override SpongyAnchor DestroyAnchor(AnchorId id, SpongyAnchor spongyAnchor)
    Parameters
    Type Name Description
    AnchorId id
    SpongyAnchor spongyAnchor
    Returns
    Type Description
    SpongyAnchor
    Overrides
    AnchorManager.DestroyAnchor(AnchorId, SpongyAnchor)

    IsTracking()

    Declaration
    protected override bool IsTracking()
    Returns
    Type Description
    Boolean
    Overrides
    AnchorManager.IsTracking()

    LoadAnchors(IPlugin, AnchorId, Transform, List<AnchorManager.SpongyAnchorWithId>)

    Load the spongy anchors from persistent storage

    Declaration
    protected override async Task LoadAnchors(IPlugin plugin, AnchorId firstId, Transform parent, List<AnchorManager.SpongyAnchorWithId> spongyAnchors)
    Parameters
    Type Name Description
    IPlugin plugin
    AnchorId firstId
    Transform parent
    List<AnchorManager.SpongyAnchorWithId> spongyAnchors
    Returns
    Type Description
    Task
    Overrides
    AnchorManager.LoadAnchors(IPlugin, AnchorId, Transform, List<AnchorManager.SpongyAnchorWithId>)
    Remarks

    The set of spongy anchors loaded by this routine is defined by the frozen anchors previously loaded into the plugin.

    Likewise, when a spongy anchor fails to load, this routine will delete its frozen counterpart from the plugin.

    SaveAnchors(List<AnchorManager.SpongyAnchorWithId>)

    Declaration
    protected override async Task SaveAnchors(List<AnchorManager.SpongyAnchorWithId> spongyAnchors)
    Parameters
    Type Name Description
    List<AnchorManager.SpongyAnchorWithId> spongyAnchors
    Returns
    Type Description
    Task
    Overrides
    AnchorManager.SaveAnchors(List<AnchorManager.SpongyAnchorWithId>)

    TryCreate(IPlugin, IHeadPoseTracker)

    Declaration
    public static AnchorManagerWSA TryCreate(IPlugin plugin, IHeadPoseTracker headTracker)
    Parameters
    Type Name Description
    IPlugin plugin
    IHeadPoseTracker headTracker
    Returns
    Type Description
    AnchorManagerWSA

    Implements

    IAnchorManager
    System.IDisposable
    In This Article
    Back to top Generated by DocFX