【发布时间】:2015-02-13 01:12:58
【问题描述】:
我正在将一些 Objective-C 代码转换为 Swift 代码,但遇到以下问题:
objective-C 代码是
SCNNode *textNode = [SCNNode nodeWithGeometry:text];
textNode.transform = CATransform3DInvert(self.chartNode.worldTransform);
这是我试过的转换后的代码:
let textNode = SCNNode(geometry: text)
textNode.transform = CATransform3DInvert(self.chartNode.worldTransform)
但是,我收到一个错误:'SCNMatrix4 is not convertible to CATransform3D'
我意识到 CATransform3DInvert 需要一个 CATransform3D 类型的参数,而我包含的参数是 SCNMatrix4 类型的。
我尝试了以下演员尝试:
textNode.transform = CATransform3DInvert(CATransform3D(self.chartNode.worldTransform))
但这不起作用。
然后我发现 CATransform3D 和 SCNMatrix4 都是结构,我不确定如何从一个结构转换到另一个结构(或者即使可以在 Swift 中的结构之间转换?)
也许还有另一种更简单的方法?
任何帮助将不胜感激 - 谢谢。
【问题讨论】:
-
看起来这是 Objective-C here 的答案,建议应该很容易转移到 Swift。
-
你为什么不用
SCNMatrix4Invert?