Class NURBS2RailSweepSurface

3DS Max Plug-In SDK

Class NURBS2RailSweepSurface

See Also: Class NURBSSurface.

class NURBS2RailSweepSurface : public NURBSSurface

Description:

This class is available in release 2.5 and later only.

This class provides access to the 2-Rail Sweep Surface. A 2-Rail Sweep surface uses at least three curves. Two curves, the "rails," define the two edges of the surface. The other curves define the surface's cross sections. A 2-Rail Sweep surface is similar to a 1-Rail sweep. The additional rail gives you more control over the shape of the surface.

Friend Classes:

friend class NURBSSet

Methods:

protected:

Prototype:

void Clean(NURBSIdTab ids);

Remarks:

This method is available in release 3.0 and later only.

This methods breaks the relation between this NURBSObject and a NURBSSet.

Parameters:

NURBSIdTab ids

A table with the IDs of each object in the NURBSSet.

public:

Prototype:

NURBS2RailSweepSurface();

Remarks:

Constructor. The data members are initialized as follows:

 mType = kN2RailSweepSurface;

 mpObject = NULL;

 mpNSet = NULL;

 mParentId.SetCount(0);

 mParentIndex.SetCount(0);

 mRailParentId[0] = mRailParentId[1] = NULL;

 mRailParentIndex[0] = mRailParentIndex[1] = -1;

 mCurveStartParam.SetCount(0);

 mSnapCrossSections = FALSE;

Prototype:

virtual ~NURBS2RailSweepSurface();

Remarks:

Destructor.

Prototype:

void SetNumCurves(int num);

Remarks:

Sets the number of cross-section curves.

Parameters:

int num

The number of cross-section curves to use.

Prototype:

int GetNumCurves(void);

Remarks:

Returns the number of cross-section curves used.

Prototype:

int AppendCurve(int index, BOOL flip);

Remarks:

Adds a curve to the end of the list of cross-section curves by specifying the index in the NURBSSet.

Parameters:

int index

The index in the NURBSSet of the cross-section curve to append.

BOOL flip

TRUE to reverse (or flip) the direction of the curve; FALSE to use the non-reversed orientation.

Return Value:

The number of cross-section curves prior to appending.

Prototype:

int AppendCurve(NURBSId id, BOOL flip);

Remarks:

Adds a curve to the end of the list of cross-section curves by specifying a NURBSId.

Parameters:

NURBSId id

Specifies the cross-section curve to append.

BOOL flip

TRUE to reverse (or flip) the direction of the curve; FALSE to use the non-reversed orientation.

Return Value:

The number of cross-section curves prior to appending.

Prototype:

void SetParent(int pnum, int index);

Remarks:

Specifies the curve to use as a cross-section via its index in the NURBSSet.

Parameters:

int pnum

The zero based index of the curve to set.

int index

The index in the NURBSSet of the curve.

Prototype:

void SetParentId(int pnum, NURBSId id);

Remarks:

Specifies the curve to use as a cross-section via its NURBSId.

Parameters:

int pnum

The zero based index of the curve to set.

NURBSId id

The id of the curve.

Prototype:

int GetParent(int pnum);

Remarks:

Returns the index in the NURBSSet of the specified cross-section curve.

Parameters:

int pnum

The zero based index of the curve to get.

Prototype:

NURBSId GetParentId(int pnum);

Remarks:

Returns the NURBSId of the specified cross-section curve.

Parameters:

int pnum

The zero based index of the curve to get.

Prototype:

void SetFlip(int pnum, BOOL flip);

Remarks:

Sets the reversed (or flipped) state of the specified cross-section curve.

Parameters:

int pnum

The zero based index of the curve.

BOOL flip

TRUE to reverse the direction; FALSE for the normal direction.

Prototype:

BOOL GetFlip(int pnum);

Remarks:

Returns the reversed (or flipped) state of the specified cross-section curve. TRUE is reversed; FALSE is not.

Parameters:

int pnum

The zero based index of the curve.

Prototype:

void SetParallel(BOOL para);

Remarks:

Sets the state of the parallel flag. When off, it allows the cross section curve to bank to follow the rails. If on, it maintains the initial orientation of the cross section during the course of the sweep

Parameters:

BOOL para

TRUE for on; FALSE for off.

Prototype:

BOOL GetParallel();

Remarks:

Returns the state of the parallel flag.

Prototype:

void SetScale(BOOL scale);

Remarks:

To allow the cross sections to run along the rails, the cross section curves may need to be scaled. This method controls if the scaling is done uniformly or non-uniformly.

Parameters:

BOOL scale

TRUE to scale uniformly; FALSE to scale non-uniformly.

Prototype:

BOOL GetScale();

Remarks:

Returns TRUE if the cross section curves are scaled uniformly; FALSE for non-uniformly.

Prototype:

void SetRailParent(int pnum, int index);

Remarks:

Specifies the index in the NURBSSet of the first or second rail curve to use.

Parameters:

int pnum

Pass 0 for the first rail curve; 1 for the second rail curve.

int index

The index in the NURBSSet of the curve to use as a rail.

Prototype:

void SetRailParentId(int pnum, NURBSId id);

Remarks:

Specifies the NURBSId of the first or second rail curve to use.

Parameters:

int pnum

Pass 0 for the first rail curve; 1 for the second rail curve.

NURBSId id

The id of the curve to use as a rail.

Prototype:

int GetRailParent(int pnum);

Remarks:

Returns the index in the NURBSSet of the specified parent rail curve.

Parameters:

int pnum

Pass 0 for the first rail curve; 1 for the second rail curve.

Prototype:

NURBSId GetRailParentId(int pnum);

Remarks:

Returns the NURBSId of the specified parent rail curve.

Parameters:

int pnum

Pass 0 for the first rail curve; 1 for the second rail curve.

Prototype:

void SetSnapCS(BOOL snapCS);

Remarks:

This method is available in release 3.0 and later only.

Sets the snap cross sections setting. When on, cross-section curves are translated so they intersect the rail.

Parameters:

BOOL snapCS

TRUE for on; FALSE for off.

Prototype:

BOOL GetSnapCS();

Remarks:

This method is available in release 3.0 and later only.

Returns TRUE if snap cross sections is on; otherwise FALSE.

Prototype:

void SetCurveStartPoint(TimeValue t, int pnum, double startpoint);

Remarks:

This method is available in release 3.0 and later only.

Sets the start point for the specified parent curve at the time passed.

Parameters:

TimeValue t

The time at which to set the start point.

int pnum

Pass 0 for the first rail curve; 1 for the second rail curve.

double startpoint

The start point in the range of 0.0 to 1.0.

Prototype:

double GetCurveStartPoint(TimeValue t, int pnum);

Remarks:

This method is available in release 3.0 and later only.

Returns the start point for the specified parent curve at the time passed.

Parameters:

TimeValue t

The time at which to get the start point.

int pnum

Pass 0 for the first rail curve; 1 for the second rail curve.

Operators:

Prototype:

NURBS2RailSweepSurface & operator=(const NURBS2RailSweepSurface& surf);

Remarks:

Assignment operator.

Parameters:

const NURBS2RailSweepSurface& surf

The surface to assign.