SCNVector
URL: https://developer.apple.com/documentation/scenekit/scnvector3
今晩もぽっ活していきます。
今回はSceneKitのリファレンスを訳して行きます。
● 構造
3方向のベクトルを表しています。
● 宣言
struct SCNVector3
● 概要
Scenekitのノードを描画、頂点データのポジション、表面法線データ、大きさ、transformを変換といったさまざまな目的で使用する。ベクトルの要素は環境に応じて使用する必要があります。
● 重要
macOSは引数はCGFloat,
IOS, tvOS, watchOSはFloat型です。
~~~~~~~~~~~~~~~訳はここまでです~~~~~~~~~~~~~~~~~~~~~~~~
● 補足
概要の中の "transformを変換" といったところを補足いたします。
ノードの表示位置を表すのにこのSCNVectorを使用するのですが、hittest メソッドなどで位置を取得使用とすると simd_float4×4 などが帰ってきます。
その際、
guard let result = hitTest(_ point: CGPoint,
with event: UIEvent?).first else { return }
let location = result.worldTransform // ここがsimd_float4×4
なのでこれをSCNVector3へ変換します。
let columns = location.columns.3
// ここで変換
let vector = SCNVector(x: columns.x, y: columns.y, z: columns.z)
といった形で変換します。