GetSubSurfaceIndexArray (NurbsSurfaceMesh) *

Introduced

5.0

Description

Returns the subsurface indices on which point locators are defined.

Notice that this information is part of the NurbsSurfaceMesh point locator's definition, and depends on the topology only (won't change if the geometry is deformed).

The normalized UV parameters within the subsurface can be queried with NurbsSurfaceMesh.GetNormalizedUVArray.

Scripting Syntax

NurbsSurfaceMesh.GetSubSurfaceIndexArray( PtLocators, [PointLocatorsIndices] )

C# Syntax

Object NurbsSurfaceMesh.GetSubSurfaceIndexArray( PointLocatorData in_pPtLocators, Object in_pPointLocatorsIndices );

Parameters

Parameter

Type

Description

PtLocators

PointLocatorData

Point locators to be described.

PointLocatorsIndices

1-dimensional Array

Indices of the point locators to be described (all if not specified).

Return Value

1-dimensional Array of point locator indices

Examples

JScript Example

/* 
   This example topologically describes the point locators resulting 
   from the shrink-wrapping of a cube onto a NURBS surface sphere.
*/

NewScene( null, false );
var root = Application.ActiveSceneRoot;
var CubePositionArray = root.AddGeometry("Cube", "MeshSurface").ActivePrimitive.Geometry.Points.PositionArray;
var NurbsSphereGeom = root.AddGeometry("Sphere", "NurbsSurface").ActivePrimitive.Geometry;

var CubeOnSpherePointLocators = NurbsSphereGeom.GetClosestLocations(CubePositionArray);

var PtLocIndices = new Array(1);

for(i = 0; i < CubeOnSpherePointLocators.Count; i++)
{
   PtLocIndices[0] = i;
   var PtLocSubSurf = NurbsSphereGeom.GetSubSurfaceIndexArray(
                 CubeOnSpherePointLocators,
                 PtLocIndices).toArray();
   var PtLocUVs = NurbsSphereGeom.GetNormalizedUVArray(
                 CubeOnSpherePointLocators,
                 PtLocIndices).toArray();
   logmessage("Point locator " + i + " is on subsurface " + PtLocSubSurf[0] +
       " at {U = " + PtLocUVs[0] + " , V = " + PtLocUVs[1] + "}.");
}

// Expected results:
//INFO : Point locator 0 is on subsurface 0 at {U = 1.3552785236419922e-16 , V = 0.3042299747467041}.
//INFO : Point locator 1 is on subsurface 0 at {U = 0.75 , V = 0.3040647506713867}.
//INFO : Point locator 2 is on subsurface 0 at {U = 2.4521901608032514e-17 , V = 0.6954541206359863}.
//INFO : Point locator 3 is on subsurface 0 at {U = 0.75 , V = 0.6959285140037537}.
//INFO : Point locator 4 is on subsurface 0 at {U = 0.25 , V = 0.3040647506713867}.
//INFO : Point locator 5 is on subsurface 0 at {U = 0.5 , V = 0.3040647506713867}.
//INFO : Point locator 6 is on subsurface 0 at {U = 0.25 , V = 0.6959285140037537}.
//INFO : Point locator 7 is on subsurface 0 at {U = 0.5 , V = 0.6959285140037537}.

See Also

PointLocatorData

Geometry

Geometry.GetClosestLocations

Geometry.GetClosestLocationsWithinRadius

Geometry.GetRaycastIntersections

Geometry.SetupPointLocatorQueries

Geometry.GetSurfacePointLocatorsFromPoints

Geometry.EvaluatePositions

Geometry.EvaluateNormals

Geometry.EvaluateClusterProperty

PolygonMesh.GetPolygonIndexArray

PolygonMesh.GetTriangleVertexIndexArray

PolygonMesh.GetTriangleNodeIndexArray

PolygonMesh.GetTriangleWeightArray

PolygonMesh.ConstructPointLocators

NurbsSurfaceMesh.GetNormalizedUVArray

NurbsSurfaceMesh.ConstructPointLocators

 

 

 



Autodesk Softimage v7.5