unprojectPoint(_:ontoPlane:orientation:viewportSize:)
Returns the projection of a point from the 2D space of a view rendering the scene onto a plane in the 3D world space detected by ARKit.
Declaration
@nonobjc func unprojectPoint(_ point: CGPoint, ontoPlane planeTransform: simd_float4x4, orientation: UIInterfaceOrientation, viewportSize: CGSize) -> simd_float3?Parameters
- point:
The point in 2D view space to project onto a plane.
The coordinate space for this point has its origin is in the upper left corner and a size matching the
viewportSizeparameter. - planeTransform:
A transform matrix specifying the position and orientation of a plane (with infinite extent) in 3D world space. The plane is the xz-plane of the local coordinate space this transform defines.
- orientation:
The orientation in which the camera image is to be presented.
- viewportSize:
The size, in points, of the view in which the camera image is to be presented.
Return Value
The 3D point in world space where a ray projected from the specified 2D point intersects the specified plane, or nil if the ray does not intersect the plane.
Discussion
If you display AR content with SceneKit, the ARSCNView class provides an otherwise equivalent unprojectPoint(_:ontoPlane:) method that requires fewer parameters (because the view can infer its orientation and size).