<!--
{
  "availability" : [
    "iOS: 12.0.0 - 27.0.0",
    "iPadOS: 12.0.0 - 27.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "ARKit",
  "identifier" : "/documentation/ARKit/ARReferenceObject/applyingTransform(_:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "ARKit"
    ],
    "preciseIdentifier" : "c:objc(cs)ARReferenceObject(im)referenceObjectByApplyingTransform:"
  },
  "title" : "applyingTransform(_:)"
}
-->

# applyingTransform(_:)

Returns a new reference object created by applying the specified transform to this reference object’s geometric data.

```
func applyingTransform(_ transform: simd_float4x4) -> ARReferenceObject
```

## Parameters

`transform`

A transform matrix in the local coordinate space of the reference object.

## Return Value

The transformed reference object.

## Discussion

You define the local coordinate space of a reference object when you extract it from an [`ARWorldMap`](/documentation/ARKit/ARWorldMap). If an existing reference object has a local coordinate origin that doesn’t fit well with the object’s intended use, call this method to change the reference object’s origin with respect to the physical object it represents.

When ARKit detects a reference object, the [`transform`](/documentation/ARKit/ARAnchor/transform) of the resulting [`ARObjectAnchor`](/documentation/ARKit/ARObjectAnchor) is based on the orgin of the reference object’s coordinate system. For example, if a reference object represents a physical item that sits on a horizontal surface, virtual content should appear to sit on whatever surface the physical object does. As such, it’s typically useful to align a reference object’s coordinate origin with the bottom of the physical object.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)