Interface IFragmentManager
Interface for managing fragments. This mostly comprises the bookkeeping of managing IAttachmentPoint associations, and the intimately related application of refit operations.
Namespace: Microsoft.MixedReality.WorldLocking.Core
Assembly: cs.temp.dll.dll
Syntax
public interface IFragmentManager
Properties
CurrentFragmentId
Get id of currently active fragment
Declaration
FragmentId CurrentFragmentId { get; }
Property Value
| Type | Description |
|---|---|
| FragmentId |
FragmentIds
Return a copy of the current list of fragment ids.
Declaration
FragmentId[] FragmentIds { get; }
Property Value
| Type | Description |
|---|---|
| FragmentId[] |
NumFragments
Current number of fragments.
Declaration
int NumFragments { get; }
Property Value
| Type | Description |
|---|---|
| Int32 |
Methods
ApplyActiveCurrentFragment()
Notify all fragments of their current state.
Declaration
void ApplyActiveCurrentFragment()
GetFragmentState(FragmentId)
Get the current state of a given fragment.
Declaration
AttachmentPointStateType GetFragmentState(FragmentId id)
Parameters
| Type | Name | Description |
|---|---|---|
| FragmentId | id | Identifier of the fragment to query. |
Returns
| Type | Description |
|---|---|
| AttachmentPointStateType | The state |
Merge()
Call on the plugin to compute the merge, then apply by setting transforms and adjusting scene graph.
Declaration
bool Merge()
Returns
| Type | Description |
|---|---|
| Boolean | True for successful merge. |
Remarks
It is unnecessary to manually merge if autoMerge is true with Update()
Pause()
Set all fragments unconnected during a temporary system outage, especially while tracking is lost.
Declaration
void Pause()
Remarks
Fragments to resume as they were on next update. Pause may be called multiple consecutive frames, as long as the system outage continues, but only Pause or Update should be called on a given frame.
Refreeze()
Manually invoke a refreeze operation on the plugin, and make all necessary adjustments in bookkeeping after.
Declaration
bool Refreeze()
Returns
| Type | Description |
|---|---|
| Boolean | True for successful refreeze. |
Remarks
It is unnecessary to manually refreeze if autoRefreeze is true with Update()
RegisterForRefitNotifications(RefitNotificationDelegate)
Register a delegate for refit notifications.
Declaration
void RegisterForRefitNotifications(RefitNotificationDelegate del)
Parameters
| Type | Name | Description |
|---|---|---|
| RefitNotificationDelegate | del | The delegate to call. |
Reset()
Clear all internal state and resources.
Declaration
void Reset()
UnregisterForRefitNotifications(RefitNotificationDelegate)
Unregister a previously registered delegate for refit notifications.
Declaration
void UnregisterForRefitNotifications(RefitNotificationDelegate del)
Parameters
| Type | Name | Description |
|---|---|---|
| RefitNotificationDelegate | del | The delegate to unregister. |
Update(Boolean, Boolean)
Perform any pending refit operations and reconcile state accordingly.
Declaration
void Update(bool autoRefreeze, bool autoMerge)
Parameters
| Type | Name | Description |
|---|---|---|
| Boolean | autoRefreeze | True to automatically perform a refreeze if indicated by the plugin. |
| Boolean | autoMerge | True to automatically perform a merge if indicated by the plugin. |