Classes | Defines | Typedefs | Enumerations | Functions

surf_api.h File Reference

This reference page is linked to from the following overview topics: Primitive Pipeline Objects, The NURBS API, NURBS Base Classes, Using the API to Create and Modify 3ds Max NURBS Models, Accessing Details of NURBS Objects, Parameter Ranges for Curves and Surfaces, Creating and Retrieving 3ds Max NURBS Objects, Creating Primitive NURBS Objects, Modifying Existing NURBS Objects.


#include "export.h"
#include "maxheap.h"
#include "point3.h"
#include "maxtess.h"
#include "tab.h"
#include "strbasic.h"
#include "point2.h"
#include "matrix3.h"

Go to the source code of this file.

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

Defines

#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< NURBSId NURBSIdTab
typedef Tab< BOOL >  BoolTab
typedef Tab< NURBSControlVertex NURBSCVTab
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< NURBSId NURBSIdList

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, Point3 &origin, Point3 &north, float start, float end, NURBSCVSurface &surf)
DllExport NURBSResult  GenNURBSSphereSurface (float radius, Point3 &center, Point3 &northAxis, Point3 &refAxis, float startAngleU, float endAngleU, float startAngleV, float endAngleV, BOOL open, NURBSCVSurface &surf)
DllExport NURBSResult  GenNURBSCylinderSurface (float radius, float height, Point3 &origin, Point3 &symAxis, Point3 &refAxis, float startAngle, float endAngle, BOOL open, NURBSCVSurface &surf)
DllExport NURBSResult  GenNURBSConeSurface (float radius1, float radius2, float height, Point3 &origin, Point3 &symAxis, Point3 &refAxis, float startAngle, float endAngle, BOOL open, NURBSCVSurface &surf)
DllExport NURBSResult  GenNURBSTorusSurface (float majorRadius, float minorRadius, Point3 &origin, Point3 &symAxis, Point3 &refAxis, float startAngleU, float endAngleU, float startAngleV, float endAngleV, BOOL open, NURBSCVSurface &surf)
DllExport Object CreateNURBSObject (IObjParam *ip, NURBSSet *nset, Matrix3 &mat)
DllExport int  AddNURBSObjects (Object *obj, IObjParam *ip, NURBSSet *nset)
DllExport Object CreateNURBSLatheShape (IObjParam *ip, MSTR name, TimeValue t, ShapeObject *shape, Matrix3 &axis, float degrees, int capStart, int capEnd, int capType, BOOL weldCore, BOOL flipNormals, BOOL texturing, int segs, BOOL matIds, BOOL shapeIDs)
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)
DllExport BOOL  GetNURBSSet (Object *object, TimeValue t, NURBSSet &nset, BOOL Relational)
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 TessApprox GetTessPreset (int which, int preset)
DllExport void  SetTessPreset (int which, int preset, TessApprox &tess)
DllExport Object BuildEMObjectFromLofterObject (Object *loftObject, double tolerance)
DllExport Object BuildEMObjectFromPatchObject (Object *patchObject)
DllExport Object DetachObjects (TimeValue t, INode *pNode, Object *pobj, NURBSIdList list, char *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 MCHAR *  GetNamedSelSetName (Object *pObj, NURBSSubObjectLevel level, int i)
DllExport NURBSResult  GetNamedSelSet (Object *pObj, NURBSSubObjectLevel level, MCHAR *name, BitArray &selSet)
DllExport NURBSResult  SetNamedSelSet (Object *pObj, NURBSSubObjectLevel level, MCHAR *name, BitArray &sel)
DllExport NURBSResult  AppendNamedSelSet (Object *pObj, NURBSSubObjectLevel level, 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)

Define Documentation

#define EDITABLE_SURF_CLASS_ID   Class_ID(0x76a11646, 0x12a822fb)

Definition at line 31 of file surf_api.h.

#define FITPOINT_PLANE_CLASS_ID   Class_ID(0x76a11646, 0xbadbeff)

Definition at line 32 of file surf_api.h.

#define EDITABLE_CVCURVE_CLASS_ID   Class_ID(0x76a11646, 0x12a83145)

Definition at line 33 of file surf_api.h.

#define EDITABLE_FPCURVE_CLASS_ID   Class_ID(0x76a11646, 0x12a92143)

Definition at line 34 of file surf_api.h.

#define NURBS_NAME_SIZE   80

Definition at line 36 of file surf_api.h.


Typedef Documentation

typedef ULONG_PTR NURBSId

Definition at line 39 of file surf_api.h.

typedef Tab< NURBSId > NURBSIdTab

Definition at line 40 of file surf_api.h.

typedef Tab<BOOL> BoolTab

Definition at line 41 of file surf_api.h.

Definition at line 1398 of file surf_api.h.

typedef Tab<double> NURBSKnotTab

Definition at line 1399 of file surf_api.h.

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.

Definition at line 6567 of file surf_api.h.

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.

Definition at line 6582 of file surf_api.h.

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.

Definition at line 6602 of file surf_api.h.

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.

Definition at line 6628 of file surf_api.h.

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.

Definition at line 6684 of file surf_api.h.

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.

Definition at line 6693 of file surf_api.h.

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.

Definition at line 6704 of file surf_api.h.

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.

Definition at line 6720 of file surf_api.h.

Definition at line 6827 of file surf_api.h.


Function Documentation

int FindIndex ( NURBSIdTab  ids,
NURBSId  id 
)
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.
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.
DllExport NURBSResult GenNURBSLatheSurface ( NURBSCVCurve curve,
Point3 origin,
Point3 north,
float  start,
float  end,
NURBSCVSurface surf 
)
DllExport NURBSResult GenNURBSSphereSurface ( float  radius,
Point3 center,
Point3 northAxis,
Point3 refAxis,
float  startAngleU,
float  endAngleU,
float  startAngleV,
float  endAngleV,
BOOL  open,
NURBSCVSurface surf 
)
DllExport NURBSResult GenNURBSCylinderSurface ( float  radius,
float  height,
Point3 origin,
Point3 symAxis,
Point3 refAxis,
float  startAngle,
float  endAngle,
BOOL  open,
NURBSCVSurface surf 
)
DllExport NURBSResult GenNURBSConeSurface ( float  radius1,
float  radius2,
float  height,
Point3 origin,
Point3 symAxis,
Point3 refAxis,
float  startAngle,
float  endAngle,
BOOL  open,
NURBSCVSurface surf 
)
DllExport NURBSResult GenNURBSTorusSurface ( float  majorRadius,
float  minorRadius,
Point3 origin,
Point3 symAxis,
Point3 refAxis,
float  startAngleU,
float  endAngleU,
float  startAngleV,
float  endAngleV,
BOOL  open,
NURBSCVSurface surf 
)
DllExport Object* CreateNURBSObject ( IObjParam ip,
NURBSSet nset,
Matrix3 mat 
)
DllExport int AddNURBSObjects ( Object obj,
IObjParam ip,
NURBSSet nset 
)
DllExport Object* CreateNURBSLatheShape ( IObjParam ip,
MSTR  name,
TimeValue  t,
ShapeObject shape,
Matrix3 axis,
float  degrees,
int  capStart,
int  capEnd,
int  capType,
BOOL  weldCore,
BOOL  flipNormals,
BOOL  texturing,
int  segs,
BOOL  matIds,
BOOL  shapeIDs 
)
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 
)
DllExport BOOL GetNURBSSet ( Object object,
TimeValue  t,
NURBSSet nset,
BOOL  Relational 
)
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 TessApprox* GetTessPreset ( int  which,
int  preset 
)
DllExport void SetTessPreset ( int  which,
int  preset,
TessApprox tess 
)
DllExport Object* BuildEMObjectFromLofterObject ( Object loftObject,
double  tolerance 
)
DllExport Object* BuildEMObjectFromPatchObject ( Object patchObject )
DllExport Object* DetachObjects ( TimeValue  t,
INode pNode,
Object pobj,
NURBSIdList  list,
char *  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 MCHAR* GetNamedSelSetName ( Object pObj,
NURBSSubObjectLevel  level,
int  i 
)
DllExport NURBSResult GetNamedSelSet ( Object pObj,
NURBSSubObjectLevel  level,
MCHAR *  name,
BitArray selSet 
)
DllExport NURBSResult SetNamedSelSet ( Object pObj,
NURBSSubObjectLevel  level,
MCHAR *  name,
BitArray sel 
)
DllExport NURBSResult AppendNamedSelSet ( Object pObj,
NURBSSubObjectLevel  level,
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 )