SIMatrix4.Get2

SIMatrix4.Get2

説明

この行列の 16 のコンポーネントを、配列で戻します。配列内の値の順序は、SIMatrix4.Get の出力パラメータと同じです。これは行列のレイアウトです。

| m0 m1 m2 m3 |

| m4 m5 m6 m7 |

| m8 m9 m10 m11 |

| m12 m13 m14 m15 |

注: このメソッドは、リファレンスに渡される引数をサポートしないスクリプト言語(JScript など)とともに使用する必要があります。出力引数の取得の詳細については、About Output Argument Arrays を参照してください。

C#構文

Object SIMatrix4.Get2();

スクリプト構文

oArray = SIMatrix4.Get2();

戻り値

Array。順序は m0、m1、m2、m3、m4、m5、m6、m7、m8、m9、m10、m11、m12、m13、m14、m15 です。

1. VBScript の例

NewScene,false

CreatePrim "Cube", "MeshSurface"

Translate , 10, 20, 30, siAbsolute, siParent, siObj, siXYZ

set om = XSIMath.CreateMatrix4

selection(0).Kinematics.Global.Transform.GetMatrix4 om

Application.LogMessage "SIMatrix4.Value(i,j)"

Application.LogMessage om(0,0) & " " & om(0,1) & " " & om(0,2) & " " & om(0,3)

Application.LogMessage om(1,0) & " " & om(1,1) & " " & om(1,2) & " " & om(1,3)

Application.LogMessage om(2,0) & " " & om(2,1) & " " & om(2,2) & " " & om(2,3)

Application.LogMessage om(3,0) & " " & om(3,1) & " " & om(3,2) & " " & om(3,3)

Application.LogMessage ""

Application.LogMessage "array = SIMatrix4.Get2"

m = om.Get2

Application.LogMessage m(0) & " " & m(1) & " " & m(2) & " " & m(3)

Application.LogMessage m(4) & " " & m(5) & " " & m(6) & " " & m(7)

Application.LogMessage m(8) & " " & m(9) & " " & m(10) & " " & m(11)

Application.LogMessage m(12) & " " & m(13) & " " & m(14) & " " & m(15)

Application.LogMessage ""

Application.LogMessage "SIMatrix4.Get m0, m1, m2..."

om.Get m(0),m(1),m(2),m(3),m(4),m(5),m(6),m(7),m(8),m(9),m(10),m(11),m(12),m(13),m(14),m(15)

Application.LogMessage m(0) & " " & m(1) & " " & m(2) & " " & m(3)

Application.LogMessage m(4) & " " & m(5) & " " & m(6) & " " & m(7)

Application.LogMessage m(8) & " " & m(9) & " " & m(10) & " " & m(11)

Application.LogMessage m(12) & " " & m(13) & " " & m(14) & " " & m(15)

'INFO : "SIMatrix4.Value(j,i)"

'INFO : "1 0 0 0"

'INFO : "0 1 0 0"

'INFO : "0 0 1 0"

'INFO : "10 20 30 1"

'INFO : ""

'INFO : "array = SIMatrix4.Get2"

'INFO : "1 0 0 0"

'INFO : "0 1 0 0"

'INFO : "0 0 1 0"

'INFO : "10 20 30 1"

'INFO : ""

'INFO : "SIMatrix4.Get m0, m1, m2..."

'INFO : "1 0 0 0"

'INFO : "0 1 0 0"

'INFO : "0 0 1 0"

'INFO : "10 20 30 1"

2. JScript の例

// create a null and translate, rotate and scale it

GetPrim("Null", null, null);

Translate(null, 1.73296599336766, 3.21359046016228, -0.321359046016228, siRelative, siView, siObj, siXYZ, null, null, null, null, null);

Rotate(null, -102.375, 0, 0, siRelative, siLocal, siObj, siXYZ, null, null, null);

Rotate(null, 0, -22.5, 0, siRelative, siLocal, siObj, siXYZ, null, null, null);

Scale(null, 1.55705996131528, 1.55705996131528, 1.55705996131528, siRelative, siLocal, siObj, siXYZ, null, null, null);

// get object from selection

var o = selection(0);

// get global transform from object

var t = o.kinematics.global.transform;

var m = XSIMath.CreateMatrix4();

t.getmatrix4( m );

var vbArr = new VBArray( m.Get2() );

var jsArr = vbArr.toArray();

var cCrLf = String.fromCharCode(13,10);

Application.LogMessage( cCrLf +

	"|" + round(jsArr[0],3)  + " " + round(jsArr[1],3)  + " " + round(jsArr[2],3)  + " " + round(jsArr[3],3)  + "|" + cCrLf +

	"|" + round(jsArr[4],3)  + " " + round(jsArr[5],3)  + " " + round(jsArr[6],3)  + " " + round(jsArr[7],3)  + "|" + cCrLf +

	"|" + round(jsArr[8],3)  + " " + round(jsArr[9],3)  + " " + round(jsArr[10],3) + " " + round(jsArr[11],3) + "|" + cCrLf +

	"|" + round(jsArr[12],3) + " " + round(jsArr[13],3) + " " + round(jsArr[14],3) + " " + round(jsArr[15],3) + "|" + cCrLf );

function round( n, numdecplaces ) 

{

	var f = Math.pow(10, numdecplaces );

	return Math.round(n * f)/f;

}

//INFO : "

//|1.439 0.582 -0.128 0|

//|0 -0.334 -1.521 0|

//|-0.596 1.405 -0.308 0|

//|1.733 3.214 -0.321 1|   

//"

関連項目

SIMatrix4.Get