PolygonMesh.GetApproximatedMesh

導入

v5.0

詳細

指定されたサブディビジョンルールで細分割されたメッシュのジオメトリ描写、サブディビジョンのレベルおよび使用されている場合は不連続角を指定します。ジオメトリ データは 1D 配列で戻され、次の値で構成されます。

1)頂点: x、y、z 値のポリゴン頂点 2D 配列(Nx3)。

2)ポリゴンデータ:順序付けられた、ポリゴン定義の配列。各ポリゴンはエレメントのリストによって定義され、ポリゴン定義の最初のエレメントにはポリゴンのインデックスの数を設定する必要があります。頂点の順序付けは、外側を向く法線を基準として反時計回りの順序付け(右手の法則)に従う必要があります。たとえば、それぞれ 4 つのインデックスを持つポリゴンの配列: {4,0,1,4,3,4,1,2,5,4... }

3)ポリゴン ノード標準配列: 各ポリゴン ノードに標準 X、Y、Z 値を含む·2D 配列。

4)各ポリゴンフェイスに対するポリゴンノード:各ポリゴンフェイスにおけるポリゴンノードの数の後に、対応するポリゴンノードのインデックスが続く 1D 配列。

注:C++ API 相当のPolygonMesh::GetGeometryAccessor関数は、必要なデータのみを取得できる(ゆえにこのデータへのアクセス効率を格段に向上させる)CGeometryAccessorオブジェクトを戻します。

スクリプト 構文

oArray = PolygonMesh.GetApproximatedMesh( SubdivisionRule, SubdivisionLevel, UseDiscontinuity, DiscontinuityAngle );

戻り値

1DArray

パラメータ

パラメータ タイプ 詳細
SubdivisionRule siSubdivisionRuleType このパラメータには、アプロクシメーションに使用するサブディビジョンルールが含まれます。
SubdivisionLevel Long このパラメータには、アプロクシメーションに使用するサブディビジョンルールが含まれます。
UseDiscontinuity Boolean 不連続角を使用するかどうかを指定します。
DiscontinuityAngle Double 不連続角を指定します。

VBScript の例

set oCube = ActiveSceneRoot.AddGeometry( "Cube","MeshSurface" )
set oGApprox = oCube.Properties.Find("geomapprox")
MakeLocal oGApprox
oGApprox.Parameters("gapproxmosl").value = 1
values = oCube.ActivePrimitive.Geometry.GetApproximatedMesh( _
                oGApprox.Parameters("gapproxmosr").value,_
                oGApprox.Parameters("gapproxmosl").value,_
                oGApprox.Parameters("gapproxmoad").value,_
                oGApprox.Parameters("gapproxmoan").value )
aVertices = values(0)
aPolygonData = values(1)
set oApproximatedCube = ActiveSceneRoot.AddPolygonMesh( aVertices, aPolygonData )