surf_api.h File Reference

#include "export.h"
#include "maxheap.h"
#include "point3.h"
#include "maxtess.h"
#include "tab.h"
#include "point2.h"
#include "matrix3.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, 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 ObjectCreateNURBSObject (IObjParam *ip, NURBSSet *nset, Matrix3 &mat)
 
DllExport int AddNURBSObjects (Object *obj, IObjParam *ip, NURBSSet *nset)
 
DllExport ObjectCreateNURBSLatheShape (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 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. More...
 
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

#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

Typedef Documentation

typedef ULONG_PTR NURBSId
typedef Tab< NURBSId > NURBSIdTab
typedef Tab<BOOL> BoolTab
typedef Tab<double> NURBSKnotTab
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.
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.
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.
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.
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.
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.
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.
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.

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 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 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,
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 MCHAR* GetNamedSelSetName ( 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)