CurveDirectManip

Introduced

v5.0

Description

Manipulates a point of a curve (isopoint) to control its position or one of its tangents.

Scripting Syntax

oReturn = CurveDirectManip( [SubComp], [ImmediateMode], [Mode], [X], [Y], [Z] );

Return Value

An XSICollection of Operator objects.

Parameters

Parameter Type Description
SubComp String A curve isopoint as Components.

Default Value: Current selection

ImmediateMode siOperationMode Specifies whether or not the operator should be immediately frozen.

Default Value: siPersistentOperation

Mode siCurveIsopointManipMode Mode of manipulation

Default Value: siCurveIsopointPositionManipMode

X Double Displacement along the X axis of the object frame.

For a position modification the new isopoint position will be: posX = posX + X

For a tangent modification the new tangent will be: tangentX = tangentX + X

Default Value: 0.000000

Y Double Displacement along the Y axis of the object frame.

For a position modification the new isopoint position will be: posY = posY + Y

For a tangent modification the new tangent will be: tangentY = tangentY + Y

Default Value: 0.000000

Z Double Displacement along the Z axis of the object frame.

For a position modification the new isopoint position will be: posZ = posZ + Z

For a tangent modification the new tangent will be: tangentZ = tangentZ + Z

Default Value: 0.000000

Examples

1. VBScript Example

' 

'	This example creates a m-shape cubic curve, converts the middle knot to Bezier, then controls

'	its position, its forward tangent and finally its backward tangent so the end result is 

'	a nice m shape consisting of two adjacent identical arcs.

' 

SICreateCurve "crvlist", 3, 0

SIAddPointOnCurveAtEnd "crvlist", -4.00195694716243, -2.00677710843373, 0, False, 0

SIAddPointOnCurveAtEnd "crvlist", -4.00195694716243, -9.78915662650515E-03, 0, False, 0

SIAddPointOnCurveAtEnd "crvlist", -2.00587084148728, 1.98719879518072, 0, False, 0

SIAddPointOnCurveAtEnd "crvlist", -9.78473581213335E-03, -2.00677710843373, 0, False, 0

SIAddPointOnCurveAtEnd "crvlist", 1.98630136986301, 1.98719879518072, 0, False, 0

SIAddPointOnCurveAtEnd "crvlist", 3.98238747553816, -9.78915662650581E-03, 0, False, 0

SIAddPointOnCurveAtEnd "crvlist", 3.98238747553816, -2.00677710843373, 0, False, 0

SetCurveKnotMultiplicity "crvlist.knot[2]", 3, siPersistentOperation

CurveDirectManip "crvlist.isopnt[(0,0.500)]", siPersistentOperation, siCurveIsopointPositionAndTangentsManipMode, 1.66533453693773E-16, -1.33132530120482

CurveDirectManip "crvlist.isopnt[(0,0.500)]", siPersistentOperation, siCurveIsopointFwdTangentManipMode, -1.99608610567515, 5.99096385542169

CurveDirectManip "crvlist.isopnt[(0,0.500)]", siPersistentOperation, siCurveIsopointBwdTangentManipMode, 1.99608610567515, 5.99096385542169

2. JScript Example

/* 

	This example creates a m-shape cubic curve, converts the middle knot to Bezier, then controls

	its position, its forward tangent and finally its backward tangent so the end result is 

	a nice m shape consisting of two adjacent identical arcs.

*/ 

SICreateCurve("crvlist", 3, 0);

SIAddPointOnCurveAtEnd("crvlist", -4.00195694716243, -2.00677710843373, 0, false, 0, null);

SIAddPointOnCurveAtEnd("crvlist", -4.00195694716243, -9.78915662650515E-03, 0, false, 0, null);

SIAddPointOnCurveAtEnd("crvlist", -2.00587084148728, 1.98719879518072, 0, false, 0, null);

SIAddPointOnCurveAtEnd("crvlist", -9.78473581213335E-03, -2.00677710843373, 0, false, 0, null);

SIAddPointOnCurveAtEnd("crvlist", 1.98630136986301, 1.98719879518072, 0, false, 0, null);

SIAddPointOnCurveAtEnd("crvlist", 3.98238747553816, -9.78915662650581E-03, 0, false, 0, null);

SIAddPointOnCurveAtEnd("crvlist", 3.98238747553816, -2.00677710843373, 0, false, 0, null);

SetCurveKnotMultiplicity("crvlist.knot[2]", 3, siPersistentOperation);

CurveDirectManip("crvlist.isopnt[(0,0.500)]", siPersistentOperation, siCurveIsopointPositionAndTangentsManipMode, 1.66533453693773E-16, -1.33132530120482, null);

CurveDirectManip("crvlist.isopnt[(0,0.500)]", siPersistentOperation, siCurveIsopointFwdTangentManipMode, -1.99608610567515, 5.99096385542169, null);

CurveDirectManip("crvlist.isopnt[(0,0.500)]", siPersistentOperation, siCurveIsopointBwdTangentManipMode, 1.99608610567515, 5.99096385542169, null);