3ds Max C++ API Reference
|
The interface to the functionality for using the Working Pivot. More...
#include <IWorkingPivot.h>
Public Member Functions | |
Use Mode Functions | |
virtual void | SetUseMode (BOOL use)=0 |
This function will put us in and out of the mode where the working pivot becomes the pivot for all objects in the scene. | |
virtual BOOL | GetUseMode () const =0 |
This function returns whether or not we are using the working pivot transform space, thus whether or not the working pivot is the pivot for all of the objects in the scene. | |
Edit Mode Functions | |
virtual void | SetEditMode (BOOL edit)=0 |
This function will put us in a mode where we can edit and move the working pivots location. | |
virtual BOOL | GetEditMode () const =0 |
This function gets whether or not we are in the mode where we can edit the working pivot. | |
virtual void | SetPlacePivotViewMode (BOOL place, BOOL alignToView)=0 |
This function puts us in a command mode where any click in the viewport will automatically move the working pivot to that position in screen space. | |
virtual BOOL | GetPlacePivotViewMode () const =0 |
This function returns whether or not we are in the place pivot command mode. | |
virtual void | SetPlacePivotSurfaceMode (BOOL place, BOOL alignToView)=0 |
This function puts us in a command mode where we will place the working pivot onto any surface in the scene, including grids. | |
virtual BOOL | GetPlacePivotSurfaceMode () const =0 |
This function returns whether or not we are in the place pivot on the auto grid command mode. | |
virtual BOOL | GetPlacePivotAlignToView () const =0 |
This function returns whether or not when we are in a place pivot mode if we are also aligning to the view. | |
Working-Pivot Option Functions | |
virtual void | SetPinWorkingPivot (BOOL pin)=0 |
This function sets the "Pin Working Pivot" option. | |
virtual BOOL | GetPinWorkingPivot () const =0 |
This function returns whether or not when we are using the Pin Working Pivot option. | |
Transform Functions | |
virtual void | SetTM (const Matrix3 &mat)=0 |
This functions sets the world space transform of the working pivot. | |
virtual Matrix3 | GetTM () const =0 |
This function gets the world space transofrm of the working pivot. | |
Display Functions | |
virtual void | SetAxisSize (float size)=0 |
This function sets the axis display size of the working pivot when it's displayed when in use or being edited. | |
virtual float | GetAxisSize () const =0 |
This function gets the axis display size of the working pivot when it's displayed when in use or being edited. | |
virtual void | SetShowCaddyEdit (BOOL show)=0 |
This function sets whether the caddy will be displayed while in Edit mode. | |
virtual BOOL | GetShowCaddyEdit () const =0 |
This function gets the whether the caddy will be displayed while in Edit mode. | |
virtual void | SetShowCaddyPlace (BOOL show)=0 |
This function sets whether the caddy will be displayed while in Place mode. | |
virtual BOOL | GetShowCaddyPlace () const =0 |
This function gets the whether the caddy will be displayed while in Place mode. | |
Transformation Convenience Functions | |
virtual void | AlignToView ()=0 |
This function aligns the working pivot transform to the that of the active viewport. | |
virtual void | ResetTM ()=0 |
This function allows you to reset the working pivot's transform so that it matches that of the current selection. | |
virtual void | ResetTM (INode *node)=0 |
This function allows you to reset the working pivot's transform so that it matches that of a selected node that's passed in as a parameter. | |
FileIO (Internal Use Only) | |
Used internally | |
virtual IOResult | Save (ISave *iSave)=0 |
Used internally. | |
virtual IOResult | Load (ILoad *iLoad)=0 |
Used internally. | |
![]() | |
CoreExport | FPInterfaceDesc () |
CoreExport | FPInterfaceDesc (Interface_ID id, const MCHAR *int_name, StringResID descr, ClassDesc *cd, ULONG flag,...) |
CoreExport | ~FPInterfaceDesc () |
virtual void | Init () |
LifetimeType | LifetimeControl () |
virtual BaseInterface * | GetInterface (Interface_ID id) |
CoreExport void | LoadDescriptor (Interface_ID id, const MCHAR *int_name, StringResID descr, ClassDesc *pCD, ULONG flag,...) |
CoreExport void | AppendFunction (int id,...) |
Add a new function to this interface descriptor. | |
CoreExport void | AppendProperty (int id,...) |
Add a new property to this interface descriptor. | |
CoreExport void | AppendEnum (int id,...) |
Add a new enum to this interface descriptor. | |
CoreExport void | SetClassDesc (ClassDesc *i_cd) |
CoreExport va_list | check_fn (va_list ap, int id) |
CoreExport va_list | scan_fn (va_list ap, int id, int index) |
CoreExport va_list | check_prop (va_list ap, int id) |
CoreExport va_list | scan_prop (va_list ap, int id, int index) |
CoreExport va_list | check_enum (va_list ap, EnumID id) |
CoreExport va_list | scan_enum (va_list ap, EnumID id, int index) |
FPInterfaceDesc * | GetDesc () |
Interface_ID | GetID () |
CoreExport FPFunctionDef * | GetFnDef (FunctionID fid) |
ActionTable * | GetActionTable () |
CoreExport void | EnableActions (BOOL onOff) |
virtual CoreExport HINSTANCE | HInstance () |
virtual CoreExport const MCHAR * | GetRsrcString (StringResID id) |
![]() | |
virtual BaseInterface * | GetInterface (Interface_ID id) |
virtual FPInterfaceDesc * | GetDesc ()=0 |
virtual CoreExport FPStatus | Invoke (FunctionID fid, TimeValue t=0, FPParams *params=NULL) |
virtual FPStatus | Invoke (FunctionID fid, FPParams *params) |
virtual CoreExport FPStatus | Invoke (FunctionID fid, TimeValue t, FPValue &result, FPParams *params=NULL) |
virtual FPStatus | Invoke (FunctionID fid, FPValue &result, FPParams *params=NULL) |
virtual CoreExport FunctionID | FindFn (const MCHAR *name) |
virtual CoreExport BOOL | IsEnabled (FunctionID actionID) |
virtual CoreExport BOOL | IsChecked (FunctionID actionID) |
virtual CoreExport BOOL | IsVisible (FunctionID actionID) |
virtual CoreExport FunctionID | GetIsEnabled (FunctionID actionID) |
virtual CoreExport FunctionID | GetIsChecked (FunctionID actionID) |
virtual CoreExport FunctionID | GetIsVisible (FunctionID actionID) |
virtual ActionTable * | GetActionTable () |
virtual void | EnableActions (BOOL onOff) |
![]() | |
virtual UtilExport | ~BaseInterface () |
Destructor. | |
UtilExport BaseInterface * | GetInterface (Interface_ID id) override |
virtual UtilExport Interface_ID | GetID () |
virtual LifetimeType | LifetimeControl () |
virtual bool | RegisterNotifyCallback (InterfaceNotifyCallback *incb) |
virtual void | UnRegisterNotifyCallback (InterfaceNotifyCallback *incb) |
virtual BaseInterface * | AcquireInterface () |
virtual void | ReleaseInterface () |
virtual void | DeleteInterface () |
virtual BaseInterface * | CloneInterface (void *remapDir=nullptr) |
![]() | |
virtual UtilExport | ~InterfaceServer () |
Destructor. | |
virtual UtilExport BaseInterface * | GetInterface (Interface_ID id) |
template<class InterfaceType > | |
InterfaceType * | GetTypedInterface () |
Additional Inherited Members | |
![]() | |
enum | LifetimeType { noRelease , immediateRelease , wantsRelease , serverControlled } |
![]() | |
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. | |
![]() | |
Interface_ID | ID |
MSTR | internal_name |
StringResID | description |
ClassDesc * | cd |
USHORT | flags |
Tab< FPFunctionDef * > | functions |
Tab< FPPropDef * > | props |
Tab< FPEnum * > | enumerations |
MSPluginClass * | pc |
Rollout * | rollout |
ActionTable * | action_table |
![]() | |
static CoreExport FPInterfaceDesc | nullInterface |
![]() | |
CoreExport void | load_descriptor (Interface_ID id, const MCHAR *int_name, StringResID descr, ClassDesc *cd, USHORT flag, va_list ap) |
![]() | |
virtual FPStatus | _dispatch_fn (FunctionID fid, TimeValue t, FPValue &result, FPParams *p) |
The interface to the functionality for using the Working Pivot.
This class contains key functionality for using the working pivot. You get this interface by calling GetIWorkingPivot().
|
pure virtual |
This function will put us in and out of the mode where the working pivot becomes the pivot for all objects in the scene.
[in] | use | If TRUE and we aren't using the working pivot transform space we do so, if FALSE and we are using the working pivot transform space then we stop. ! |
|
pure virtual |
This function returns whether or not we are using the working pivot transform space, thus whether or not the working pivot is the pivot for all of the objects in the scene.
|
pure virtual |
This function will put us in a mode where we can edit and move the working pivots location.
While in this mode we can only transform the working pivot and not any other objects in the max scene.
[in] | edit | If TRUE we enter a mode to transform the working pivot, if FALSE we leave the working pivot edit mode. ! |
|
pure virtual |
This function gets whether or not we are in the mode where we can edit the working pivot.
!\ return Return TRUE if we are in the mode where we can edit the working pivot, otherwise return FALSE. !
|
pure virtual |
This function puts us in a command mode where any click in the viewport will automatically move the working pivot to that position in screen space.
place | If TRUE and not in the place pivot view command mode then we enter the place pivot view command mode, if FALSE and we are in the place pivot view command mode then we exit that mode. Note that we aren't in the edit working pivot mode when entering this mode we enter edit working pivot mode automatically and then if we exit in this case we also turn off edit working pivot mode. |
alignToView | If TRUE and we are entering this mode then when we place the pivot it also automatically aligns to the current view of the viewport when you click. Also note that in this case it also sets the Align To View toggle in the 'Place Pivot To:' group in the Hierarchy panel. ! |
|
pure virtual |
This function returns whether or not we are in the place pivot command mode.
|
pure virtual |
This function puts us in a command mode where we will place the working pivot onto any surface in the scene, including grids.
place | If TRUE and not in the place pivot on a surface command mode then we enter the place pivot on a surface command mode, if FALSE and we are in this command mode then we exit this mode. Note that we aren't in the edit working pivot mode when entering this mode then we enter edit working pivot mode automatically and then if we exit in this case we also turn off edit working pivot mode. |
alignToView | If TRUE and we are entering this mode then when we place the pivot by clicking it also automatically aligns to the current view of the viewport when you click. Also note that in this case it also sets the Align To View toggle in the 'Place Pivot To:' group in the Hierarchy panel. ! |
|
pure virtual |
This function returns whether or not we are in the place pivot on the auto grid command mode.
|
pure virtual |
This function returns whether or not when we are in a place pivot mode if we are also aligning to the view.
|
pure virtual |
This function sets the "Pin Working Pivot" option.
!
|
pure virtual |
This function returns whether or not when we are using the Pin Working Pivot option.
|
pure virtual |
This functions sets the world space transform of the working pivot.
When using the working pivot this will be the location about which pivoting will occur, and when editing the working pivot this is the location of where the pivot is when the mode is entered and exited.
[in] | mat | The world space location of the working pivot. ! |
|
pure virtual |
This function gets the world space transofrm of the working pivot.
When using the working pivot this will be the location about which pivoting will occur, and when editing the working pivot this is the location of where the pivot is when the mode is entered and exited.
|
pure virtual |
This function sets the axis display size of the working pivot when it's displayed when in use or being edited.
size | The length of each working pivot axis in 3ds Max units. ! |
|
pure virtual |
This function gets the axis display size of the working pivot when it's displayed when in use or being edited.
|
pure virtual |
This function sets whether the caddy will be displayed while in Edit mode.
!
|
pure virtual |
This function gets the whether the caddy will be displayed while in Edit mode.
!
|
pure virtual |
This function sets whether the caddy will be displayed while in Place mode.
!
|
pure virtual |
This function gets the whether the caddy will be displayed while in Place mode.
!
|
pure virtual |
This function aligns the working pivot transform to the that of the active viewport.
It does this by changing the rotation of the working pivot transform to match the rotation of the active viewport. Note that this function does nothing if we aren't in the edit or use working pivot modes. !
|
pure virtual |
This function allows you to reset the working pivot's transform so that it matches that of the current selection.
After this function is called, the working pivots world space transformation will equal that of the current selection. Also note that this function does nothing if we aren't in the edit or use working pivot modes.
!
This function allows you to reset the working pivot's transform so that it matches that of a selected node that's passed in as a parameter.
node | The node whose world space transform the working pivot's transofrm will get set equal to. If the node is NULL, or if we aren't in the edit or use working pivot modes, then nothing will happen. Finally, the working pivot will match up with the node transform, not the object trnasform. ! |