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 |
A position expressed in the NurbsCurveList object frame of reference. |
|
|
CurveIndex [out] |
The curve index to which the position is the closest. |
|
|
SquaredDistance [out] |
The squared distance of the inputed position to the curve point. |
|
|
UValue [out] |
The corresponding UValue on the NurbsCurve. |
|
|
Position [out] |
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