
v5.0
ポイントロケータが定義されているポリゴンインデックスを戻します。
この情報はポリゴンメッシュポイントロケータ定義の一部であり、トポロジにのみ影響されます(ジオメトリが変形しても更新されません)。
ポリゴン内の場所は、PolygonMesh.GetTriangleVertexIndexArray、PolygonMesh.GetTriangleWeightArray、および PolygonMesh.GetTriangleNodeIndexArray を使用してクエリできます。
Object PolygonMesh.GetPolygonIndexArray( PointLocatorData in_pPtLocators, Object in_pPointLocatorsIndices ); |
oArray = PolygonMesh.GetPolygonIndexArray( PointLocators, [Indices] ); |
1DArray
| パラメータ | タイプ | 説明 |
|---|---|---|
| PointLocators | PointLocatorData | ポイントロケータは記述されます。 |
| Indices | 1DArray | 記述するポイントロケータのインデックス(無指定の場合はすべてのポイントロケータが対象となります)。 |
//
// This example topologically describes the point locators resulting
// from the shrink-wrapping of a cube onto a mesh sphere.
//
NewScene();
var root = Application.ActiveSceneRoot;
var CubePositionArray = root.AddGeometry("Cube", "MeshSurface").ActivePrimitive.Geometry.Points.PositionArray;
var MeshSphereGeom = root.AddGeometry("Sphere", "MeshSurface").ActivePrimitive.Geometry;
var CubeOnSpherePointLocators = MeshSphereGeom.GetClosestLocations(CubePositionArray);
var PtLocIndices = new Array(1);
for(i = 0; i < CubeOnSpherePointLocators.Count; i++)
{
PtLocIndices[0] = i;
var PtLocPolygon = MeshSphereGeom.GetPolygonIndexArray(
CubeOnSpherePointLocators,
PtLocIndices).toArray();
var PtLocSubTriNodes = MeshSphereGeom.GetTriangleNodeIndexArray(
CubeOnSpherePointLocators,
PtLocIndices).toArray();
var PtLocSubTriVertices = MeshSphereGeom.GetTriangleVertexIndexArray(
CubeOnSpherePointLocators,
PtLocIndices).toArray();
var PtLocBaryCoords = MeshSphereGeom.GetTriangleWeightArray(
CubeOnSpherePointLocators,
PtLocIndices).toArray();
Application.LogMessage("Point locator " + i + " is on polygon " + PtLocPolygon[0] + ",");
Application.LogMessage("on a subtriangle described by nodes ("
+ PtLocSubTriNodes[0] + ", " + PtLocSubTriNodes[1] + ", " + PtLocSubTriNodes[2] + ")" +
" or by vertices ("
+ PtLocSubTriVertices[0] + ", " + PtLocSubTriVertices[1] + ", " + PtLocSubTriVertices[2] + ")");
Application.LogMessage("and having barycentric coordinates ("
+ PtLocBaryCoords[0] + ", " + PtLocBaryCoords[1] + ", " + PtLocBaryCoords[2] + ")");
Application.LogMessage("");
}
// Expected results:
//INFO : Point locator 0 is on polygon 58,
//INFO : on a subtriangle described by nodes (217, 219, 220) or by vertices (52, 4, 53)
//INFO : and having barycentric coordinates (0.6173165440559387, 0, 0.3826834559440613)
//INFO :
//INFO : Point locator 1 is on polygon 42,
//INFO : on a subtriangle described by nodes (157, 159, 160) or by vertices (38, 46, 39)
//INFO : and having barycentric coordinates (0.6173165440559387, 0, 0.3826834559440613)
//INFO :
//INFO : Point locator 2 is on polygon 61,
//INFO : on a subtriangle described by nodes (229, 231, 232) or by vertices (55, 7, 56)
//INFO : and having barycentric coordinates (0.3826834261417389, 0, 0.6173166036605835)
//etc. |
PointLocatorData Geometry Geometry.GetClosestLocations Geometry.GetClosestLocationsWithinRadius Geometry.GetRaycastIntersections Geometry.SetupPointLocatorQueries Geometry.GetSurfacePointLocatorsFromPoints Geometry.EvaluatePositions Geometry.EvaluateNormals Geometry.EvaluateClusterProperty PolygonMesh.GetTriangleVertexIndexArray PolygonMesh.GetTriangleNodeIndexArray PolygonMesh.GetTriangleWeightArray PolygonMesh.ConstructPointLocators NurbsSurfaceMesh.GetSubSurfaceIndexArray NurbsSurfaceMesh.GetNormalizedUVArray NurbsSurfaceMesh.ConstructPointLocators