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