unsafe public Vector3 MoveAttachmentPoint(Vector3 newFrozenLocation, AnchorId anchorId, Vector3 locationFromAnchor) { FrozenWorld_Vector targetLocation = UtoF(newFrozenLocation); FrozenWorld_AttachmentPoint attachmentPoint = new FrozenWorld_AttachmentPoint { anchorId = (FrozenWorld_AnchorId)anchorId, locationFromAnchor = UtoF(locationFromAnchor) }; FrozenWorld_Tracking_Move(&targetLocation, &attachmentPoint); checkError(); return(FtoU(attachmentPoint.locationFromAnchor)); }
unsafe public void CreateAttachmentPointFromSpawner(AnchorId contextAnchorId, Vector3 contextLocationFromAnchor, Vector3 frozenPosition, out AnchorId anchorId, out Vector3 locationFromAnchor) { FrozenWorld_AttachmentPoint context = new FrozenWorld_AttachmentPoint { anchorId = (FrozenWorld_AnchorId)contextAnchorId, locationFromAnchor = UtoF(contextLocationFromAnchor) }; FrozenWorld_AttachmentPoint att; FrozenWorld_Vector v = UtoF(frozenPosition); FrozenWorld_Tracking_CreateFromSpawner(&context, &v, &att); checkError(); anchorId = (AnchorId)att.anchorId; locationFromAnchor = FtoU(att.locationFromAnchor); }
unsafe public bool ComputeAttachmentPointAdjustment(AnchorId oldAnchorId, Vector3 oldLocationFromAnchor, out AnchorId newAnchorId, out Vector3 newLocationFromAnchor, out Pose adjustment) { FrozenWorld_AttachmentPoint attachmentPoint = new FrozenWorld_AttachmentPoint { anchorId = (FrozenWorld_AnchorId)oldAnchorId, locationFromAnchor = UtoF(oldLocationFromAnchor) }; FrozenWorld_Transform fwAdjustment; bool adjusted = FrozenWorld_RefitRefreeze_CalcAdjustment(&attachmentPoint, &fwAdjustment); checkError(); newAnchorId = (AnchorId)attachmentPoint.anchorId; newLocationFromAnchor = FtoU(attachmentPoint.locationFromAnchor); adjustment = FtoU(fwAdjustment); return(adjusted); }