GetClosestSurfacePosition2 (NurbsSurfaceMesh) *
Description
Returns the surface index, position of the point on it, UV values and squared distance from the given position. The data is returned in a 1-dimensional array and is ordered the same as for the NurbsSurfaceMesh.GetClosestSurfacePosition method output arguments.
Note: This method must be used with scripting languages that don't support arguments passed by reference such as JScript and PerlScript. For more information on getting output arguments, see About Output Argument Arrays.
Scripting Syntax
NurbsSurfaceMesh.GetClosestSurfacePosition2( Position )
C# Syntax
Object NurbsSurfaceMesh.GetClosestSurfacePosition2( Object in_vPosition );Parameters
|
Parameter |
Type |
Description |
|
Position |
A position expressed in the NurbsSurfaceMesh object frame of reference. |
Return Value
Array of Variants ordered as Index, SquaredDistance, UValue, VValue, Position.
Examples
JScript Example
// This example shows how to retrieve the control points returned by // NurbsSurface.GetClosestSurfacePosition2 var oRoot = Application.ActiveProject.ActiveScene.Root; var oSphere = oRoot.AddGeometry( "Sphere", "NurbsSurface" ); // Translate the sphere oSphere.Kinematics.Global.Parameters("posx").value = oSphere.Kinematics.Global.Parameters("posx").value + 13; var oPosition = XSIMath.CreateVector3(); oPosition.Set( 0.0, 0.0, 0.0 ); // convert VB array to JScript array var vbArgs = new VBArray(oSphere.ActivePrimitive.Geometry.GetClosestSurfacePosition2(oPosition)); var args = vbArgs.toArray(); LogMessage( "The origin is closest to surface : " + args[0] + " its distance from it is " + Math.sqrt(args[1]) ); LogMessage( "The UV values are U : " + args[2] + " V :" + args[3] ); LogMessage( "The corresponding position is X : " + args[4].X + " Y :" + args[4].Y + " Z :" + args[4].Z );
See Also
Autodesk Softimage v7.5