Plane3D ノードは、シーングラフ内で、ある程度まで3Dの方向性を許可します。 それは、タッチ座標を扱う方法をいくぶんか複雑にします。なのでシーン階層に Plane3D を含んでいる場合、直接 Director.Instance.CurrentScene.Camera.GetTouchPos() を使う代わりに、Plane3D 空間(すべてサブノード)で点を得るのに Node.GetTouchPos() を使うことを確認してください。 [詳細]
Public メソッド | |
Plane3D () | |
コンストラクタ。デフォルトはz=0 平面(単位行列)。 詳細は ModelMatrix のコメントを参照してください。 | |
Plane3D (Matrix4 modelmatrix) | |
コンストラクタ。 | |
override void | PushTransform () |
ノードとその子を描画する前にこの関数が呼び出されます。 | |
override void | FindParentPlane (ref Matrix4 mat) |
注意: FindParentPlane は最初に見つかった Plane3D で停止します。 ツリーの枝で、複数の Plane3D ノードを持っていないという前提です。 | |
Public 変数 | |
Matrix4 | ModelMatrix = Matrix4.Identity |
この平面のための"変換行列"です。 平面は基点と法線で定義されます。しかし我々は平面を座標系(スタックにプッシュできる行列)としても使用するため、平面を行列として格納します。 |
Plane3D ノードは、シーングラフ内で、ある程度まで3Dの方向性を許可します。 それは、タッチ座標を扱う方法をいくぶんか複雑にします。なのでシーン階層に Plane3D を含んでいる場合、直接 Director.Instance.CurrentScene.Camera.GetTouchPos() を使う代わりに、Plane3D 空間(すべてサブノード)で点を得るのに Node.GetTouchPos() を使うことを確認してください。
コンストラクタ。
modelmatrix | 平面にセットする ModelMatrix の値。 詳細は ModelMatrix のコメントを参照してください。 |
Matrix4 ModelMatrix = Matrix4.Identity |
この平面のための"変換行列"です。 平面は基点と法線で定義されます。しかし我々は平面を座標系(スタックにプッシュできる行列)としても使用するため、平面を行列として格納します。
3D平面は、 ModelMatrix によって変換される z=0の '単位行列' 平面として定義されます。それは、ModelMatrix.ColumnZ が 平面の法線ベクトルであり、ModelMatrix.ColumnWは平面の任意の点として表されます。
ModelMatrix は右手座標系、直交座標系(チェックはありません)に設定されていることを前提にしています。
ModelMatrix.ColumnX、ModelMatrix.ColumnY、ModelMatrix.ColumnZは、単位長さの各々は、お互いにすべて垂直であることを意味します。 ModelMatrix.ColumnXとModelMatrix.ColumnYの外積はModelMatrix.ColumnZと同じ方向です。 ModelMatrix のデフォルト値は Matrix4.Identity (z=0 平面) です。 この行列は変換スタックにあるかのように使用されます。