Class NURBSLatheSurface

3DS Max Plug-In SDK

Class NURBSLatheSurface

See Also: Class NURBSSurface.

class NURBSLatheSurface : public NURBSSurface

Description:

This class is available in release 2.0 and later only.

This class defines a dependent lathe surface. A lathe surface is generated from a curve sub-object. It is similar to a surface created with the Lathe modifier. The advantage is that a lathe sub-object is part of the NURBS model, so you can use it to construct other curve and surface sub-objects. Methods are available to get/set the parent index and id, get/set the axis and amount rotation of the lathe.

All methods of this class are implemented by the system.

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:

NURBSLatheSurface();

Remarks:

Constructor. The data members are initialized as follows:

 mType = kNLatheSurface;

 mpObject = NULL;

 mpNSet = NULL;

 mParentId = 0;

 mParentIndex = -1;

 mXForm.IdentityMatrix();

 mRotation = 360.0;

 mCurveStartParam = 360.0;

Prototype:

virtual ~NURBSLatheSurface();

Remarks:

Destructor.

Prototype:

void SetParent(int index);

Remarks:

Sets the index in the NURBSSet of the parent object.

Parameters:

int index

The index into the NURBSSet of the parent surface.

Prototype:

void SetParentId(NURBSId id);

Remarks:

Sets the NURBSId of the specified parent.

Parameters:

NURBSId id

The id to set.

Prototype:

int GetParent();

Remarks:

Returns the index in the NURBSSet of the specified parent object.

Prototype:

NURBSId GetParentId();

Remarks:

Returns the NURBSId of the parent. Note that a NURBSId won't be valid until the object has been instantiated in the scene

Prototype:

void SetAxis(TimeValue t, Matrix3& ray);

Remarks:

Sets the axis to use for the surface of revolution by specifying a time and a axis system.

Parameters:

TimeValue t

The time at which the axis is set.

Matrix3& ray

Specifies the axis for revolution. See Class Matrix3.

Prototype:

Matrix3& GetAxis(TimeValue t);

Remarks:

Returns the axis system for the surface of revolution.

Parameters:

TimeValue t

The time at which to return the axis.

Prototype:

void SetRotation(TimeValue t, double degrees);

Remarks:

Sets the amount of rotation for the surface.

Parameters:

TimeValue t

The time at which to set the amount.

double degrees

The angle of the revolution in degrees.

Prototype:

double GetRotation(TimeValue t);

Remarks:

Returns the angle of the revolution in degrees.

Parameters:

TimeValue t

The time at which to return the angle.

Prototype:

void SetCurveStartPoint(TimeValue t, double startpoint);

Remarks:

This method is available in release 3.0 and later only.

Sets the start point at the specified time.

Parameters:

TimeValue t

The time at which to set the start point.

double startpoint

The start point to set in the range 0.0 to 1.0.

Prototype:

double GetCurveStartPoint(TimeValue t);

Remarks:

This method is available in release 3.0 and later only.

Returns the start point at the specified time.

Parameters:

TimeValue t

The time at which to get the start point.

Operators:

Prototype:

NURBSLatheSurface & operator=(const NURBSLatheSurface& surf);

Remarks:

Assignment operator.

Parameters:

const NURBSLatheSurface& surf

The surface to assign.