指定された ObjectSpace で記述された位置を、WorldSpace に変換します。
SIVector3 XSIMath.MapObjectPositionToWorldSpace( SITransformation in_pObjectSpace, SIVector3 in_pPosition ); |
oReturn = XSIMath.MapObjectPositionToWorldSpace( ObjectSpace, Position ); |
SIVector3(位置)
パラメータ | タイプ | 説明 |
---|---|---|
ObjectSpace | SITransformation | 位置が記述されている ObjectSpace |
Position | SIVector3 | 変換する位置 |
NewScene (null, false); var oRoot = Application.ActiveProject.ActiveScene.Root; var oCube = oRoot.AddGeometry("Cube","MeshSurface"); oCube.Kinematics.Global.Parameters("posy").value = 4.0; oCube.Kinematics.Global.Parameters("posx").value = 2.0; 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); // Expected results: //INFO : The local position is: X -4 Y -4 Z -4 //INFO : The world position is: X -2 Y 0 Z -4 |
set oRoot = Application.ActiveProject.ActiveScene.Root set oCube = oRoot.AddGeometry("Cube","MeshSurface") oCube.Kinematics.Global.Parameters("posy").value = 4.0 oCube.Kinematics.Global.Parameters("posx").value = 2.0 set oTrans = oCube.Kinematics.Local.Transform set oPoint = oCube.ActivePrimitive.Geometry.Points(0) set oPos = oPoint.Position Application.LogMessage "The local position is: X "& oPos.X & " Y " & oPos.Y & " Z " & oPos.Z set oGlobalPos = XSIMath.MapObjectPositionToWorldSpace( oTrans, oPos) Application.LogMessage "The world position is: X "& oGlobalPos.X & " Y " & oGlobalPos.Y & " Z " & oGlobalPos.Z ' Expected results: 'INFO : The local position is: X -4 Y -4 Z -4 'INFO : The world position is: X -2 Y 0 Z -4 |