Class AttachmentPoint
Implementation of the IAttachmentPoint interface. Provides implementations, as well as a binding to the update delegates.
Implements
Inherited Members
Namespace: Microsoft.MixedReality.WorldLocking.Core
Assembly: cs.temp.dll.dll
Syntax
public class AttachmentPoint : IAttachmentPoint
Constructors
AttachmentPoint(AdjustLocationDelegate, AdjustStateDelegate)
Constructor, sets handlers
Declaration
public AttachmentPoint(AdjustLocationDelegate locationHandler, AdjustStateDelegate stateHandler)
Parameters
| Type | Name | Description |
|---|---|---|
| AdjustLocationDelegate | locationHandler | Handler for positional adjustments, may be null. |
| AdjustStateDelegate | stateHandler | Handler for connectivity adjustments, may be null. |
Properties
AnchorId
Associated anchor id
Declaration
public AnchorId AnchorId { get; }
Property Value
| Type | Description |
|---|---|
| AnchorId |
CachedPosition
Internal history cache.
Declaration
public Vector3 CachedPosition { get; set; }
Property Value
| Type | Description |
|---|---|
| Vector3 |
FragmentId
Associated fragment id
Declaration
public FragmentId FragmentId { get; }
Property Value
| Type | Description |
|---|---|
| FragmentId |
LocationFromAnchor
Position of attachment point in anchor point's space.
Declaration
public Vector3 LocationFromAnchor { get; set; }
Property Value
| Type | Description |
|---|---|
| Vector3 |
LocationHandler
Handler for system positional adjustments. May be null
Declaration
public AdjustLocationDelegate LocationHandler { get; }
Property Value
| Type | Description |
|---|---|
| AdjustLocationDelegate |
Name
Name is auto-populated on create with something unique, but can be renamed to anything useful and convenient. It is only used as a label, so can be anything (including empty or null).
Declaration
public string Name { get; set; }
Property Value
| Type | Description |
|---|---|
| String |
ObjectAdjustment
Cumulative transform adjustment for object(s) bound to this attachment point.
Declaration
public Pose ObjectAdjustment { get; set; }
Property Value
| Type | Description |
|---|---|
| Pose |
ObjectPosition
The position of object(s) bound to this attachment point.
Declaration
public Vector3 ObjectPosition { get; set; }
Property Value
| Type | Description |
|---|---|
| Vector3 |
State
Current state of this attachment point.
Declaration
public AttachmentPointStateType State { get; set; }
Property Value
| Type | Description |
|---|---|
| AttachmentPointStateType |
Remarks
Positioning information is only valid when state is Normal. See AttachmentPointStateType
StateHandler
Handler for system connectivity adjustments. May be null.
Declaration
public AdjustStateDelegate StateHandler { get; }
Property Value
| Type | Description |
|---|---|
| AdjustStateDelegate |
Methods
HandlePoseAdjustment(Pose)
Keep track of cumulative transform adjustment, and pass on to client adjustment handler (if any).
Declaration
public void HandlePoseAdjustment(Pose adjustment)
Parameters
| Type | Name | Description |
|---|---|---|
| Pose | adjustment |
Remarks
HandleStateChange(AttachmentPointStateType)
If state has changed, record the new state and pass on to client handler (if any).
Declaration
public void HandleStateChange(AttachmentPointStateType newState)
Parameters
| Type | Name | Description |
|---|---|---|
| AttachmentPointStateType | newState | The state to change to. |
MoveTo(IAttachmentPointManager, Vector3)
Notify attachment point that it has moved incrementally to a new position.
Declaration
public void MoveTo(IAttachmentPointManager manager, Vector3 newFrozenPosition)
Parameters
| Type | Name | Description |
|---|---|---|
| IAttachmentPointManager | manager | The mananger |
| Vector3 | newFrozenPosition | The new position |
Remarks
This should be used for conceptually continuous motion. For discontinuous motion (i.e. teleport), use TeleportTo(IAttachmentPointManager, Vector3, IAttachmentPoint). This is equivalent to MoveAttachmentPoint(IAttachmentPoint, Vector3)
Set(FragmentId, Vector3, AnchorId, Vector3)
Set internals of attachment point to new values.
Declaration
public void Set(FragmentId fragmentId, Vector3 cachedPosition, AnchorId anchorId, Vector3 locationFromAnchor)
Parameters
| Type | Name | Description |
|---|---|---|
| FragmentId | fragmentId | New fragment |
| Vector3 | cachedPosition | Cache last position moved to. |
| AnchorId | anchorId | New anchor id |
| Vector3 | locationFromAnchor | New displacement from anchor |
TeleportTo(IAttachmentPointManager, Vector3, IAttachmentPoint)
Notify attachment point that it has teleported to a new position.
Declaration
public void TeleportTo(IAttachmentPointManager manager, Vector3 newFrozenPosition, IAttachmentPoint parent)
Parameters
| Type | Name | Description |
|---|---|---|
| IAttachmentPointManager | manager | The manager |
| Vector3 | newFrozenPosition | The new position |
| IAttachmentPoint | parent |
Remarks
This should be used for discontinuous movement, i.e. teleporting. For continuous motion, use MoveTo(IAttachmentPointManager, Vector3). This is equivalent to TeleportAttachmentPoint(IAttachmentPoint, Vector3, IAttachmentPoint)