見出し画像

SCNVector

URLhttps://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)

といった形で変換します。


この記事が気に入ったらサポートをしてみませんか?