GetClosestCurvePosition (NurbsCurveList) *

Description

Returns the curve index, position of the point on it, U value and squared distance from the given position.

Note: This method uses output arguments. C# and some scripting languages (such as JScript and PerlScript) don't support arguments passed by reference. However, there is a alternate version of this method which is considered safe to use with C#, JScript and PerlScript: NurbsCurveList.GetClosestCurvePosition2.

Scripting Syntax

NurbsCurveList.GetClosestCurvePosition( Position, [CurveIndex], [SquaredDistance], [UValue], [Position] )

C# Syntax

NurbsCurveList.GetClosestCurvePosition( Object in_vPosition, Object& out_pvCurveIndex, Object& out_pvSquaredDistance, Object& out_pvUValue, Object& out_pvPosition );

Parameters

Parameter

Type

Description

Position

SIVector3 or 1D Array of 3 elements

A position expressed in the NurbsCurveList object frame of reference.

CurveIndex [out]

Long

The curve index to which the position is the closest.

SquaredDistance [out]

Double

The squared distance of the inputed position to the curve point.

UValue [out]

Double

The corresponding UValue on the NurbsCurve.

Position [out]

SIVector3

The actual curve point position at UV values.

Examples

VBScript Example

set oRoot = Application.activeproject.activescene.root

set oArc = oRoot.AddGeometry( "Arc", "NurbsCurve" )

'Translate the sphere
oArc.Kinematics.Global.Parameters("posx").value = oArc.Kinematics.Global.Parameters("posx").value + 13

set oPos = XSIMath.CreateVector3
oPos.Set 0.0, 0.0, 0.0

set oPosition = XSIMath.MapWorldPositionToObjectSpace(oArc.Kinematics.local.transform, oPos) 

oArc.ActivePrimitive.Geometry.GetClosestCurvePosition oPosition, CurveIndex, squaredDistance, UValue, CurvePosition
logmessage "The origin is closest to curve : " & CurveIndex & " its distance from it is " & sqr(squaredDistance)
logmessage "The U values is " & UValue
logmessage "The corresponding position is X : " & CurvePosition.X & " Y :" & CurvePosition.Y & " Z :" & CurvePosition.Z

oArc.ActivePrimitive.Geometry.GetClosestCurvePosition Array(0.0, 0.0, 0.0), CurveIndex, squaredDistance, UValue, CurvePosition
logmessage "The origin is closest to surface : " & CurveIndex & " its distance from it is " & sqr(squaredDistance)
logmessage "The U values is " & UValue
logmessage "The corresponding position is X : " & CurvePosition.X & " Y :" & CurvePosition.Y & " Z :" & CurvePosition.Z


Autodesk Softimage v7.5