ポリゴンメッシュの完全なデータ記述から設定します。このメソッドをクラスタのあるオブジェクトに使用してトポロジを変更した場合は、クラスタの更新はユーザが実行する必要があります。
注: このメソッドでは output arguments が使用されます。C# および一部のスクリプト言語(JScript や PerlScript など)は引数の参照渡しをサポートしていないため、状況に最も適した回避策をとる必要があります。
スクリプト言語の場合、このメソッドは ISIVTCollection を戻します。これは、出力引数の取得に使用できます。
C#の場合、唯一の回避策は、出力引数と戻り値の両方を 1 つの配列で戻すVBScript のカスタムコマンドを作成することです。詳細については、「What Happens when the Function Already Returns a Value?」を参照してください。
PolygonMesh.Set( Object in_vertices, Object in_polygonData ); |
PolygonMesh.Set( [Vertices], [PolygonData] ); |
パラメータ | タイプ | 説明 |
---|---|---|
Vertices | Array | ポリゴンの頂点を表わす配列。配列は x,y,z 値の 2D 配列(Nx3)です。 |
PolygonData | Array | 順序付けられた、ポリゴン定義の配列。各ポリゴンはエレメントのリストによって定義され、ポリゴン定義の最初のエレメントにはポリゴンのインデックスの数を設定する必要があります。頂点の順序付けは、外側を向く法線を基準として反時計回りの順序付け(右手の法則)に従う必要があります。たとえば、それぞれ 4 つのインデックスからなるポリゴンの配列は次のようになります。{4,0,1,4,3,4,1,2,5,4... } |
// // This example shows how to get the polygonmesh description from // one geometry and apply it on another. // var oRoot = Application.ActiveSceneRoot; var oCube = oRoot.AddGeometry( "Cube","MeshSurface" ); var oCone = oRoot.AddGeometry( "Cone","MeshSurface" ); // convert VB array to JScript array var vbArgs = new VBArray(oCube.ActivePrimitive.Geometry.Get2()); var args = vbArgs.toArray(); // get the vertices var vbArg0 = new VBArray(args[0]); var vertices = vbArg0.toArray(); // get the polygon information var vbArg1 = new VBArray(args[1]); var polygonData = vbArg1.toArray(); // Freezing the cone operator stack. Otherwise the method will return // the error E_ACCESSDENIED. This was done in order to prevent writing transient // data to objects. Otherwise setting values on non Application.FreezeObj(oCone); // Converting the cone to a cube oCone.ActivePrimitive.Geometry.Set(vertices,polygonData); |