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.