コード例 #1
0
void
CKLBLuaLibMatrix::setVector(CLuaState& lua, VECTOR * vec)
{
	lua.tableNew();		// ベクトル用のテーブル
	for(int n = 0; n < 4; n++) {
		lua.retInt(n + 1); lua.retDouble(vec->v[n]); lua.tableSet();
	}
}
コード例 #2
0
void
CKLBLuaLibMatrix::setMatrix(CLuaState& lua, MATRIX * mat)
{
	// 最上位に対象の配列を作る
	lua.tableNew();
	for(int idx = 0; idx < 16; idx++) {
		// key として index 値を積む
		lua.retInt(idx + 1);
		// 値を積む
		lua.retDouble(mat->m[idx]);
		// 値を設定する
		lua.tableSet();
	}
}
コード例 #3
0
void
CKLBLuaLibMatrix::setVectorArray(CLuaState& lua, VECTOR * vec, int nums)
{
	lua.tableNew();		// ベクトル配列用のテーブル

	for(int idx = 0; idx < nums; idx++) {
		lua.retInt(idx + 1);	// ベクトル配列中のindexを指定する

		// ベクトルの値をスタック上に積む
		setVector(lua, &vec[idx]);

		// この時点で、ベクトル配列のindexと、ベクトルがスタックに積まれている
		lua.tableSet();	// ベクトル配列にベクトルを設定する
	}
	// 一通りの設定が終わり、ベクトル配列テーブルがスタック上に積まれた状態になる。
}