Class WorldLockingManager
Ultimate manager of World Locking. WorldLockingManager supplies access to the sub-managers, IAnchorManager, IFragmentManager, and IAttachmentPointManager.
Inherited Members
Namespace: Microsoft.MixedReality.WorldLocking.Core
Assembly: cs.temp.dll.dll
Syntax
public class WorldLockingManager
Fields
Plugin
Direct interface to the plugin. It is not generally necessary or desired to directly manipulate the plugin, but may be useful for manual override of some plugin inputs, outputs, or controls.
Declaration
public readonly IPlugin Plugin
Field Value
Type | Description |
---|---|
IPlugin |
Properties
AdjustmentFrame
The transform at which to apply the camera adjustment. This can't be the camera node, as its transform is overwritten every frame with head pose data. But the camera should be an attached descendant of this node.
Declaration
public Transform AdjustmentFrame { get; set; }
Property Value
Type | Description |
---|---|
Transform |
AlignmentManager
Declaration
public IAlignmentManager AlignmentManager { get; }
Property Value
Type | Description |
---|---|
IAlignmentManager |
AnchorManager
Interface to the Anchor Manager.
Declaration
public IAnchorManager AnchorManager { get; }
Property Value
Type | Description |
---|---|
IAnchorManager |
AnchorSettings
Access to anchor management settings.
Declaration
public AnchorSettings AnchorSettings { get; set; }
Property Value
Type | Description |
---|---|
AnchorSettings |
Remarks
Use ResetAnchorManager() to change the type of the anchor manager after startup, or just rebuild it from scratch.
ApplyAdjustment
Apply the computed adjustment via the AdjustmentFrame transform.
Declaration
public bool ApplyAdjustment { get; }
Property Value
Type | Description |
---|---|
Boolean |
Remarks
If ApplyAdjustment is false, then WLT does the same computations, but it is up to the application to apply the computed transforms correctly, either in the camera hierarchy, or elsewhere in the scene hierarchy.
AttachmentPointManager
Interface to the attachment point manager. Use for creating and manipulating attachment points.
Declaration
public IAttachmentPointManager AttachmentPointManager { get; }
Property Value
Type | Description |
---|---|
IAttachmentPointManager |
AutoLoad
Automatically load the WorldLocking state from disk at startup.
Declaration
public bool AutoLoad { get; }
Property Value
Type | Description |
---|---|
Boolean |
AutoMerge
Automatically trigger a fragment merge whenever the FrozenWorld engine indicates that one would be appropriate.
Declaration
public bool AutoMerge { get; }
Property Value
Type | Description |
---|---|
Boolean |
AutoRefreeze
Automatically trigger a refreeze whenever the FrozenWorld engine indicates that one would be appropriate.
Declaration
public bool AutoRefreeze { get; }
Property Value
Type | Description |
---|---|
Boolean |
AutoSave
Periodically save the WorldLocking state to disk.
Declaration
public bool AutoSave { get; }
Property Value
Type | Description |
---|---|
Boolean |
CameraFromSpongy
Inverse of the camera transform (camera from parent).
Declaration
public Pose CameraFromSpongy { get; }
Property Value
Type | Description |
---|---|
Pose |
CameraParent
The camera parent node defines the "spongy frame of reference". All raw head based data, such as the spatial mapping, gesture events, and XR head pose data, are relative to this transform.
Declaration
public Transform CameraParent { get; set; }
Property Value
Type | Description |
---|---|
Transform |
DiagnosticsSettings
Get a copy of the shared diagnostics configuration settings, or set the shared settings to a copy of the input.
Declaration
public DiagnosticsSettings DiagnosticsSettings { get; set; }
Property Value
Type | Description |
---|---|
DiagnosticsSettings |
Enabled
Whether the system is currently active and stabilizing space.
Declaration
public bool Enabled { get; }
Property Value
Type | Description |
---|---|
Boolean |
ErrorStatus
The current error status of the WorldLockingManager
Declaration
public string ErrorStatus { get; }
Property Value
Type | Description |
---|---|
String |
FragmentManager
Interface to the fragment manager.
Declaration
public IFragmentManager FragmentManager { get; }
Property Value
Type | Description |
---|---|
IFragmentManager |
FrozenFromLocked
Declaration
public Pose FrozenFromLocked { get; }
Property Value
Type | Description |
---|---|
Pose |
FrozenFromPinned
Any application applied transform above the adjustment node.
Declaration
public Pose FrozenFromPinned { get; }
Property Value
Type | Description |
---|---|
Pose |
FrozenFromSpongy
Transform from spongy space to frozen space. Spongy space is that native to XR interfaces. Frozen is Unity's global coordinate space. Transform includes the WorldLocking adjustment to the camera, as well as any other transforms applied to the camera (e.g. teleport).
Declaration
public Pose FrozenFromSpongy { get; }
Property Value
Type | Description |
---|---|
Pose |
FrozenWorldFileName
Filename at which to Save subsequent FrozenWorldEngine state to, and from which to Load it.
Declaration
public string FrozenWorldFileName { get; set; }
Property Value
Type | Description |
---|---|
String |
Remarks
Some error checking for common mistakes is made, but some common sense should prevail. Use valid, normal filenames. A subpath may be introduced, but the entire path must be relative. Some examples: Good: 'myfile.myext', 'mypath/myfile.myext' Bad: null, '/myfile.myext' The actual final full path name used will be off of Application.persistentDataPath, which is platform dependent.
HasPendingIO
Whether the manager is currently asynchronously loading or saving state.
Declaration
public bool HasPendingIO { get; }
Property Value
Type | Description |
---|---|
Boolean |
Remarks
Any attempt to manually initiate a Save or Load while HasPendingIO is true will quietly fail.
LinkageSettings
Access to linkage settings.
Declaration
public LinkageSettings LinkageSettings { get; set; }
Property Value
Type | Description |
---|---|
LinkageSettings |
LockedFromFrozen
Declaration
public Pose LockedFromFrozen { get; }
Property Value
Type | Description |
---|---|
Pose |
LockedFromPinned
From pinned space back to the world-locked space.
Declaration
public Pose LockedFromPinned { get; }
Property Value
Type | Description |
---|---|
Pose |
LockedFromPlayspace
Adjustment transform to world-lock the coordinate space.
Declaration
public Pose LockedFromPlayspace { get; set; }
Property Value
Type | Description |
---|---|
Pose |
LockedFromSpongy
Declaration
public Pose LockedFromSpongy { get; }
Property Value
Type | Description |
---|---|
Pose |
MergeIndicated
Indicator for the FrozenWorld engine internal heuristics of whether a merge should be performed
Declaration
public bool MergeIndicated { get; }
Property Value
Type | Description |
---|---|
Boolean |
NoPitchAndRoll
Zero out pitch and roll from FrozenWorldEngine's computed correction.
Declaration
public bool NoPitchAndRoll { get; }
Property Value
Type | Description |
---|---|
Boolean |
Remarks
This does not affect pitch and roll from the AlignmentManager (SpacePins).
PinnedFromFrozen
Transform from application's frozen space back to space computed by WorldLocking.
Declaration
public Pose PinnedFromFrozen { get; }
Property Value
Type | Description |
---|---|
Pose |
PinnedFromLocked
Transform from the world locked space computed by WorldLocking to the space pinned in place.
Declaration
public Pose PinnedFromLocked { get; set; }
Property Value
Type | Description |
---|---|
Pose |
PlayspaceFromLocked
Inverse of adjustment transform to world-lock the coordinate space.
Declaration
public Pose PlayspaceFromLocked { get; }
Property Value
Type | Description |
---|---|
Pose |
PlayspaceFromSpongy
Transform applied by (optional) camera parent node (e.g. for teleport).
Declaration
public Pose PlayspaceFromSpongy { get; }
Property Value
Type | Description |
---|---|
Pose |
RefreezeIndicated
Indicator for the FrozenWorld engine internal heuristics of whether a refreeze should be performed
Declaration
public bool RefreezeIndicated { get; }
Property Value
Type | Description |
---|---|
Boolean |
Settings
The configuration settings may only be set as a block. Get returns a snapshot of current settings, and set copies entire block.
Declaration
public ManagerSettings Settings { get; set; }
Property Value
Type | Description |
---|---|
ManagerSettings |
Remarks
To change an individual field in the settings, retrieve the entire settings block, change the desired field(s), then set the entire block. E.g. var settings = mgr.Settings; settings.AutoLoad = false; settings.AutoSave = true; mgr.Settings = settings;
SpongyFromCamera
The camera transform (parent from camera).
Declaration
public Pose SpongyFromCamera { get; set; }
Property Value
Type | Description |
---|---|
Pose |
SpongyFromFrozen
Transform from frozen space to XR native spongy space, including other transforms accumulated in the camera's ancestors (e.g. teleport).
Declaration
public Pose SpongyFromFrozen { get; }
Property Value
Type | Description |
---|---|
Pose |
SpongyFromLocked
Declaration
public Pose SpongyFromLocked { get; }
Property Value
Type | Description |
---|---|
Pose |
SpongyFromPlayspace
Inverse of transform applied by (optional) camera parent node (e.g. for teleport).
Declaration
public Pose SpongyFromPlayspace { get; }
Property Value
Type | Description |
---|---|
Pose |
Version
The version of this release. This will be displayed in the WorldLockingContext component in the Unity Inspector, allowing quick visual verification of the version of World Locking Tools for Unity currently installed. It has no effect in code, but serves only as a label. A "_dev" suffix means it's the main branch under current development (between releases). When released, the _dev suffix is removed. For example, 1.5.9_dev is released as 1.5.9.
Declaration
public static string Version { get; }
Property Value
Type | Description |
---|---|
String |
Methods
Dispose()
Dispose of internals on shutdown.
Declaration
public void Dispose()
Finalize()
Dispose of internals on shutdown.
Declaration
protected void Finalize()
GetInstance()
Get the WorldLockingManager instance. This may be called at any time in program execution, but if called during load its settings may not have been loaded from a new scene yet.
Declaration
public static WorldLockingManager GetInstance()
Returns
Type | Description |
---|---|
WorldLockingManager | The WorldLockingManager |
Load()
Manually trigger a load operation for the WorldLocking state
Declaration
public void Load()
Reset()
Bring WorldLocking to a well-defined, empty state
Declaration
public void Reset()
ResetAnchorManager()
Perform any initialization only appropriate once. This is called after giving the caller a chance to change settings.
Declaration
public async void ResetAnchorManager()
Save()
Manually trigger a save operation for the WorldLocking state
Declaration
public void Save()
SetContext(WorldLockingContext)
Start using shared settings from given context.
Declaration
public void SetContext(WorldLockingContext context)
Parameters
Type | Name | Description |
---|---|---|
WorldLockingContext | context | The context supplying the new shared settings. |