3ds Max C++ API Reference
|
Defines a basic bezier shape object. More...
#include <shape.h>
Public Attributes | |
MaxSDK::Array< bindShape > | bindList |
List of bind points. | |
PatchCapInfo | patchCap |
Patch capping cache (mesh capping and hierarchy caches stored in PolyShape cache). | |
BOOL | patchCapCacheValid |
Indicates if the patch cap is valid or not. | |
Spline3D ** | splines |
A pointer to the list of splines. | |
int | splineCount |
The number of splines in this shape. | |
int | steps |
Number of steps (a value of -1 will use adaptive). | |
BOOL | optimize |
Setting this to TRUE optimizes linear segments. | |
ShapeVSel | vertSel |
The selected vertices. | |
ShapeSSel | segSel |
The selected segments. | |
ShapePSel | polySel |
The selected polygons. | |
int | bezVecPoly |
If hit bezier vector, this is its info. | |
int | bezVecVert |
This is used internally in hit testing. | |
DWORD | selLevel |
The Selection level. | |
DWORD | dispFlags |
Display attribute flags. | |
float * | mpVertexWeights |
int | numVertexWeights |
int * | mpVertexEdgeDists |
float * | mpVertexDists |
float | mFalloff |
float | mPinch |
float | mBubble |
int | mEdgeDist |
int | mUseEdgeDist |
int | mAffectBackface |
int | mUseSoftSelections |
Friends | |
INT_PTR CALLBACK | SplineSelectDlgProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) |
Additional Inherited Members | |
![]() | |
static UtilExport void * | operator new (size_t size) |
Standard new operator used to allocate objects If there is insufficient memory, an exception will be thrown. | |
static UtilExport void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | operator new[] (size_t size) |
New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. | |
static UtilExport void * | operator 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 void * | operator 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 void * | operator new[] (size_t size, int block_type, const char *filename, int line) |
New operator used to allocate arrays of objects. | |
static UtilExport void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | aligned_malloc (size_t size, size_t alignment) |
Allocates memory on a specified alignment boundary. | |
static UtilExport void * | aligned_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. | |
![]() | |
Tab< BaseInterface * > | interfaces |
Defines a basic bezier shape object.
The BezierShape is effectively a collection of Bezier Splines. For example the 3ds Max Donut object has two splines in a hierarchy to make a shape. The BezierShape contains these splines.
CoreExport BezierShape | ( | BezierShape & | fromShape | ) |
CoreExport ~BezierShape | ( | ) |
CoreExport void Init | ( | ) |
CoreExport BezierShape & operator= | ( | BezierShape & | fromShape | ) |
CoreExport BezierShape & operator= | ( | PolyShape & | fromShape | ) |
CoreExport Point3 GetVert | ( | int | poly, |
int | i | ||
) |
CoreExport void SetVert | ( | int | poly, |
int | i, | ||
const Point3 & | xyz | ||
) |
CoreExport void Render | ( | GraphicsWindow * | gw, |
Material * | ma, | ||
RECT * | rp, | ||
int | compFlags, | ||
int | numMat | ||
) |
CoreExport void RenderGizmo | ( | GraphicsWindow * | gw | ) |
CoreExport BOOL Select | ( | GraphicsWindow * | gw, |
Material * | ma, | ||
HitRegion * | hr, | ||
int | abortOnHit = FALSE |
||
) |
CoreExport void Snap | ( | GraphicsWindow * | gw, |
SnapInfo * | snap, | ||
IPoint2 * | p, | ||
Matrix3 & | tm | ||
) |
CoreExport void Snap | ( | GraphicsWindow * | gw, |
SnapInfo * | snap, | ||
IPoint2 * | p, | ||
Matrix3 & | tm, | ||
DWORD | flags | ||
) |
CoreExport BOOL SubObjectHitTest | ( | GraphicsWindow * | gw, |
Material * | ma, | ||
HitRegion * | hr, | ||
DWORD | flags, | ||
SubShapeHitList & | hitList | ||
) |
CoreExport void BuildBoundingBox | ( | void | ) |
CoreExport Box3 GetBoundingBox | ( | Matrix3 * | tm = NULL | ) |
CoreExport void InvalidateGeomCache | ( | ) |
CoreExport void InvalidateCapCache | ( | ) |
CoreExport void ShallowCopy | ( | BezierShape * | ashape, |
ChannelMask | channels | ||
) |
CoreExport void DeepCopy | ( | BezierShape * | ashape, |
ChannelMask | channels | ||
) |
CoreExport void NewAndCopyChannels | ( | ChannelMask | channels | ) |
CoreExport void FreeChannels | ( | ChannelMask | channels, |
int | zeroOthers = 1 |
||
) |
CoreExport void SetDispFlag | ( | DWORD | f | ) |
CoreExport DWORD GetDispFlag | ( | DWORD | f | ) |
CoreExport void ClearDispFlag | ( | DWORD | f | ) |
CoreExport BitArray VertexTempSel | ( | int | poly, |
int | level = -1 |
||
) |
CoreExport BitArray VertexTempSelAll | ( | int | poly = -1 , |
BOOL | includeVecs = FALSE , |
||
int | level = 0 , |
||
BOOL | forceSel = FALSE |
||
) |
CoreExport BitArray VertexFlagSel | ( | int | poly, |
DWORD | flag | ||
) |
Constructs a vertex selection list of the specified poly.
poly | - Specifies the polygon to construct the list from. |
flag | - The flag value each vertex will be tested for. |
CoreExport IOResult Save | ( | ISave * | isave | ) |
CoreExport IOResult Load | ( | ILoad * | iload | ) |
|
inline |
CoreExport Spline3D * GetSpline | ( | int | index | ) |
CoreExport Spline3D * NewSpline | ( | int | itype = KTYPE_CORNER , |
int | dtype = KTYPE_BEZIER , |
||
int | ptype = PARM_UNIFORM |
||
) |
CoreExport Spline3D * AddSpline | ( | Spline3D * | spline | ) |
CoreExport int DeleteSpline | ( | int | index | ) |
CoreExport int InsertSpline | ( | Spline3D * | spline, |
int | index | ||
) |
CoreExport void NewShape | ( | ) |
CoreExport int GetNumVerts | ( | ) |
CoreExport int GetNumSegs | ( | ) |
CoreExport void GetDeformBBox | ( | TimeValue | t, |
Box3 & | box, | ||
Matrix3 * | tm, | ||
BOOL | useSel | ||
) |
CoreExport void UpdateSels | ( | BOOL | save = FALSE | ) |
CoreExport void GetClosures | ( | BitArray & | array | ) |
CoreExport void SetClosures | ( | BitArray & | array | ) |
CoreExport float FindSegmentPoint | ( | int | poly, |
int | segment, | ||
GraphicsWindow * | gw, | ||
Material * | ma, | ||
HitRegion * | hr, | ||
int | ptype = PARAM_SIMPLE |
||
) |
CoreExport void Reverse | ( | int | poly, |
BOOL | keepZero = FALSE |
||
) |
CoreExport void Reverse | ( | BitArray & | reverse, |
BOOL | keepZero = FALSE |
||
) |
CoreExport ShapeHierarchy & OrganizeCurves | ( | TimeValue | t, |
ShapeHierarchy * | hier = NULL |
||
) |
CoreExport void MakePolyShape | ( | PolyShape & | pshp, |
int | nSteps = -1 , |
||
BOOL | doOptimize = FALSE |
||
) |
CoreExport void MakeFirst | ( | int | poly, |
int | vertex | ||
) |
CoreExport void Transform | ( | const Matrix3 & | tm | ) |
CoreExport BezierShape & operator+= | ( | BezierShape & | from | ) |
CoreExport void AddAndWeld | ( | BezierShape & | from, |
float | weldThreshold | ||
) |
CoreExport void ReadyCachedPolyShape | ( | ) |
CoreExport int MakeCap | ( | TimeValue | t, |
MeshCapInfo & | capInfo, | ||
int | capType | ||
) |
CoreExport int MakeCap | ( | TimeValue | t, |
PatchCapInfo & | capInfo | ||
) |
CoreExport int ReadyPatchCap | ( | ) |
CoreExport void CopyShapeDataFrom | ( | BezierShape & | fromShape | ) |
CoreExport void PrepVertBaseIndex | ( | ) |
CoreExport int GetVertIndex | ( | int | poly, |
int | vert | ||
) |
CoreExport void GetPolyAndVert | ( | int | index, |
int & | polyOut, | ||
int & | vertOut | ||
) |
CoreExport int GetTotalVerts | ( | ) |
CoreExport Point3 GetVert | ( | int | index | ) |
CoreExport void SetVert | ( | int | index, |
const Point3 & | xyz | ||
) |
CoreExport void PrepKnotBaseIndex | ( | ) |
CoreExport int GetKnotIndex | ( | int | poly, |
int | knot | ||
) |
CoreExport void GetPolyAndKnot | ( | int | index, |
int & | polyOut, | ||
int & | knotOut | ||
) |
CoreExport int GetTotalKnots | ( | ) |
CoreExport BOOL DeleteSelVerts | ( | int | poly | ) |
CoreExport BOOL DeleteSelSegs | ( | int | poly | ) |
CoreExport BOOL DeleteSelectedVerts | ( | ) |
CoreExport BOOL DeleteSelectedSegs | ( | ) |
CoreExport BOOL DeleteSelectedPolys | ( | ) |
CoreExport BOOL CloneSelectedParts | ( | BOOL | reverse = FALSE | ) |
CoreExport BOOL RecordTopologyTags | ( | int | channel = 0 | ) |
CoreExport Point3 InterpCurve3D | ( | int | poly, |
float | param, | ||
int | ptype = PARAM_SIMPLE |
||
) |
CoreExport Point3 TangentCurve3D | ( | int | poly, |
float | param, | ||
int | ptype = PARAM_SIMPLE |
||
) |
CoreExport Point3 InterpPiece3D | ( | int | poly, |
int | piece, | ||
float | param, | ||
int | ptype = PARAM_SIMPLE |
||
) |
CoreExport Point3 TangentPiece3D | ( | int | poly, |
int | piece, | ||
float | param, | ||
int | ptype = PARAM_SIMPLE |
||
) |
CoreExport MtlID GetMatID | ( | int | poly, |
int | piece | ||
) |
CoreExport float LengthOfCurve | ( | int | poly | ) |
CoreExport void GetTopology | ( | BezierShapeTopology & | topo | ) |
CoreExport BOOL PerformTrimOrExtend | ( | IObjParam * | ip, |
ViewExp * | vpt, | ||
ShapeHitData * | hit, | ||
IPoint2 & | m, | ||
ShapeContextCallback & | cb, | ||
int | trimType, | ||
int | trimInfinite | ||
) |
CoreExport BOOL SelVertsSameType | ( | ) |
CoreExport BOOL SelSegsSameType | ( | ) |
CoreExport BOOL SelSplinesSameType | ( | ) |
CoreExport void BindKnot | ( | BOOL | isEnd, |
int | segIndex, | ||
int | splineSegID, | ||
int | splinePointID | ||
) |
CoreExport BOOL UnbindKnot | ( | int | splineID, |
BOOL | isEnd | ||
) |
CoreExport void UpdateBindList | ( | BOOL | useGeometricTracking = FALSE | ) |
CoreExport BOOL HideSelectedSegs | ( | ) |
CoreExport BOOL HideSelectedVerts | ( | ) |
CoreExport BOOL HideSelectedSplines | ( | ) |
CoreExport BOOL UnhideSegs | ( | ) |
CoreExport int UnselectHiddenVerts | ( | ) |
CoreExport int UnselectHiddenSegs | ( | ) |
CoreExport int UnselectHiddenSplines | ( | ) |
CoreExport void SetVertexWeightCount | ( | int | i | ) |
|
inline |
|
inline |
|
inline |
|
inline |
CoreExport void SupportVSelectionWeights | ( | ) |
CoreExport int UseEdgeDists | ( | ) |
CoreExport void SetUseEdgeDists | ( | int | edgeDist | ) |
CoreExport int EdgeDist | ( | ) |
CoreExport void SetEdgeDist | ( | int | edgeDist | ) |
CoreExport int UseSoftSelections | ( | ) |
CoreExport void SetUseSoftSelections | ( | int | useSoftSelections | ) |
CoreExport int AffectBackface | ( | ) |
CoreExport void SetAffectBackface | ( | int | affectBackface | ) |
CoreExport float Falloff | ( | ) |
CoreExport void SetFalloff | ( | float | falloff | ) |
CoreExport float Pinch | ( | ) |
CoreExport void SetPinch | ( | float | pinch | ) |
CoreExport float Bubble | ( | ) |
CoreExport void SetBubble | ( | float | bubble | ) |
CoreExport void InvalidateVertexWeights | ( | ) |
CoreExport void UpdateVertexDists | ( | ) |
CoreExport void UpdateEdgeDists | ( | ) |
CoreExport void UpdateVertexWeights | ( | ) |
CoreExport bool DeleteSplines | ( | const unsigned int * | indices, |
unsigned int | n | ||
) |
Delete multiple splines at once.
Deleting multiple splines at once is faster than deleting one by one by calling DeleteSpline(), because the internal bookkeeping only needs to be done once.
[in] | indices | Point to an array of indices to delete. Indices should be unique, and sorted in ascending order. |
[in] | n | Number of entries in the indices array. |
|
friend |
MaxSDK::Array<bindShape> bindList |
List of bind points.
PatchCapInfo patchCap |
BOOL patchCapCacheValid |
Indicates if the patch cap is valid or not.
Spline3D** splines |
A pointer to the list of splines.
int splineCount |
The number of splines in this shape.
BOOL optimize |
Setting this to TRUE optimizes linear segments.
ShapeVSel vertSel |
The selected vertices.
ShapeSSel segSel |
The selected segments.
ShapePSel polySel |
The selected polygons.
int bezVecPoly |
If hit bezier vector, this is its info.
This is used internally in hit testing.
int bezVecVert |
This is used internally in hit testing.
DWORD selLevel |
The Selection level.
DWORD dispFlags |
Display attribute flags.
They can be one of the following:
float* mpVertexWeights |
int numVertexWeights |
int* mpVertexEdgeDists |
float* mpVertexDists |
float mFalloff |
float mPinch |
float mBubble |
int mEdgeDist |
int mUseEdgeDist |
int mAffectBackface |
int mUseSoftSelections |