3ds Max C++ API Reference
Loading...
Searching...
No Matches
NURBSSurface Class Reference

#include <C:/adskgit/3dsmax/3dsmax/3dswin/src/maxsdk/include/surf_api.h>

Inheritance diagram for NURBSSurface:

Public Member Functions

voidGetSurfCache ()
const voidGetSurfCache () const
void SetSurfCache (void *pCache)
DllExport NURBSSurface (void)
virtual DllExport ~NURBSSurface (void)
DllExport NURBSSurfaceoperator= (const NURBSSurface &surf)
DllExport BOOL Renderable ()
DllExport void Renderable (BOOL state)
DllExport BOOL FlipNormals ()
DllExport void FlipNormals (BOOL state)
DllExport BOOL GenerateUVs (int channel=0)
DllExport void SetGenerateUVs (BOOL state, int channel=0)
DllExport int MatID ()
DllExport void MatID (int id)
DllExport Point2 GetTextureUVs (TimeValue t, int i, int channel=0)
DllExport void SetTextureUVs (TimeValue t, int i, Point2 pt, int channel=0)
DllExport void GetTileOffset (TimeValue t, float &ut, float &vt, float &uo, float &vo, float &a, int channel=0)
DllExport void SetTileOffset (TimeValue t, float ut, float vt, float uo, float vo, float a, int channel=0)
DllExport NURBSTextureSurfaceGetTextureSurface (int channel)
DllExport void SetTextureSurface (int channel, NURBSTextureSurface &texSurf)
DllExport int NumChannels ()
DllExport int GetChannelFromIndex (int index)
DllExport BOOL IsClosedInU (void)
DllExport BOOL IsClosedInV (void)
DllExport BOOL Evaluate (TimeValue t, double u, double v, Point3 &pt, Point3 &dPdU, Point3 &dPdV) const
DllExport BOOL Evaluate (TimeValue t, double u, double v, Point3 &pt, Point3 &dPdU, Point3 &dPdV, Point3 &d2PdU2, Point3 &d2PdV2, Point3 &d2PdUdV) const
DllExport void GetParameterRange (TimeValue t, double &uMin, double &uMax, double &vMin, double &vMax) const
DllExport BOOL GetNURBSData (TimeValue t, int &degreeInU, int &degreeInV, int &numInU, int &numInV, NURBSCVTab &cvs, int &numKnotsInU, int &numKnotsInV, NURBSKnotTab &uKnots, NURBSKnotTab &vKnots)
DllExport BOOL GetCLPTextureSurfaceData (TimeValue t, int channel, int &degreeInU, int &degreeInV, int &numInU, int &numInV, NURBSCVTab &cvs, int &numKnotsInU, int &numKnotsInV, NURBSKnotTab &uKnots, NURBSKnotTab &vKnots)
DllExport int NumTrimLoops (TimeValue t)
DllExport int NumCurvesInLoop (TimeValue t, int loop)
DllExport BOOL Get2dTrimCurveData (TimeValue t, int loop, int curve, int &degree, int &numCVs, NURBSCVTab &cvs, int &numKnots, NURBSKnotTab &knots)
DllExport BOOL Get3dTrimCurveData (TimeValue t, int loop, int curve, int &degree, int &numCVs, NURBSCVTab &cvs, int &numKnots, NURBSKnotTab &knots)
DllExport TessApproxGetProdTess (NURBSTessType type=kNTessSurface)
DllExport TessApproxGetViewTess (NURBSTessType type=kNTessSurface)
DllExport void SetProdTess (TessApprox &tess, NURBSTessType type=kNTessSurface)
DllExport void SetViewTess (TessApprox &tess, NURBSTessType type=kNTessSurface)
DllExport void ClearViewTess (NURBSTessType type=kNTessSurface)
DllExport void ClearProdTess (NURBSTessType type=kNTessSurface)
Public Member Functions inherited from NURBSObject
DllExport NURBSObject (void)
virtual DllExport ~NURBSObject (void)
DllExport NURBSObjectoperator= (const NURBSObject &pt)
DllExport void SetName (const MCHAR *name)
DllExport const MCHARGetName (void)
DllExport NURBSType GetType () const
DllExport NURBSKind GetKind () const
DllExport NURBSId GetId () const
DllExport void SetId (NURBSId id)
DllExport void SetNSet (NURBSSet *nset)
DllExport void SetObject (Object *object)
DllExport ObjectGetMAXObject ()
DllExport NURBSSetGetNSet ()
DllExport int GetIndex ()
DllExport BOOL IsSelected ()
DllExport void SetSelected (BOOL set)

Protected Attributes

NURBSTextureChannelSet mTextureChannelSet
BOOL mFlipNormals
BOOL mRenderable
int mMatID
BOOL mClosedInU
BOOL mClosedInV
TessApproxmpVTess
TessApproxmpRTess
TessApproxmpRTessDisp
TessApproxmpVTessCurve
TessApproxmpRTessCurve
voidmpSurfCache
Protected Attributes inherited from NURBSObject
MCHAR mName [NURBS_NAME_SIZE]
NURBSType mType
NURBSKind mKind
NURBSId mId
ObjectmpObject
NURBSSetmpNSet
BOOL mSelected

Friends

class NURBSCVSurface
class NURBSPointSurface
class NURBSBlendSurface
class NURBSNBlendSurface
class NURBSOffsetSurface
class NURBSXFormSurface
class NURBSMirrorSurface
class NURBSCapSurface
class NURBSIsoCurve
class NURBSProjectVectorCurve
class NURBSProjectNormalCurve
class NURBSSurfSurfIntersectionCurve
class NURBSCurveOnSurface
class NURBSPointCurveOnSurface
class NURBSMultiCurveTrimSurface
class NURBSTextureChannel
class NURBSTextureChannelSet

Additional Inherited Members

Static Public Member Functions inherited from MaxHeapOperators
static UtilExport voidoperator new (size_t size)
 Standard new operator used to allocate objects If there is insufficient memory, an exception will be thrown.
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e)
 Standard new operator used to allocate objects if there is insufficient memory, NULL will be returned.
static UtilExport voidoperator new (size_t size, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, an exception will be thrown.
static UtilExport voidoperator new (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate objects that takes the type of memory, filename and line number where the new was called If there is insufficient memory, an exception will be thrown.
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, NULL will be returned.
static UtilExport voidoperator new (size_t size, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, an exception will be thrown.
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, NULL will be returned.
static UtilExport voidoperator new[] (size_t size)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown.
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned.
static UtilExport voidoperator new[] (size_t size, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown.
static UtilExport voidoperator new[] (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate arrays of objects.
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned.
static UtilExport voidoperator new[] (size_t size, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown.
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned.
static UtilExport void operator delete (void *ptr)
 Standard delete operator used to deallocate an object If the pointer is invalid, an exception will be thrown.
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an object If the pointer is invalid, nothing will happen.
static UtilExport void operator delete (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown.
static UtilExport void operator delete (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an object that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown.
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen.
static UtilExport void operator delete (void *ptr, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown.
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, nothing will happen.
static UtilExport void operator delete[] (void *ptr)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, an exception will be thrown.
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, nothing will happen.
static UtilExport void operator delete[] (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown.
static UtilExport void operator delete[] (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown.
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen.
static UtilExport void operator delete[] (void *ptr, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown.
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown.
static UtilExport voidoperator new (size_t size, void *placement_ptr)
 Placement new operator.
static UtilExport void operator delete (void *ptr, void *placement_ptr)
 Placement delete operator.
static UtilExport voidaligned_malloc (size_t size, size_t alignment)
 Allocates memory on a specified alignment boundary.
static UtilExport voidaligned_realloc (void *ptr, size_t size, size_t alignment)
 Reallocates memory on a specified alignment boundary.
static UtilExport void aligned_free (void *ptr)
 Frees a block of memory that was allocated with aligned_malloc/aligned_realloc.
Protected Member Functions inherited from NURBSObject
DllExport void Clean (NURBSIdTab ids)

Detailed Description

See also
Class NURBSObject, Class NURBSTextureSurface, Template Class Tab, Class NURBSTextureChannelSet.

Description:
This class describes the properties of a NURBS surface. This includes its material ID, texture/tiling options, renderable state, open/closed state, and normal inverted state. The Evaluate() method is used to compute points and tangents on the surface.

All methods of this class are implemented by the system.
Data Members:
protected:

BOOL mGenUVs;

TRUE if the 'Generate Mapping Coordinates' checkbox is on; otherwise FALSE.

BOOL mFlipNormals;

TRUE if the surface normals are inverted; otherwise FALSE.

BOOL mRenderable;

TRUE if the surface may be rendered; otherwise FALSE.

int mMatID;

The material ID for the surface.

BOOL mClosedInU, mClosedInV;

The surface closed flags.

NURBSTextureChannelSet mTextureChannelSet;

This data member is available in release 3.0 and later only.

This is the set of texture mapping channels used by this surface.

BOOL mFlipNormals;

TRUE if normals are flipped for the surface; otherwise FALSE.

BOOL mRenderable;

TRUE if the surface is renderable; otherwise FALSE.

int mMatID;

The zero based material ID for the surface.

BOOL mClosedInU

TRUE if the surface is closed in U; otherwise FALSE.

BOOL mClosedInV;

TRUE if the surface is closed in V; otherwise FALSE.

TessApprox *mpVTess;

This data member is available in release 3.0 and later only.

Points to the TessApprox object for the viewport (optional).

TessApprox *mpRTess;

This data member is available in release 3.0 and later only.

Points to the TessApprox object for the production renderer (optional).

TessApprox *mpRTessDisp;

This data member is available in release 3.0 and later only.

Points to the TessApprox object for displacement mapping (optional).

TessApprox *mpVTessCurve;

This data member is available in release 3.0 and later only.

Points to the TessApprox object for tesselating curves in the viewports(optional).

TessApprox *mpRTessCurve;

This data member is available in release 3.0 and later only.

Points to the TessApprox object for tesselating curves in the production renderer (optional).

Constructor & Destructor Documentation

◆ NURBSSurface()

Remarks
Constructor. The surface is initialized as follows:

mKind = kNURBSSurface;

mFlipNormals = FALSE;

mRenderable = TRUE;

mMatID = 1;

mpVTess = NULL;

mpRTess = NULL;

mpRTessDisp = NULL;

mpVTessCurve = NULL;

mpRTessCurve = NULL;

◆ ~NURBSSurface()

virtual DllExport ~NURBSSurface ( void )
virtual
Remarks
Destructor. Any TessApprox objects are freed.

Member Function Documentation

◆ GetSurfCache() [1/2]

void * GetSurfCache ( )
inline
3550 {
3551 return mpSurfCache;
3552 }
void * mpSurfCache
Definition surf_api.h:3544

◆ GetSurfCache() [2/2]

const void * GetSurfCache ( ) const
inline
3554 {
3555 return mpSurfCache;
3556 }

◆ SetSurfCache()

void SetSurfCache ( void * pCache)
inline
3557{ mpSurfCache = pCache; }

◆ operator=()

DllExport NURBSSurface & operator= ( const NURBSSurface & surf)
Remarks
Assignment operator.
Parameters:
const NURBSSurface& curve

The surface to assign.

◆ Renderable() [1/2]

DllExport BOOL Renderable ( )
Remarks
Returns TRUE if the surface is renderable; otherwise FALSE.

◆ Renderable() [2/2]

DllExport void Renderable ( BOOL state)
Remarks
Sets the renderable flag to the specified state.
Parameters:
BOOL state

TRUE for renderable; FALSE for non-renderable.

◆ FlipNormals() [1/2]

DllExport BOOL FlipNormals ( )
Remarks
Returns the state of the flip normals flag.

◆ FlipNormals() [2/2]

DllExport void FlipNormals ( BOOL state)
Remarks
Set the state of the flip normals flag.
Parameters:
BOOL state

TRUE if the normals should be flipped; FALSE for not flipped.

◆ GenerateUVs()

DllExport BOOL GenerateUVs ( int channel = 0)
Remarks
Returns TRUE if the generate UV mapping coordinates flag is set for the specified channel; otherwise FALSE.
Parameters:
int channel = 0

The channel. This is a number in the range 0 and 98 which correspond to 1 to 99 in the user interface.

◆ SetGenerateUVs()

DllExport void SetGenerateUVs ( BOOL state,
int channel = 0 )
Remarks
Sets the state of the generate UV mapping coordinates flag.
Parameters:
BOOL state

TRUE for on; FALSE for off.

int channel = 0

The channel. This is a number in the range 0 and 98 which correspond to 1 to 99 in the user interface.

◆ MatID() [1/2]

DllExport int MatID ( )
Remarks
Returns the material ID.

◆ MatID() [2/2]

DllExport void MatID ( int id)
Remarks
Sets the mateials ID to the specified value.
Parameters:
int id

Specifies the material ID to set.

◆ GetTextureUVs()

DllExport Point2 GetTextureUVs ( TimeValue t,
int i,
int channel = 0 )
Remarks
Returns the specified texture coordinate.
Parameters:
TimeValue t

The time to get the texture UVs.

int i

The zero based index of the coordinate to return. This value must be >=0 and < 4.

int channel = 0

The channel. This is a number in the range 0 and 98 which correspond to 1 to 99 in the user interface.

◆ SetTextureUVs()

DllExport void SetTextureUVs ( TimeValue t,
int i,
Point2 pt,
int channel = 0 )
Remarks
Set the specified texture coordinate to the specified value.
Parameters:
TimeValue t

The time to set the texture UVs.

int i

The zero based index of the texture coordinate to set. This value must be >= 0 and < 4.

Point2 pt

The texture coordinate value to set.

int channel = 0

The channel. This is a number in the range 0 and 98 which correspond to 1 to 99 in the user interface.

◆ GetTileOffset()

DllExport void GetTileOffset ( TimeValue t,
float & ut,
float & vt,
float & uo,
float & vo,
float & a,
int channel = 0 )
Remarks
Retrieves the texture tiling and offset values for the surface.
Parameters:
TimeValue t

The time to get the tile offset.

float &ut

The tiling value in the U direction.

float &vt

The tiling value in the V direction.

float &uo

The offset value in the U direction.

float &vo

The offset value in the V direction.

int channel = 0

The channel. This is a number in the range 0 and 98 which correspond to 1 to 99 in the user interface.

◆ SetTileOffset()

DllExport void SetTileOffset ( TimeValue t,
float ut,
float vt,
float uo,
float vo,
float a,
int channel = 0 )
Remarks
Sets the texture tiling and offset values for the surface.
Parameters:
TimeValue t

The time to set the tile offset.

float ut

The tiling value in the U direction.

float vt

The tiling value in the V direction.

float uo

The offset value in the U direction.

float vo

The offset value in the V direction.

int channel = 0

The channel. This is a number in the range 0 and 98 which correspond to 1 to 99 in the user interface.

◆ GetTextureSurface()

DllExport NURBSTextureSurface & GetTextureSurface ( int channel)
Remarks
Returns a reference to the texture surface used by this surface for the specified channel.
Parameters:
int channel

The channel. This is a number in the range 0 and 98 which correspond to 1 to 99 in the user interface.

◆ SetTextureSurface()

DllExport void SetTextureSurface ( int channel,
NURBSTextureSurface & texSurf )
Remarks
Sets the texture surface used by this surface for the specified channel.
Parameters:
int channel

The channel. This is a number in the range 0 and 98 which correspond to 1 to 99 in the user interface.

NURBSTextureSurface& texSurf

The texture surface to set.

◆ NumChannels()

DllExport int NumChannels ( )
Remarks
Returns the number of channels used by the surface.

◆ GetChannelFromIndex()

DllExport int GetChannelFromIndex ( int index)
Remarks
Returns a channel number corresponding to the specified index into the NURBSTextureChannelSet.
Parameters:
int index

The zero based index into the NURBSTextureChannelSet.

◆ IsClosedInU()

DllExport BOOL IsClosedInU ( void )
Remarks
Returns TRUE if the surface is closed in the U direction; otherwise FALSE.

◆ IsClosedInV()

DllExport BOOL IsClosedInV ( void )
Remarks
Returns TRUE if the surface is closed in the V direction; otherwise FALSE.

◆ Evaluate() [1/2]

DllExport BOOL Evaluate ( TimeValue t,
double u,
double v,
Point3 & pt,
Point3 & dPdU,
Point3 & dPdV ) const
Remarks
Retrieves the point on the surface, and the u and v derivatives based on the parameters u and v.
Parameters:
TimeValue t

The time at which to evaluate the surface.

double u

The value at which to evaluate the surface in u. This value must be between the uMin and uMax as returned from GetParameterRange().

double v

The value at which to evaluate the surface in v. This value must be between the vMin and vMax as returned from GetParameterRange().

Point3& pt

The point on the surface.

Point3& dPdU

The derivative along u.

Point3& dPdV

The derivative along v.
Returns
TRUE if the method was able to evaluate the surface; otherwise FALSE.

◆ Evaluate() [2/2]

DllExport BOOL Evaluate ( TimeValue t,
double u,
double v,
Point3 & pt,
Point3 & dPdU,
Point3 & dPdV,
Point3 & d2PdU2,
Point3 & d2PdV2,
Point3 & d2PdUdV ) const
Remarks
Retrieves the point on the surface, and the u and v derivatives and second derivatives based on the parameters u and v.
Parameters:
TimeValue t

The time at which to evaluate the surface.

double u

The value at which to evaluate the surface in u. This value must be between the uMin and uMax as returned from GetParameterRange().

double v

The value at which to evaluate the surface in v. This value must be between the vMin and vMax as returned from GetParameterRange().

Point3& pt

The point on the surface.

Point3& dPdU

The derivative along u.

Point3& dPdV

The derivative along v.

Point3& d2PdU2

The second derivative along u.

Point3& d2PdV2

The second derivative along v.

Point3& d2PdUdV
Returns
TRUE if the method was able to evaluate the surface; otherwise FALSE.

◆ GetParameterRange()

DllExport void GetParameterRange ( TimeValue t,
double & uMin,
double & uMax,
double & vMin,
double & vMax ) const
Remarks
Retrieves the minimum and maximum valid values for u and v as passed to Evaluate().
Parameters:
TimeValue t

The time at which to get the parameter range.

double& uMin

The minimum value in u is returned here.

double& uMax

The maximum value in v is returned here.

double& vMin

The minimum value in u is returned here.

double& vMax

The maximum value in v is returned here.

◆ GetNURBSData()

DllExport BOOL GetNURBSData ( TimeValue t,
int & degreeInU,
int & degreeInV,
int & numInU,
int & numInV,
NURBSCVTab & cvs,
int & numKnotsInU,
int & numKnotsInV,
NURBSKnotTab & uKnots,
NURBSKnotTab & vKnots )
Remarks
Retrieves data about the NURBSSurface at the specified time.
Parameters:
TimeValue t

The time at which to get the NURBS information.

int& degreeInU

The degree of the surface in U.

int& degreeInV

The degree of the surface in V.

int& numInU

The number of CVs in U.

int& numInV

The number of CVs in V.

NURBSCVTab& cvs

The table of CVs. Note: typedef Tab<NURBSControlVertex> NURBSCVTab;

int& numKnotsInU

The number of knots in U.

int& numKnotsInV

The number of knots in V.

NURBSKnotTab uKnots

A table of knots in U. Note: typedef Tab<double> NURBSKnotTab;

NURBSKnotTab vKnots

A table of knots in V.
Returns
TRUE if the data was retrieved; otherwise FALSE.

◆ GetCLPTextureSurfaceData()

DllExport BOOL GetCLPTextureSurfaceData ( TimeValue t,
int channel,
int & degreeInU,
int & degreeInV,
int & numInU,
int & numInV,
NURBSCVTab & cvs,
int & numKnotsInU,
int & numKnotsInV,
NURBSKnotTab & uKnots,
NURBSKnotTab & vKnots )
Remarks
This method retrieves the Chord Length Parameterization Texture Surface data.
Parameters:
TimeValue t

The time at which to retrieve the data.

int channel

The texture channel. This is a number in the range 0 and 98 which correspond to 1 to 99 in the user interface.

int& degreeInU

The degree of the surface in U.

int& degreeInV

The degree in V.

int& numInU

The number of CVs in U.

int& numInV

The number of CVs in V.

NURBSCVTab& cvs

The table of CVs. Note: typedef Tab<NURBSControlVertex> NURBSCVTab;

int& numKnotsInU

The number of knots in U.

int& numKnotsInV

The number of knots in V.

NURBSKnotTab uKnots

A table of knots in U. Note: typedef Tab<double> NURBSKnotTab;

NURBSKnotTab vKnots

A table of knots in V.
Returns
TRUE if the data was retrieved; otherwise FALSE.

◆ NumTrimLoops()

DllExport int NumTrimLoops ( TimeValue t)
Remarks
Returns the number of trim loops at the specified time. Each loop may be made up of several curves.
Parameters:
TimeValue t

The time at which to return the number.

◆ NumCurvesInLoop()

DllExport int NumCurvesInLoop ( TimeValue t,
int loop )
Remarks
Returns the number of curves in the specified trim loop.
Parameters:
TimeValue t

The time at which to return the number.

int loop

The zero based index of the trim loop.

◆ Get2dTrimCurveData()

DllExport BOOL Get2dTrimCurveData ( TimeValue t,
int loop,
int curve,
int & degree,
int & numCVs,
NURBSCVTab & cvs,
int & numKnots,
NURBSKnotTab & knots )
Remarks
Retrieves data about the specified 2D trim curve in use by the surface.
Parameters:
TimeValue t

The time at which to retrieve the data.

int loop

The zero based index of the trim loop.

int curve

The zero based index of the trim curve within the loop.

int& degree

The degree of the curve is returned here.

int& numCVs

The number of CVs.

NURBSCVTab& cvs

The table of CVs. Note: typedef Tab<NURBSControlVertex> NURBSCVTab;

int& numKnots

The number of knots.

NURBSKnotTab knots

A table of knots. Note: typedef Tab<double> NURBSKnotTab;
Returns
TRUE if the data was retrieved; otherwise FALSE.

◆ Get3dTrimCurveData()

DllExport BOOL Get3dTrimCurveData ( TimeValue t,
int loop,
int curve,
int & degree,
int & numCVs,
NURBSCVTab & cvs,
int & numKnots,
NURBSKnotTab & knots )
Remarks
Retrieves data about the specified 2D trim curve in use by the surface.
Parameters:
TimeValue t

The time at which to retrieve the data.

int loop

The zero based index of the trim loop.

int curve

The zero based index of the trim curve within the loop.

int& degree

The degree of the curve is returned here.

int& numCVs

The number of CVs.

NURBSCVTab& cvs

The table of CVs. Note: typedef Tab<NURBSControlVertex> NURBSCVTab;

int& numKnots

The number of knots.

NURBSKnotTab knots

A table of knots. Note: typedef Tab<double> NURBSKnotTab;
Returns
TRUE if the data was retrieved; otherwise FALSE.

◆ GetProdTess()

Remarks
Returns a pointer to the TessApprox object used for production rendering of the specified type.
Parameters:
NURBSTessType type=kNTessSurface

The tesselation type. See NURBSTess Types.

◆ GetViewTess()

Remarks
Returns a pointer to the TessApprox object used for viewport rendering of the specified type.
Parameters:
NURBSTessType type=kNTessSurface

The tesselation type. See NURBSTess Types.

◆ SetProdTess()

DllExport void SetProdTess ( TessApprox & tess,
NURBSTessType type = kNTessSurface )
Remarks
Sets the TessApprox object used for production rendering of the specified type.
Parameters:
TessApprox& tess

The object to set.

NURBSTessType type=kNTessSurface

The tesselation type. See NURBSTess Types.

◆ SetViewTess()

DllExport void SetViewTess ( TessApprox & tess,
NURBSTessType type = kNTessSurface )
Remarks
Sets the TessApprox object used for viewport rendering of the specified type.
Parameters:
TessApprox& tess

The object to set.

NURBSTessType type=kNTessSurface

The tesselation type. See NURBSTess Types.

◆ ClearViewTess()

DllExport void ClearViewTess ( NURBSTessType type = kNTessSurface)
Remarks
Clears (deletes) the TessApprox object used for viewport rendering of the specified type.
Parameters:
NURBSTessType type=kNTessSurface

The tesselation type. See NURBSTess Types.

◆ ClearProdTess()

DllExport void ClearProdTess ( NURBSTessType type = kNTessSurface)
Remarks
Clears (deletes) the TessApprox object used for production rendering of the specified type.
Parameters:
NURBSTessType type=kNTessSurface

The tesselation type. See NURBSTess Types.
Operators:

◆ NURBSCVSurface

friend class NURBSCVSurface ( void )
friend

◆ NURBSPointSurface

friend class NURBSPointSurface ( void )
friend

◆ NURBSBlendSurface

friend class NURBSBlendSurface ( void )
friend

◆ NURBSNBlendSurface

friend class NURBSNBlendSurface ( void )
friend

◆ NURBSOffsetSurface

friend class NURBSOffsetSurface ( void )
friend

◆ NURBSXFormSurface

friend class NURBSXFormSurface ( void )
friend

◆ NURBSMirrorSurface

friend class NURBSMirrorSurface ( void )
friend

◆ NURBSCapSurface

friend class NURBSCapSurface ( void )
friend

◆ NURBSIsoCurve

friend class NURBSIsoCurve
friend

◆ NURBSProjectVectorCurve

friend class NURBSProjectVectorCurve
friend

◆ NURBSProjectNormalCurve

friend class NURBSProjectNormalCurve
friend

◆ NURBSSurfSurfIntersectionCurve

friend class NURBSSurfSurfIntersectionCurve
friend

◆ NURBSCurveOnSurface

friend class NURBSCurveOnSurface
friend

◆ NURBSPointCurveOnSurface

friend class NURBSPointCurveOnSurface
friend

◆ NURBSMultiCurveTrimSurface

friend class NURBSMultiCurveTrimSurface ( void )
friend

◆ NURBSTextureChannel

friend class NURBSTextureChannel
friend

◆ NURBSTextureChannelSet

friend class NURBSTextureChannelSet
friend

Member Data Documentation

◆ mTextureChannelSet

NURBSTextureChannelSet mTextureChannelSet
protected

◆ mFlipNormals

BOOL mFlipNormals
protected

◆ mRenderable

BOOL mRenderable
protected

◆ mMatID

int mMatID
protected

◆ mClosedInU

BOOL mClosedInU
protected

◆ mClosedInV

BOOL mClosedInV
protected

◆ mpVTess

TessApprox* mpVTess
protected

◆ mpRTess

TessApprox* mpRTess
protected

◆ mpRTessDisp

TessApprox* mpRTessDisp
protected

◆ mpVTessCurve

TessApprox* mpVTessCurve
protected

◆ mpRTessCurve

TessApprox* mpRTessCurve
protected

◆ mpSurfCache

void* mpSurfCache
protected