2017-07-02 3 views
2

SCNMatrix4SCNVector3などのタイプの演算子にオーバーロードを追加することは明らかですが、Appleは静的なグローバル関数(SCNMatrix4Multなど)を使用したようです。SceneKitに演算子のオーバーロードがないのはなぜですか?

実装例:

func * (left: SCNMatrix4, right: SCNMatrix4) -> SCNMatrix4 { 
    return SCNMatrix4Mult(left, right) 
} 

func + (left: SCNVector3, right: SCNVector3) -> SCNVector3 { 
    return SCNVector3Make(left.x + right.x, left.y + right.y, left.z + right.z) 
} 

答えて

1

これらの機能はそのまま単にスウィフトにエクスポート取得Objective-Cのために書かれSceneKit utilsのです。グローバル関数の代わりに演算子として使うのはいいと思うが、関連コードはまだ書かれていないようだ。

コードの表現力と効率を向上させたい場合は、新しいSIMDベースのAPI(SCNNode)を簡単に利用できます。このrelated SO questionに例があります。

関連する問題