当我尝试设置虚拟对象的simdPosition时,我在使用iOS 11 ARKit(Scenekit - Xcode 9 beta(时收到此错误。我需要知道是否可以在 swift 中将SCNMatrix4转换为matrix_float4x4。如果是这样,如何转换它。
在 iOS SDK 11 中,您可以使用初始值设定项在SCNMatrix4
和simd_float4x4
之间进行转换。
import SceneKit
var mat4 = SCNMatrix4()
let f4x4 = simd_float4x4(mat4)
mat4 = SCNMatrix4(f4x4)
您可以使用SCNMatrix4ToMat4
:
let matrix = SCNMatrix4() // matrix is SCNMatrix4
let float4x4 = SCNMatrix4ToMat4(matrix) // float4x4 is matrix_float4x4
如果你想SCNMatrix4
转换为matrix_float4x4
,请使用SCNMatrix4FromMat4
:
let matrix1 = SCNMatrix4FromMat4(float4x4) // matrix1 is SCNMatrix4
Objective-C 具有相同的方法:
[self.sceneView.session setWorldOrigin:SCNMatrix4ToMat4(node.pivot)];