日々適当

hibitekitou

MapObjectPositionToWorldSpace

xsi |2012-10-21
よさげな関数。Pythonで下さい(^^)

Softimage 頂点を渡すとグローバルの座標が戻される関数 [MOCHI-MOCHI]

ちなみに、SIのSDKドキュメントにおける MapObjectPositionToWorldSpaceのJscriptの例文はちゃんと正しい結果が返ってくるように見えますが、以下のように、Nullの子供にしてからoTransを得て、MapObjectPositionToWorldSpaceを実行すると、Globalな値は返ってこないように見えます。
返ってきてほしい値は、
//INFO : The local position is: X -4 Y -4 Z -4
//INFO : The world position is: X -2 Y 0 Z -4
のはずなのだけど、
//INFO : The local position is: X -4 Y -4 Z -4
//INFO : The world position is: X 2 Y 2 Z -4
となります。

これ、例文が間違っているだけなのか、何か意図のある例文なのか…

NewScene (null, false);

var oRoot = Application.ActiveProject.ActiveScene.Root;

var oCube = oRoot.AddGeometry("Cube","MeshSurface");
var oNull = oRoot.AddNull("")

oCube.Kinematics.Global.Parameters("posy").value = 4.0;
oCube.Kinematics.Global.Parameters("posx").value = 2.0;

oNull.Kinematics.Global.Parameters("posx").value = -4.0;
oNull.Kinematics.Global.Parameters("posy").value = -2.0;

oNull.AddChild(oCube);

var oTrans = oCube.Kinematics.Local.Transform;
var oPoint = oCube.ActivePrimitive.Geometry.Points(0);

var oPos = oPoint.Position;

Application.LogMessage ("The local position is: X "+ oPos.X + " Y " + oPos.Y + " Z " + oPos.Z);

var oGlobalPos = XSIMath.MapObjectPositionToWorldSpace( oTrans, oPos);

Application.LogMessage ("The world position is: X "+ oGlobalPos.X + " Y " + oGlobalPos.Y + " Z " + oGlobalPos.Z);
コメント ( 0 )|Trackback ( )
 
コメント
 
コメントはありません。
コメントを投稿する
ブログ作成者から承認されるまでコメントは反映されません
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。