
この NURBS コンポーネントに対するコントロールポイントのArrayを戻します。3D オブジェクトのジオメトリ タイプに応じて、戻される配列は 2 次元または 3 次元になります。
コンポーネントが NurbsCurve の場合、[X,Y,Z,W]値の 2D 配列が戻されます。コンポーネントがNurbsSurfaceの場合は、3D 配列が戻されます。
注:配列要素にアクセスするためのインデックスは、ご使用の言語によって異なるのでご注意ください。これは、メモリ内での C++配列の並び方が SafeArray と異なるためです。
- C++:[U] [V] [X,Y,Z,W]
- スクリプト: [X,Y,Z,W] [V] [U]
C++ とスクリプト間でのメモリ マッピングの整合性を保つため、上に示すように SafeArray インデックスは常に C++ インデックスの逆になります。
// get accessor Object rtn = ControlPointCollection.Array; // set accessor ControlPointCollection.Array = Object; |
set oObject = ActiveSceneRoot.AddGeometry("Sphere","NurbsSurface")
set oNurbsSurfaceMesh = oObject.ActivePrimitive.Geometry
set oControlPoints = oNurbsSurfaceMesh.Surfaces(0).ControlPoints
aControlPoints = oControlPoints.Array
for i = lbound( aControlPoints, 1 ) to ubound( aControlPoints, 1 )
for j = lbound( aControlPoints, 2 ) to ubound( aControlPoints, 2 )
LogMessage aControlPoints(i,j,0)
LogMessage aControlPoints(i,j,1)
LogMessage aControlPoints(i,j,2)
LogMessage aControlPoints(i,j,3)
next
next |