Dela via


Microsoft.MixedReality.WorldLocking.Core Namespace

Classes

AlignmentManager

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

AlignSubtree

Script to use an independent AlignmentManager to align a specific subtree, independent of the rest of the scene.

AnchorManager

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.

AnchorManagerARCore
AnchorManagerNull
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.

AttachmentPoint

Implementation of the IAttachmentPoint interface. Provides implementations, as well as a binding to the update delegates.

ConversionExt

Provide string formatting for id types.

Diagnostics

Writer of diagnostics for postmortem analysis.

EngineException

Thin layer on exceptions for engine generated exceptions.

Fragment

Fragment class is a container for attachment points in the same WorldLocking Fragment. It manages their update and adjustment, including merging in the attachment points from another fragment.

HeadPoseTrackerCamera
HeadPoseTrackerXR
Orienter

The Orienter class implements IOrienter.

OrienterThreeBody

Derived class which supports computing implicit rotations in full 3-DOF (6-DOF w/ position).

Plugin

Encapsulate FrozenWorldPlugin.dll with a Unity-friendly interface

This class contains no significant logic, only translation between the low-level C-style interface of the library and corresponding high-level C#/Unity data structures and calling paradigms

Though the library itself is implemented as singleton, this class implements constructor and Dispose function, handling the initialize/destroy functions of the engine, allowing stable loading/unloading cycles of the FrozenWorld component within the UnityEditor as they happen during typical application development.

Though this class has no significant internal state and most methods could technically be declared static, they are intentionally implemented as regular methods to ensure that the constructor has been called before any other interaction with the library.

Plugin.Deserializer

Class to handle deserialization of frozen world state

Plugin.MetricsAccessor
Plugin.Serializer

Class to capture and serialize frozen world state to storage.

PluginNoop
PluginNoop.Deserializer

Class to handle deserialization of frozen world state

PluginNoop.Serializer

Class to capture and serialize frozen world state to storage.

PoseExtensions

Extensions for Poses to enable basic transform math.

ResourceMirror

Class to synchronize a list of resources with associated source data (items).

SharedDiagnosticsSettings

The SharedSettings boxes the Settings into a sharable reference.

SharedManagerSettings

Shareable (reference type) version of Settings (value struct).

SpacePin

Component helper for pinning the world locked space at a single reference point.

SpacePinOrientable

A component derived from SpacePin which differs only in that, rather than using an explicit rotation passed in, an implicit rotation is calculated based on the relative positions of all active SpacePinOrientables.

SpongyAnchor

Wrapper class for Unity spatial anchors, facilitating creation and persistence.

SpongyAnchorARCore
SpongyAnchorARF

Wrapper class for Unity WorldAnchor, facilitating creation and persistence.

SpongyAnchorNull

Wrapper class for a no-op spatial, platform-free anchor.

SpongyAnchorWSA

Wrapper class for Unity WorldAnchor, facilitating creation and persistence.

SpongyAnchorXR

Wrapper class for Unity XRAnchor, facilitating creation and persistence.

TransformExtensions

Conversion function between a pose and a transform.

WorldLockingContext

The central component for providing WorldLocking functionality to a scene

WorldLockingContextEditor

Custom editor for the collections of settings managed by the WorldLockingManager.

WorldLockingManager

Ultimate manager of World Locking. WorldLockingManager supplies access to the sub-managers, IAnchorManager, IFragmentManager, and IAttachmentPointManager.

Structs

AnchorEdge

Simple struct representing a non-directional edge between two anchors.

AnchorFragmentPose

Simple struct associating a FragmentPose with an AnchorId.

AnchorManager.SpongyAnchorWithId
AnchorPose

Simple struct for passing id,pose tuples, to avoid C# version dependency (e.g. ValueTuple)

AnchorRelevance

Simple struct for relevance by anchor id.

AnchorSettings

Settings related to management of the internal anchor graph.

Diagnostics.Record

One record (chunk) of data.

DiagnosticsSettings

Client tune-able settings for the diagnostics. Set through the WorldLockingManager.

FragmentPose

Simple struct for passing id,pose tuples, to avoid C# version dependency (e.g. ValueTuple)

LinkageSettings

Explicitly set required Transform objects.

ManagerSettings

Manager settings.

Orienter.WeightedRotation

An object whose rotation needs to be computed, and the weight of its rotation.

Interfaces

IAlignmentManager

Manage pinning the world-locked space to user defined coordinate frame at a discrete set of points in the world.

IAnchorManager

Create and persist a network of anchors around the camera as it moves around, and feed them into the plugin.

IAttachmentPoint

Opaque handle to an attachment point. Create one of these to enable WorldLocking to adjust an attached object as corrections to the world locked space optimization are made.

IAttachmentPointManager

Interface for application creation and manipulation of attachment points. In particular, the creation and release of attachment points must be conducted through the IAttachmentPointManager.

IFragmentManager

Interface for managing fragments. This mostly comprises the bookkeeping of managing IAttachmentPoint associations, and the intimately related application of refit operations.

IHeadPoseTracker

Interface for retrieving the current head pose.

IMetricsAccessor
IOrientable

Base class for a thing whose orientation can be inferred from the positions of a collection of IOrientables.

IOrienter

An object capable of computing self-consistent rotations for IOrientables based on their positions.

IPlugin
IPluginDeserializer
IPluginSerializer

Enums

AnchorId

Numerical identifier for individual anchors within the FrozenWorld. Assigned by the client when defining new spongy anchors. Unique within a running session. Persistent as part of serialized state.

AnchorSettings.AnchorSubsystem
AttachmentPointStateType

The states an attachment point can be in.

FragmentId

Numerical identifier for frozen fragments. Assigned by engine. Persistent as part of serialized state.

SpacePin.ModelPositionSourceEnum

Choice of what to use for modeling position.

Delegates

AdjustLocationDelegate

Notification that a correction in the world locked space has been computed and should be applied to this object.

AdjustStateDelegate

Notification from the system that the state of the fragment containing the attachment point has changed. The client can take action to hide objects in disconnected space if desired.

PostAlignmentLoadedDelegate
RefitNotificationDelegate

Delegate type for notification of refit operations.

ResourceMirror.CompareToResource<ItemType,ResourceType>

Function to compare a source item with a resource. It should return: -1 if resource is associated with a smaller item than item. 1 if resource is associated with a larger item than item. 0 if resource is associated with item.

ResourceMirror.CreateResource<ItemType,ResourceType>

Callback for creating a new instance of a resource matching a specific item. This will be called for each item in Sync's currentItems list which doesn't have a matching resource in Sync's resources list.

ResourceMirror.DestroyResource<ResourceType>

Callback to release resources. This will be called for each resource in Sync's resource list for which there is no corresponding source data in Sync's currentItems.

ResourceMirror.UpdateResource<ItemType,ResourceType>

Callback to update existing resources. This will be called for each item and its associated resource in the Sync's currentItems and resources lists.