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)