PolygonFace.TriangleSubIndexArray

PolygonFace.TriangleSubIndexArray operator

導入

v5.0

詳細

ポリゴンのテッセレーションに対応する三角分割の説明を含む、パック化された 1D Arrayを戻します。ポリゴンは(NbPoints - 2)三角形にテッセレートされ、三角形ごとに範囲内の 3 つのインデックス(0..NbPoints-1)が戻されます。3 つ 1 組の各インデックスがポリゴンのサブトライアングルを表し、ポリゴン内で順序付けられている頂点またはノードに対応します。

ポリゴンの三角分割は、ジオメトリのデフォーメーションに応じて変わることがあるので注意してください。

C#構文

// get accessor

Object rtn = PolygonFace.TriangleSubIndexArray;

JScript の例

/*

	This example demonstrates how to describe the triangulation of some polygons.

*/

NewScene( null, false );

var SphereGeom = Application.ActiveSceneRoot.AddGeometry("Sphere", "MeshSurface").ActivePrimitive.Geometry;

var Polygons = SphereGeom.Polygons;

for(i = 0; i < Polygons.Count; i++)

{

	var Polygon = Polygons.Item(i);

	var NbTriangles = Polygon.NbPoints-2;

	var PolygonVertices = Polygon.Vertices;

	var PolygonNodes = Polygon.Nodes;

	var TriangleSubIndices = Polygon.TriangleSubIndexArray.toArray();

	for(j = 0; j < NbTriangles; j++)

	{

		Application.LogMessage("SubTriangle " + j + " of Polygon " + i + " correspond to vertices (" + 

			PolygonVertices.Item(TriangleSubIndices[j*3]).Index + ", " +

			PolygonVertices.Item(TriangleSubIndices[j*3+1]).Index + ", " +

			PolygonVertices.Item(TriangleSubIndices[j*3+2]).Index + ") and nodes (" +

			PolygonNodes.Item(TriangleSubIndices[j*3]).Index + ", " +

			PolygonNodes.Item(TriangleSubIndices[j*3+1]).Index + ", " +

			PolygonNodes.Item(TriangleSubIndices[j*3+2]).Index + ").");

	}

}

// Expected results:

//INFO : SubTriangle 0 of Polygon 0 correspond to vertices (9, 2, 0) and nodes (0, 1, 2).

//INFO : SubTriangle 0 of Polygon 1 correspond to vertices (2, 9, 10) and nodes (3, 4, 5).

//INFO : SubTriangle 1 of Polygon 1 correspond to vertices (2, 10, 3) and nodes (3, 5, 6).

//INFO : SubTriangle 0 of Polygon 2 correspond to vertices (3, 10, 11) and nodes (7, 8, 9).

//INFO : SubTriangle 1 of Polygon 2 correspond to vertices (3, 11, 4) and nodes (7, 9, 10).

//etc.

関連項目

PolygonFace.Vertices PolygonFace.Nodes