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.
C# Syntax
Object NurbsSurfaceMesh.GetClosestSurfacePosition2( Object in_vPosition );
|
Scripting Syntax
oArray = NurbsSurfaceMesh.GetClosestSurfacePosition2( Position );
|
Return Value
Array of Variants ordered as Index,
SquaredDistance, UValue, VValue, Position.
Parameters
Parameter |
Type |
Description |
Position |
SIVector3 or 1D Array of 3 elements |
A position expressed in the NurbsSurfaceMesh object frame of
reference. |
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