3ds Max C++ API Reference
Loading...
Searching...
No Matches
surf_api.h File Reference
#include "export.h"
#include "maxheap.h"
#include "maxtypes.h"
#include <Geom/point3.h>
#include "maxtess.h"
#include "tab.h"
#include <Geom/point2.h>
#include <Geom/matrix3.h>
#include "strclass.h"
#include "strbasic.h"
#include "inode.h"

Classes

class  NURBSObject
class  NURBSPoint
class  NURBSTexturePoint
class  NURBSIndependentPoint
class  NURBSControlVertex
class  NURBSPointConstPoint
class  NURBSCurveConstPoint
class  NURBSCurveCurveIntersectionPoint
class  NURBSSurfConstPoint
class  NURBSCurveSurfaceIntersectionPoint
class  NURBSTrimPoint
class  NURBSCurve
class  NURBSCVCurve
class  NURBSPointCurve
class  NURBSBlendCurve
class  NURBSOffsetCurve
class  NURBSXFormCurve
class  NURBSMirrorCurve
class  NURBSFilletCurve
class  NURBSChamferCurve
class  NURBSIsoCurve
class  NURBSSurfaceEdgeCurve
class  NURBSProjectVectorCurve
class  NURBSProjectNormalCurve
class  NURBSSurfSurfIntersectionCurve
class  NURBSCurveOnSurface
class  NURBSPointCurveOnSurface
class  NURBSSurfaceNormalCurve
class  NURBSTextureSurface
class  NURBSTextureChannelSet
class  NURBSTextureChannel
class  NURBSSurface
class  NURBSCVSurface
class  NURBSPointSurface
class  NURBSBlendSurface
class  NURBSNBlendSurface
class  NURBSOffsetSurface
class  NURBSXFormSurface
class  NURBSMirrorSurface
class  NURBSRuledSurface
class  NURBSULoftSurface
class  NURBSUVLoftSurface
class  NURBSExtrudeSurface
class  NURBSLatheSurface
class  NURBSCapSurface
class  NURBS1RailSweepSurface
class  NURBS2RailSweepSurface
class  NURBSMultiCurveTrimSurface
class  NURBSFilletSurface
class  NURBSDisplay
class  NURBSFuseSurfaceCV
class  NURBSFuseCurveCV
class  NURBSSet
class  NURBSProceeduralSurface
class  NURBSProceeduralCurve

Macros

#define EDITABLE_SURF_CLASS_ID   Class_ID(0x76a11646, 0x12a822fb)
#define FITPOINT_PLANE_CLASS_ID   Class_ID(0x76a11646, 0xbadbeff)
#define EDITABLE_CVCURVE_CLASS_ID   Class_ID(0x76a11646, 0x12a83145)
#define EDITABLE_FPCURVE_CLASS_ID   Class_ID(0x76a11646, 0x12a92143)
#define NURBS_NAME_SIZE   80

Typedefs

typedef ULONG_PTR NURBSId
typedef Tab< NURBSIdNURBSIdTab
typedef Tab< BOOL > BoolTab
typedef Tab< NURBSControlVertexNURBSCVTab
typedef Tab< double > NURBSKnotTab
typedef NURBSResult(* SurfParamRangeProc) (double &uMin, double &uMax, double &vMin, double &vMax)
typedef NURBSResult(* SurfEvalProc) (double u, double v, Point3 &pt)
typedef NURBSResult(* SurfEvalTan) (double u, double v, Point3 &uTan, Point3 &vTan)
typedef NURBSResult(* SurfEvalMixedProc) (double u, double v, Point3 &mixed)
typedef NURBSResult(* CurveParamRangeProc) (double &tMin, double &tMax)
typedef NURBSResult(* CurveEvalProc) (double u, Point3 &pt)
typedef NURBSResult(* CurveEvalTan) (double u, Point3 &pt, Point3 &tan)
typedef NURBSResult(* CurveArcLengthProc) (double &arcLength)
typedef Tab< NURBSIdNURBSIdList

Enumerations

enum  NURBSResult {
  kNOk , kNInvalidObject , kNInvalidId , kNInvalidParameter ,
  kNBad
}
enum  NURBSMirrorAxis {
  kMirrorX , kMirrorY , kMirrorZ , kMirrorXY ,
  kMirrorXZ , kMirrorYZ
}
enum  NURBSConstType { kNConstOnObject , kNConstOffset , kNConstNormal , kNConstTangent }
enum  NURBSKind {
  kNURBSPoint , kNURBSTexturePoint , kNURBSCV , kNURBSCurve ,
  kNURBSSurface
}
enum  NURBSParamaterization { kCentripetalKnots , kUniformKnots }
enum  NURBSAutoParam { kNotAutomatic , kAutoCentripetal , kAutoUniform }
enum  NURBSType {
  kNPoint , kNPointCPoint , kNCurveCPoint , kNCurveCurveIntersectionPoint ,
  kNSurfaceCPoint , kNCurveSurfaceIntersectionPoint , kNTexturePoint , kNCV ,
  kNCVCurve , kNPointCurve , kNBlendCurve , kNOffsetCurve ,
  kNXFormCurve , kNMirrorCurve , kNFilletCurve , kNChamferCurve ,
  kNIsoCurve , kNProjectVectorCurve , kNProjectNormalCurve , kNSurfSurfIntersectionCurve ,
  kNCurveOnSurface , kNPointCurveOnSurface , kNSurfaceNormalCurve , kNSurfaceEdgeCurve ,
  kNCVSurface , kNPointSurface , kNBlendSurface , kNOffsetSurface ,
  kNXFormSurface , kNMirrorSurface , kNRuledSurface , kNULoftSurface ,
  kNExtrudeSurface , kNLatheSurface , kNUVLoftSurface , kNNBlendSurface ,
  kN1RailSweepSurface , kN2RailSweepSurface , kNCapSurface , kNMultiCurveTrimSurface ,
  kNFilletSurface
}
enum  NURBSTessType { kNTessSurface , kNTessDisplacement , kNTessCurve }
enum  NURBSSubObjectLevel {
  kNTopLevel = 0 , kNSurfaceCVLevel , kNSurfaceLevel , kNCurveCVLevel ,
  kNPointLevel , kNCurveLevel , kNImportsLevel
}
enum  NURBSTrimDirection { kNone = 0 , kPositive = 1 , kNegative = 2 }
enum  NURBSTexSurfType { kNMapDefault , kNMapUserDefined , kNMapSufaceMapper }

Functions

int FindIndex (NURBSIdTab ids, NURBSId id)
DllExport NURBSResult GenNURBSCVSurfaceProceedurally (NURBSProceeduralSurface *pSurf, double tolerence, NURBSCVSurface &surf)
DllExport NURBSResult GenNURBSCVCurveProceedurally (NURBSProceeduralCurve *pCrv, double tolerence, NURBSCVCurve &crv)
DllExport NURBSResult GenNURBSLatheSurface (NURBSCVCurve &curve, const Point3 &origin, const Point3 &north, float start, float end, NURBSCVSurface &surf)
DllExport NURBSResult GenNURBSSphereSurface (float radius, const Point3 &center, const Point3 &northAxis, const Point3 &refAxis, float startAngleU, float endAngleU, float startAngleV, float endAngleV, BOOL open, NURBSCVSurface &surf)
DllExport NURBSResult GenNURBSCylinderSurface (float radius, float height, const Point3 &origin, const Point3 &symAxis, const Point3 &refAxis, float startAngle, float endAngle, BOOL open, NURBSCVSurface &surf)
DllExport NURBSResult GenNURBSConeSurface (float radius1, float radius2, float height, const Point3 &origin, const Point3 &symAxis, const Point3 &refAxis, float startAngle, float endAngle, BOOL open, NURBSCVSurface &surf)
DllExport NURBSResult GenNURBSTorusSurface (float majorRadius, float minorRadius, const Point3 &origin, const Point3 &symAxis, const Point3 &refAxis, float startAngleU, float endAngleU, float startAngleV, float endAngleV, BOOL open, NURBSCVSurface &surf)
DllExport ObjectCreateNURBSObject (IObjParam *ip, NURBSSet *nset, const Matrix3 &mat)
DllExport int AddNURBSObjects (Object *obj, IObjParam *ip, NURBSSet *nset)
DllExport ObjectCreateNURBSLatheShape (IObjParam *ip, MSTR name, TimeValue t, ShapeObject *shape, const Matrix3 &axis, float degrees, int capStart, int capEnd, int capType, BOOL weldCore, BOOL flipNormals, BOOL texturing, int segs, BOOL matIds, BOOL shapeIDs)
DllExport ObjectCreateNURBSExtrudeShape (IObjParam *ip, MSTR name, TimeValue t, ShapeObject *shape, float amount, int capStart, int capEnd, int capType, BOOL texturing, BOOL matIds, BOOL shapeIDs)
DllExport BOOL GetNURBSSet (Object *object, TimeValue t, NURBSSet &nset, BOOL Relational)
DllExport NURBSId ValidateId (Object *obj, NURBSId id)
 Validates a NURBSId for a NURBS object.
DllExport NURBSResult SetSurfaceApprox (Object *obj, BOOL viewport, TessApprox *tess, BOOL clearSurfs=FALSE)
DllExport NURBSResult SetCurveApprox (Object *obj, BOOL viewport, TessApprox *tess, BOOL clearSurfs)
DllExport NURBSResult SetDispApprox (Object *obj, TessApprox *tess, BOOL clearSurfs)
DllExport NURBSResult SetSurfaceDisplaySettings (Object *obj, NURBSDisplay &disp)
DllExport NURBSResult GetSurfaceDisplaySettings (Object *obj, NURBSDisplay &disp)
DllExport NURBSResult Transform (Object *obj, NURBSIdTab &ids, SetXFormPacket &xPack, Matrix3 &mat, TimeValue t)
DllExport NURBSResult BreakCurve (Object *obj, NURBSId id, double u, TimeValue t)
DllExport NURBSResult BreakSurface (Object *obj, NURBSId id, BOOL breakU, double param, TimeValue t)
DllExport NURBSResult JoinCurves (Object *obj, NURBSId id1, NURBSId id2, BOOL begin1, BOOL begin2, double tolerance, double ten1, double ten2, TimeValue t)
DllExport NURBSResult JoinSurfaces (Object *obj, NURBSId id1, NURBSId id2, int edge1, int edge2, double tolerance, double ten1, double ten2, TimeValue t)
DllExport NURBSResult ZipCurves (Object *obj, NURBSId id1, NURBSId id2, BOOL begin1, BOOL begin2, double tolerance, TimeValue t)
DllExport NURBSResult ZipSurfaces (Object *obj, NURBSId id1, NURBSId id2, int edge1, int edge2, double tolerance, TimeValue t)
DllExport NURBSId MakeIndependent (Object *obj, NURBSId id, TimeValue t)
DllExport NURBSId MakeRigid (Object *obj, NURBSId id, TimeValue t)
DllExport void SetApproxPreset (Object *pObj, int i)
DllExport void ToggleShadedLattice (Object *pObj)
DllExport TessApproxGetTessPreset (int which, int preset)
DllExport void SetTessPreset (int which, int preset, TessApprox &tess)
DllExport ObjectBuildEMObjectFromLofterObject (Object *loftObject, double tolerance)
DllExport ObjectBuildEMObjectFromPatchObject (Object *patchObject)
DllExport ObjectDetachObjects (TimeValue t, INode *pNode, Object *pobj, NURBSIdList list, const MCHAR *newObjName, BOOL copy, BOOL relational)
DllExport NURBSSubObjectLevel GetSelectionLevel (Object *pObj)
DllExport NURBSResult SetSelectionLLevel (Object *pObj, NURBSSubObjectLevel level)
DllExport NURBSResult GetSelection (Object *pObj, NURBSSubObjectLevel level, BitArray &selset)
DllExport NURBSResult SetSelection (Object *pObj, NURBSSubObjectLevel level, BitArray &selset)
DllExport NURBSResult MoveCurrentSelection (Object *pObj, NURBSSubObjectLevel level, TimeValue t, Matrix3 &partm, Matrix3 &tmAxis, Point3 &val, BOOL localOrigin)
DllExport NURBSResult RotateCurrentSelection (Object *pObj, NURBSSubObjectLevel level, TimeValue t, Matrix3 &partm, Matrix3 &tmAxis, Quat &val, BOOL localOrigin)
DllExport NURBSResult ScaleCurrentSelection (Object *pObj, NURBSSubObjectLevel level, TimeValue t, Matrix3 &partm, Matrix3 &tmAxis, Point3 &val, BOOL localOrigin)
DllExport int SubObjectCount (Object *pObj, NURBSSubObjectLevel level)
DllExport int NamedSelSetCount (Object *pObj, NURBSSubObjectLevel level)
DllExport const MCHARGetNamedSelSetName (Object *pObj, NURBSSubObjectLevel level, int i)
DllExport NURBSResult GetNamedSelSet (Object *pObj, NURBSSubObjectLevel level, const MCHAR *name, BitArray &selSet)
DllExport NURBSResult SetNamedSelSet (Object *pObj, NURBSSubObjectLevel level, const MCHAR *name, BitArray &sel)
DllExport NURBSResult AppendNamedSelSet (Object *pObj, NURBSSubObjectLevel level, const MCHAR *name, BitArray &sel)
DllExport NURBSResult DeleteCurrentSelection (Object *pObj, NURBSSubObjectLevel level)
DllExport NURBSResult MapNURBSIdToSelSetIndex (Object *pObj, NURBSId id, int &index, NURBSSubObjectLevel &level)
DllExport NURBSResult MapSelSetIndexToNURBSId (Object *pObj, int index, NURBSSubObjectLevel level, NURBSId &id)
DllExport void ApplyUVWMapAsTextureSurface (Object *pObj, int type, float utile, float vtile, float wtile, int uflip, int vflip, int wflip, int cap, const Matrix3 &tm, int channel)
DllExport void UpdateSurfaceMapper (Modifier *pMod)

Macro Definition Documentation

◆ EDITABLE_SURF_CLASS_ID

#define EDITABLE_SURF_CLASS_ID   Class_ID(0x76a11646, 0x12a822fb)

◆ FITPOINT_PLANE_CLASS_ID

#define FITPOINT_PLANE_CLASS_ID   Class_ID(0x76a11646, 0xbadbeff)

◆ EDITABLE_CVCURVE_CLASS_ID

#define EDITABLE_CVCURVE_CLASS_ID   Class_ID(0x76a11646, 0x12a83145)

◆ EDITABLE_FPCURVE_CLASS_ID

#define EDITABLE_FPCURVE_CLASS_ID   Class_ID(0x76a11646, 0x12a92143)

◆ NURBS_NAME_SIZE

#define NURBS_NAME_SIZE   80

Typedef Documentation

◆ NURBSId

typedef ULONG_PTR NURBSId

◆ NURBSIdTab

typedef Tab< NURBSId > NURBSIdTab

◆ BoolTab

typedef Tab<BOOL> BoolTab

◆ NURBSCVTab

◆ NURBSKnotTab

typedef Tab<double> NURBSKnotTab

◆ SurfParamRangeProc

typedef NURBSResult(* SurfParamRangeProc) (double &uMin, double &uMax, double &vMin, double &vMax)
Remarks
The surface parameter range procedure. This retrieves the minimum and maximum valid values for u and v as passed to the SurfEvalProc().
Parameters:
double& uMin

The min U value.

double& uMax

The max U value.

double& vMin

The min V value.

double& vMax

The max V value.
Returns
See NURBS Results.

◆ SurfEvalProc

typedef NURBSResult(* SurfEvalProc) (double u, double v, Point3 &pt)
Remarks
This evaluates the surface for the point or position at a given U and V parameter.
Parameters:
double u

Specifies the U point along the surface to evaluate. This value must be between the uMin and uMax as returned from SurfParamRangeProc().

double v

Specifies the V point along the surface to evaluate. This value must be between the vMin and vMax as returned from SurfParamRangeProc().

Point3& pt

The output point on the surface at (u,v).
Returns
See NURBS Results.

◆ SurfEvalTan

typedef NURBSResult(* SurfEvalTan) (double u, double v, Point3 &uTan, Point3 &vTan)
Remarks
This evaluates the surface for the partial derivative with respect to U and the partial derivative with respect to V at a given U and V parameter. That partial derivative with respect to U is a tangent vector in the U direction and the partial derivative with respect to V is a tangent vector in the V direction.
Parameters:
double u

Specifies the U point along the curve to evaluate. This value must be between the uMin and uMax as returned from SurfParamRangeProc().

double v

Specifies the V point along the surface to evaluate. This value must be between the vMin and vMax as returned from SurfParamRangeProc().

Point3& uTan

The tangent along u.

Point3& vTan

The tangent along v.
Returns
See NURBS Results.

◆ SurfEvalMixedProc

typedef NURBSResult(* SurfEvalMixedProc) (double u, double v, Point3 &mixed)
Remarks
This evaluates the surface for the mixed partial derivative with respect to U and V at a given U and V parameter.
Parameters:
double u

Specifies the U point along the curve to evaluate. This value must be between the uMin and uMax as returned from SurfParamRangeProc().

double v

Specifies the V point along the surface to evaluate. This value must be between the vMin and vMax as returned from SurfParamRangeProc().

Point3& mixed

This is the resulting mixed partial derivative vector that has been evaluated.
Returns
See NURBS Results.
Data Members:
SurfParamRangeProc mParamProc;

The surface parameter range procedure. Note: This procedure must be implemented.

SurfEvalProc mEvalProc;

The surface evaluation procedure. Note: This procedure must be implemented.

SurfEvalTan mEvalTanProc;

The surface tangent evaluation procedure. Note: This procedure is optional.

SurfEvalMixedProc mEvalMixedProc;

The mixed partial derivative procedure. Note: This procedure is optional.

◆ CurveParamRangeProc

typedef NURBSResult(* CurveParamRangeProc) (double &tMin, double &tMax)
Remarks
The curve parameter range procedure. This retrieves the minimum and maximum valid values for u as passed to the CurveEvalProc().
Parameters:
double& tMin

The minimum value.

double& tMax

The maximum value.
Returns
See NURBS Results.

◆ CurveEvalProc

typedef NURBSResult(* CurveEvalProc) (double u, Point3 &pt)
Remarks
The curve evaluation procedure. This retrieves the point on the curve based on the u parameter.
Parameters:
double u

Specifies the U point along the curve to evaluate.

Point3& pt

The output point on the curve at U.
Returns
See NURBS Results.

◆ CurveEvalTan

typedef NURBSResult(* CurveEvalTan) (double u, Point3 &pt, Point3 &tan)
Remarks
The curve point and tangent evaluation procedure. This retrieves the point and tangent at the point on the curve based on the U parameter.
Parameters:
double u

Specifies the point along the curve to evaluate.

Point3& pt

The output point at U.

Point3& tan

The output tangent at U.
Returns
See NURBS Results.

◆ CurveArcLengthProc

typedef NURBSResult(* CurveArcLengthProc) (double &arcLength)
Remarks
Retrieves the length of the curve.
Parameters:
double& arcLength

The output arc length.
Returns
See NURBS Results.
Data Members:
CurveParamRangeProc mParamProc;

The curve parameter range procedure. Note: This procedure must be implemented.

CurveEvalProc mEvalProc;

The curve evaluate procedure. Note: This procedure must be implemented.

CurveEvalTan mEvalTanProc;

The curve evaluate tangent procedure. Note: This procedure is optional.

CurveArcLengthProc mArcLengthProc;

The curve arc length procedure. Note: This procedure is optional.

◆ NURBSIdList

Function Documentation

◆ FindIndex()

int FindIndex ( NURBSIdTab ids,
NURBSId id )
extern

◆ GenNURBSCVSurfaceProceedurally()

DllExport NURBSResult GenNURBSCVSurfaceProceedurally ( NURBSProceeduralSurface * pSurf,
double tolerence,
NURBSCVSurface & surf )
Remarks
This global function is available in release 3.0 and later only.

To use this function you need to create an instance of NURBSProceeduralSurface setting at least the ParameterRange and Eval procedures. The others can be NULL unless you have fast versions of them. This call then fills in a NURBSCVSurface with the surface that is defined by the procedures and the tolerence.
Parameters:
NURBSProceeduralSurface *pSurf

Points to the NURBSProceeduralSurface to generate CV surfaces from.

double tolerence

The tolerance is the allowable deviation of the approximating NURBS surface to the surface defined by the procs.

NURBSCVSurface& surf

The generated NURBSCVSurface is returned here.
Returns
See NURBS Results.

◆ GenNURBSCVCurveProceedurally()

DllExport NURBSResult GenNURBSCVCurveProceedurally ( NURBSProceeduralCurve * pCrv,
double tolerence,
NURBSCVCurve & crv )
Remarks
This global function is available in release 3.0 and later only.

To use this API you need to create an instance of NURBSProceeduralCurve setting at least the ParameterRange and Eval procedures. The others can be NULL unless you have fast versions of them. The call tothis function then fills in a NURBSCVCurve with the curve that is defined by the proceedures and the tolerence.
Parameters:
*pCrv

Points to the NURBSProceeduralCurve object used to generate the curve procedurally.

double tolerence

The tolerance is the allowable deviation of the approximating NURBS surface to the surface defined by the procs.

NURBSCVCurve& crv

The generated curve is returned here.
Returns
See NURBS Results.

◆ GenNURBSLatheSurface()

DllExport NURBSResult GenNURBSLatheSurface ( NURBSCVCurve & curve,
const Point3 & origin,
const Point3 & north,
float start,
float end,
NURBSCVSurface & surf )

◆ GenNURBSSphereSurface()

DllExport NURBSResult GenNURBSSphereSurface ( float radius,
const Point3 & center,
const Point3 & northAxis,
const Point3 & refAxis,
float startAngleU,
float endAngleU,
float startAngleV,
float endAngleV,
BOOL open,
NURBSCVSurface & surf )

◆ GenNURBSCylinderSurface()

DllExport NURBSResult GenNURBSCylinderSurface ( float radius,
float height,
const Point3 & origin,
const Point3 & symAxis,
const Point3 & refAxis,
float startAngle,
float endAngle,
BOOL open,
NURBSCVSurface & surf )

◆ GenNURBSConeSurface()

DllExport NURBSResult GenNURBSConeSurface ( float radius1,
float radius2,
float height,
const Point3 & origin,
const Point3 & symAxis,
const Point3 & refAxis,
float startAngle,
float endAngle,
BOOL open,
NURBSCVSurface & surf )

◆ GenNURBSTorusSurface()

DllExport NURBSResult GenNURBSTorusSurface ( float majorRadius,
float minorRadius,
const Point3 & origin,
const Point3 & symAxis,
const Point3 & refAxis,
float startAngleU,
float endAngleU,
float startAngleV,
float endAngleV,
BOOL open,
NURBSCVSurface & surf )

◆ CreateNURBSObject()

DllExport Object * CreateNURBSObject ( IObjParam * ip,
NURBSSet * nset,
const Matrix3 & mat )

◆ AddNURBSObjects()

DllExport int AddNURBSObjects ( Object * obj,
IObjParam * ip,
NURBSSet * nset )

◆ CreateNURBSLatheShape()

DllExport Object * CreateNURBSLatheShape ( IObjParam * ip,
MSTR name,
TimeValue t,
ShapeObject * shape,
const Matrix3 & axis,
float degrees,
int capStart,
int capEnd,
int capType,
BOOL weldCore,
BOOL flipNormals,
BOOL texturing,
int segs,
BOOL matIds,
BOOL shapeIDs )

◆ CreateNURBSExtrudeShape()

DllExport Object * CreateNURBSExtrudeShape ( IObjParam * ip,
MSTR name,
TimeValue t,
ShapeObject * shape,
float amount,
int capStart,
int capEnd,
int capType,
BOOL texturing,
BOOL matIds,
BOOL shapeIDs )

◆ GetNURBSSet()

DllExport BOOL GetNURBSSet ( Object * object,
TimeValue t,
NURBSSet & nset,
BOOL Relational )

◆ ValidateId()

DllExport NURBSId ValidateId ( Object * obj,
NURBSId id )

Validates a NURBSId for a NURBS object.

◆ SetSurfaceApprox()

DllExport NURBSResult SetSurfaceApprox ( Object * obj,
BOOL viewport,
TessApprox * tess,
BOOL clearSurfs = FALSE )

◆ SetCurveApprox()

DllExport NURBSResult SetCurveApprox ( Object * obj,
BOOL viewport,
TessApprox * tess,
BOOL clearSurfs )

◆ SetDispApprox()

DllExport NURBSResult SetDispApprox ( Object * obj,
TessApprox * tess,
BOOL clearSurfs )

◆ SetSurfaceDisplaySettings()

DllExport NURBSResult SetSurfaceDisplaySettings ( Object * obj,
NURBSDisplay & disp )

◆ GetSurfaceDisplaySettings()

DllExport NURBSResult GetSurfaceDisplaySettings ( Object * obj,
NURBSDisplay & disp )

◆ Transform()

DllExport NURBSResult Transform ( Object * obj,
NURBSIdTab & ids,
SetXFormPacket & xPack,
Matrix3 & mat,
TimeValue t )

◆ BreakCurve()

DllExport NURBSResult BreakCurve ( Object * obj,
NURBSId id,
double u,
TimeValue t )

◆ BreakSurface()

DllExport NURBSResult BreakSurface ( Object * obj,
NURBSId id,
BOOL breakU,
double param,
TimeValue t )

◆ JoinCurves()

DllExport NURBSResult JoinCurves ( Object * obj,
NURBSId id1,
NURBSId id2,
BOOL begin1,
BOOL begin2,
double tolerance,
double ten1,
double ten2,
TimeValue t )

◆ JoinSurfaces()

DllExport NURBSResult JoinSurfaces ( Object * obj,
NURBSId id1,
NURBSId id2,
int edge1,
int edge2,
double tolerance,
double ten1,
double ten2,
TimeValue t )

◆ ZipCurves()

DllExport NURBSResult ZipCurves ( Object * obj,
NURBSId id1,
NURBSId id2,
BOOL begin1,
BOOL begin2,
double tolerance,
TimeValue t )

◆ ZipSurfaces()

DllExport NURBSResult ZipSurfaces ( Object * obj,
NURBSId id1,
NURBSId id2,
int edge1,
int edge2,
double tolerance,
TimeValue t )

◆ MakeIndependent()

DllExport NURBSId MakeIndependent ( Object * obj,
NURBSId id,
TimeValue t )

◆ MakeRigid()

DllExport NURBSId MakeRigid ( Object * obj,
NURBSId id,
TimeValue t )

◆ SetApproxPreset()

DllExport void SetApproxPreset ( Object * pObj,
int i )

◆ ToggleShadedLattice()

DllExport void ToggleShadedLattice ( Object * pObj)

◆ GetTessPreset()

DllExport TessApprox * GetTessPreset ( int which,
int preset )

◆ SetTessPreset()

DllExport void SetTessPreset ( int which,
int preset,
TessApprox & tess )

◆ BuildEMObjectFromLofterObject()

DllExport Object * BuildEMObjectFromLofterObject ( Object * loftObject,
double tolerance )

◆ BuildEMObjectFromPatchObject()

DllExport Object * BuildEMObjectFromPatchObject ( Object * patchObject)

◆ DetachObjects()

DllExport Object * DetachObjects ( TimeValue t,
INode * pNode,
Object * pobj,
NURBSIdList list,
const MCHAR * newObjName,
BOOL copy,
BOOL relational )

◆ GetSelectionLevel()

DllExport NURBSSubObjectLevel GetSelectionLevel ( Object * pObj)

◆ SetSelectionLLevel()

DllExport NURBSResult SetSelectionLLevel ( Object * pObj,
NURBSSubObjectLevel level )

◆ GetSelection()

DllExport NURBSResult GetSelection ( Object * pObj,
NURBSSubObjectLevel level,
BitArray & selset )

◆ SetSelection()

DllExport NURBSResult SetSelection ( Object * pObj,
NURBSSubObjectLevel level,
BitArray & selset )

◆ MoveCurrentSelection()

DllExport NURBSResult MoveCurrentSelection ( Object * pObj,
NURBSSubObjectLevel level,
TimeValue t,
Matrix3 & partm,
Matrix3 & tmAxis,
Point3 & val,
BOOL localOrigin )

◆ RotateCurrentSelection()

DllExport NURBSResult RotateCurrentSelection ( Object * pObj,
NURBSSubObjectLevel level,
TimeValue t,
Matrix3 & partm,
Matrix3 & tmAxis,
Quat & val,
BOOL localOrigin )

◆ ScaleCurrentSelection()

DllExport NURBSResult ScaleCurrentSelection ( Object * pObj,
NURBSSubObjectLevel level,
TimeValue t,
Matrix3 & partm,
Matrix3 & tmAxis,
Point3 & val,
BOOL localOrigin )

◆ SubObjectCount()

DllExport int SubObjectCount ( Object * pObj,
NURBSSubObjectLevel level )

◆ NamedSelSetCount()

DllExport int NamedSelSetCount ( Object * pObj,
NURBSSubObjectLevel level )

◆ GetNamedSelSetName()

DllExport const MCHAR * GetNamedSelSetName ( Object * pObj,
NURBSSubObjectLevel level,
int i )

◆ GetNamedSelSet()

DllExport NURBSResult GetNamedSelSet ( Object * pObj,
NURBSSubObjectLevel level,
const MCHAR * name,
BitArray & selSet )

◆ SetNamedSelSet()

DllExport NURBSResult SetNamedSelSet ( Object * pObj,
NURBSSubObjectLevel level,
const MCHAR * name,
BitArray & sel )

◆ AppendNamedSelSet()

DllExport NURBSResult AppendNamedSelSet ( Object * pObj,
NURBSSubObjectLevel level,
const MCHAR * name,
BitArray & sel )

◆ DeleteCurrentSelection()

DllExport NURBSResult DeleteCurrentSelection ( Object * pObj,
NURBSSubObjectLevel level )

◆ MapNURBSIdToSelSetIndex()

DllExport NURBSResult MapNURBSIdToSelSetIndex ( Object * pObj,
NURBSId id,
int & index,
NURBSSubObjectLevel & level )

◆ MapSelSetIndexToNURBSId()

DllExport NURBSResult MapSelSetIndexToNURBSId ( Object * pObj,
int index,
NURBSSubObjectLevel level,
NURBSId & id )

◆ ApplyUVWMapAsTextureSurface()

DllExport void ApplyUVWMapAsTextureSurface ( Object * pObj,
int type,
float utile,
float vtile,
float wtile,
int uflip,
int vflip,
int wflip,
int cap,
const Matrix3 & tm,
int channel )

◆ UpdateSurfaceMapper()

DllExport void UpdateSurfaceMapper ( Modifier * pMod)