These classes let you define skin weighting using a voxel or height map based algorithm.
Samples of usage can be found in
maxsdk/samples/modifiers/bonesdef/VoxelWeights/BMD_Command_VoxelWeight.cpp
Namespaces | |
AssetManagement | |
CUI | |
DebuggingTools | |
GeomBind | |
Graphics | |
NotificationAPI | |
ParticleFlow | |
PerformanceTools | |
PointCloud | |
Populate | |
RenderingAPI | |
SkinEngine | |
Util | |
Classes | |
class | Array |
A generic array container, with proper support for non-POD types. More... | |
class | ArrayAutoPtr |
Standard implementation of a AutoPtr for pointer to array types. More... | |
class | ArrayPointerDestructor |
DestructorPolicy template for pointer to array types. More... | |
class | AutoPtr |
Automatic memory-ownership pointer supporting "resource acquisition is initialization. More... | |
struct | AutoPtrRef |
Helper class used to implement destructive copy semantics and allow for AutoPtrs to be used as return values. More... | |
class | DeleteThisAutoPtr |
Partial template specialization of AutoPtr for types requiring destruction through a DeleteThis method. More... | |
class | DeleteThisDestructor |
DestructorPolicy template for types requiring destruction through DeleteThis. More... | |
class | EdgeDescr |
class | HoldBegin |
class | IHelpSystem |
This interface provides access to the 3ds Max Help system. More... | |
class | INoSignalCheckProgress |
An alternative progress reporting interface to class RendProgressCallback, which does not process the window message queue. More... | |
class | IPhysicalCamera |
Access to the properties of the Physical Camera object. More... | |
class | IPhysicalCamera_BitmapApertureSampler |
Utility class that provides efficient sampling for a bitmap aperture on the physical camera. More... | |
class | IPhysicalCameraToneOperator |
Access to the properties of the Physical Camera Exposure Control. More... | |
class | IPhysicalSunSky |
Access to functionality and properties of the Physical Sun & Sky environment map. More... | |
class | ISunPositioner |
Access to functionality and properties of the Sun Positioner object. More... | |
class | PointToPointPath |
class | QMaxColorSwatch |
Simple UI component to display and modify a color-value. More... | |
class | QMaxFloatSlider |
Qt Max slider for float values. More... | |
class | QMaxFloatSpinBox |
Qt Max spin box for float values. More... | |
class | QMaxLightingUnitSpinBox |
Qt Max spin box for lighting units. More... | |
class | QMaxParamBlockWidget |
Base class for QWidgets which are to be controlled by a parameter block/map. More... | |
class | QMaxTranslationLoader |
class | QMaxWorldSpinBox |
Qt Max spin box for world units. More... | |
class | SinglePointerDestructor |
DestructorPolicy template for pointer to single object types. More... | |
class | SingleWeakRefMaker |
Utility base class for a ReferenceMaker with a single target that does not share ownership of it's ReferenceTarget. More... | |
class | TexmapThreadSafe |
TexmapThreadSafe provides any texture plugin with thread safe support information in 3ds Max 2015. More... | |
class | VariableGuard |
Resets a variable when the object goes out of scope. More... | |
class | VertexNormal |
The class used to compute vertex normals considering smoothing. More... | |
class | WindowsMessageFilter |
Runs a message loop without blocking, allowing only acceptable Windows messages through to their destination UI controls. More... | |
Typedefs | |
typedef MAX_DEPRECATED IInteractiveRenderer | IAbortableRenderer |
typedef MAX_DEPRECATED Renderer | IStoppableRenderer |
Functions | |
HINSTANCE | GetHInstance () |
Get the calling module's HINSTANCE. More... | |
MSTR | GetResourceStringAsMSTR (UINT resourceId) |
Extract a resource from the calling module's string table. More... | |
bool | GetResourceStringAsMSTR (UINT resourceId, MSTR &resourceString) |
Extract a resource from the calling module's string table. More... | |
UtilExport MSTR | GetResourceStringAsMSTR (HINSTANCE hinstance, UINT resourceId) |
Extract a resource from a module's string table. More... | |
UtilExport bool | GetResourceStringAsMSTR (HINSTANCE hinstance, UINT resourceId, MSTR &resourceString) |
Extract a resource from a module's string table. More... | |
CoreExport QIcon | LoadMaxMultiResIcon (const QString &iconName) |
Loads a set of Images into a multi-resolution QIcon. More... | |
CoreExport HICON | CreateHICONFromMaxMultiResIcon (const MSTR &iconName, int width, int height, bool enabled=true, bool on=false) |
Create an HICON from a MaxMultiResIcon. More... | |
HICON | CreateHICONFromMaxMultiResIcon (const MSTR &iconName, int size, bool enabled=true, bool on=false) |
CoreExport HIMAGELIST | CreateHIMAGELISTFromMaxMultiResIcon (const MSTR &imageIconName, int size, int count, bool alpha=true, bool enabled=true, bool on=false) |
Create an HIMAGELIST from a MaxMultiResIcon. More... | |
Q_DECLARE_METATYPE (AColor) | |
QString | QStringFromID (int resourceID) |
IPhysicalCamera_BitmapApertureSampler::RGBValue | operator* (const float a, const IPhysicalCamera_BitmapApertureSampler::RGBValue &b) |
IPhysicalCamera_BitmapApertureSampler::RGBValue | operator* (const IPhysicalCamera_BitmapApertureSampler::RGBValue &a, const float b) |
IPhysicalCamera_BitmapApertureSampler::RGBValue | operator* (const IPhysicalCamera_BitmapApertureSampler::RGBValue &a, const IPhysicalCamera_BitmapApertureSampler::RGBValue &b) |
IPhysicalCamera_BitmapApertureSampler::RGBValue | operator+ (const IPhysicalCamera_BitmapApertureSampler::RGBValue &a, const IPhysicalCamera_BitmapApertureSampler::RGBValue &b) |
IPhysicalCamera_BitmapApertureSampler::RGBValue | operator- (const IPhysicalCamera_BitmapApertureSampler::RGBValue &a, const IPhysicalCamera_BitmapApertureSampler::RGBValue &b) |
UtilExport float | GetUIScaleFactor (int monitorID=-1) |
Returns the UI scaling factor relative to a default of 96 DPI. More... | |
UtilExport float | GetUIUserScaleFactor () |
Get the additional user UI scaling factor. More... | |
int | UIScaled (int value, int monitorID=-1) |
Returns the given value multiplied with the UI scaling factor. More... | |
float | UIScaled (float value, int monitorID=-1) |
Returns the given value multiplied with the UI scaling factor. More... | |
int | UIUnScaled (int value, int monitorID=-1) |
Returns the given value divided with the UI scaling factor. More... | |
float | UIUnScaled (float value, int monitorID=-1) |
Returns the given value divided with the UI scaling factor. More... | |
void | ScaleRect (RECT &rect, int monitorID=-1) |
Scaling of a rectangle values based on UIScaleFactor. More... | |
void | UnscaleRect (RECT &rect, int monitorID=-1) |
Unscaling of a rectangle values based on UIScaleFactor. More... | |
UtilExport HBITMAP | GetUIScaledBitmap (HBITMAP bitmap, int monitorID=-1) |
Returns a scaled copy of the bitmap if the UI scaling factor is not 1.0. More... | |
UtilExport HRESULT | AnnotateControlName (HWND hWnd, const MSTR &name) |
Annotates the control with Microsoft Active Accessibility name property. More... | |
UtilExport HRESULT | RemoveAnnotatedNameFromControl (HWND hWnd) |
Removes the Microsoft Active Accessibility name from the control. More... | |
CoreExport void | ScaleFileOpenSaveDialogToolbar (HWND hDlg) |
Scales the toolbar size and icons in standard file open/save dialogs. More... | |
CoreExport INT_PTR WINAPI | MinimalMaxFileOpenHookProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) |
A minimal LPOFNHOOKPROC for scaling the toolbar size and icons in standard file open/save dialogs. More... | |
CoreExport bool | SearchComboBox (HWND hWnd, MCHAR key, const MCHAR *szTrim=NULL) |
Multiple character search for ComboBoxes. More... | |
CoreExport bool | SearchListBox (HWND hWnd, MCHAR key, const MCHAR *szTrim=NULL) |
Multiple character search for ListBoxes. More... | |
CoreExport int | GetDefaultToolTipMaxWidth () |
typedef MAX_DEPRECATED IInteractiveRenderer IAbortableRenderer |
typedef MAX_DEPRECATED Renderer IStoppableRenderer |
|
inline |
Get the calling module's HINSTANCE.
|
inline |
Extract a resource from the calling module's string table.
GetResourceStringAsMSTR is essentially a thread-safe wrapper around the Win32 API's LoadString, but it saves client code from the bother of dealing with its HINSTANCE, of maintaining a buffer, and reduces duplicated code.
resourceId | Identifier for the desired string resource within the calling module's string table. |
|
inline |
Extract a resource from the calling module's string table.
GetResourceStringAsMSTR is essentially a thread-safe wrapper around the Win32 API's LoadString, but it saves client code from the bother of dealing with its HINSTANCE, of maintaining a buffer, and reduces duplicated code.
resourceId | Identifier for the desired string resource within the calling module's string table. |
resourceString | Updated to contain the resource string if the requested resource is not found. |
UtilExport MSTR MaxSDK::GetResourceStringAsMSTR | ( | HINSTANCE | hinstance, |
UINT | resourceId | ||
) |
Extract a resource from a module's string table.
GetResourceString is essentially a thread-safe wrapper around the Win32 API's LoadString, but it saves client code from the bother of maintaining a buffer and reduces duplicated code. Optimally, GetResourceString should be called through the single-parameter version from dllutilities.h.
hinstance | Handle to the module whose string table will be queried for the resource. |
resourceId | Identifier for the desired string resource within the calling module's string table. |
UtilExport bool MaxSDK::GetResourceStringAsMSTR | ( | HINSTANCE | hinstance, |
UINT | resourceId, | ||
MSTR & | resourceString | ||
) |
Extract a resource from a module's string table.
GetResourceString is essentially a thread-safe wrapper around the Win32 API's LoadString, but it saves client code from the bother of maintaining a buffer and reduces duplicated code. Optimally, GetResourceString should be called through the single-parameter version from dllutilities.h.
hinstance | Handle to the module whose string table will be queried for the resource. |
resourceId | Identifier for the desired string resource within the calling module's string table. |
resourceString | Updated to contain the resource string if the requested resource is not found. |
CoreExport QIcon MaxSDK::LoadMaxMultiResIcon | ( | const QString & | iconName | ) |
Loads a set of Images into a multi-resolution QIcon.
This function looks into the UI_ln folder of the 3dsmax installation (or the internal Qt resource system) to find a set of matching image files to mark for usage. The actual images get loaded on demand.
The naming of those files has to match one of the following schemes:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
So for example:
iconName | files on disk | QIcon entry size | QIcon state |
---|---|---|---|
Undo | Undo_16.png | 16 x 16px | Off |
Undo | Undo_off_24.png | 24 x 24px | Off |
Undo | Undo_on_32.png | 32 x 32px | On |
Undo | Undo_on_100.png | 100 x 100px | On |
Undo | Undo_16x32.png | 16 x 32px | Off |
Undo | Undo_on_16x32.png | 16 x 32px | On |
In that case a single call on LoadMaxMultiResIcon( "Undo" ) would produce an QIcon containing all the different sizes and states.
iconName | files on disk | QIcon entry size | QIcon state |
---|---|---|---|
Redo.png | Redo.png | based on file[^1] | Off |
Redo.png | Redo_on.png | based on file[^1] | On |
[^1]: This forces the QIcon to load the image file to determine its actual size.
iconName | files on disk | QIcon entry size | QIcon state |
---|---|---|---|
Fancy.jpg | Fancy_300x100.jpg | 300 x 100px | Off |
Fancy.jpg | Fancy_150x50.jpg | 150 x 50px | Off |
The iconName may also contain folders or sub-folders, so these fileNames are fine, too (slashes or backslashes can be used):
"SME/Editor.png" "SME/Nodes/Collapse.png" "SME\\Nodes\\RemoveItem.png"
Based on the current 3dsmax theme (Dark/Light) the icons are retrieved from different locations on the file-system, so depending on the setting "SME/Editor.png" may get:
UI_ln/Icons/Dark/SME/Editor*.png UI_ln/Icons/Light/SME/Editor*.png
If the iconName starts with ":/", it points to a Qt Resource like ":/Icons/Undo", the theming is not automatically applied, so the caller is responsible to actually provide the correct resource-bundle. Nevertheless the QIcons internal pixmap cache will be wiped on a theme change, so the next paint call on the QIcon will reload the acquired version.
If a size of an image inside an QIcon is not available but requested for painting, Qt will downscale the next bigger version automatically - but will never scale images up.
[in] | iconName | The name of the icon to load. The path, basename and the extension of the file is used to find matching icons. The Extension may be omitted and .png is assumed to be the default extension. |
CoreExport HICON MaxSDK::CreateHICONFromMaxMultiResIcon | ( | const MSTR & | iconName, |
int | width, | ||
int | height, | ||
bool | enabled = true , |
||
bool | on = false |
||
) |
Create an HICON from a MaxMultiResIcon.
Loads a QIcon using LoadMaxMultiResIcon, and tries to extract a HICON from it using the given size, mode and state settings. For a detailed description on the iconName syntax, please have a closer look at the LoadMaxMultiResIcon function. The HICON returned might be smaller than requested, but never larger.
Convenience method for legacy usage, for example when using one size of a multi-resolution-icon in a win32 HMENU. Note that the resulting HICON wont refresh itself on a theme change, as the QIcon does.
[in] | iconName | The name of the icon to load. This may be the actual filename, but also can be some folder/basename combination, as described in detail in LoadMaxMultiResIcon. |
[in] | width | The (maximum) width of the image to be loaded. |
[in] | height | The (maximum) height of the image to be loaded. |
[in] | enabled | Sets, if an enabled or disabled version of the icon should be retrieved (QIcon::Normal vs QIcon::Disabled) |
[in] | on | Sets, if the On or Off state of the icon should be retrieved (QIcon::On vs QIcon::Off). |
|
inline |
CoreExport HIMAGELIST MaxSDK::CreateHIMAGELISTFromMaxMultiResIcon | ( | const MSTR & | imageIconName, |
int | size, | ||
int | count, | ||
bool | alpha = true , |
||
bool | enabled = true , |
||
bool | on = false |
||
) |
Create an HIMAGELIST from a MaxMultiResIcon.
Loads a QIcon using LoadMaxMultiResIcon, and tries to convert it to a HIMAGELIST using the given size, mode and state settings. For a detailed description on the iconName syntax, please have a closer look at the LoadMaxMultiResIcon function.
[in] | iconName | The name of the icon to load. This may be the actual filename, but also can be some folder/basename combination, as described in detail in LoadMaxMultiResIcon. |
[in] | size | The width and height of the component icons in the image to be loaded. |
[in] | count | The number of component icons in the image to be loaded. |
[in] | alpha | Sets, if alpha channel in icon should be used when creating the bitmap from the QIcon |
[in] | enabled | Sets, if an enabled or disabled version of the icon should be retrieved (QIcon::Normal vs QIcon::Disabled) |
[in] | on | Sets, if the On or Off state of the icon should be retrieved (QIcon::On vs QIcon::Off). |
MaxSDK::Q_DECLARE_METATYPE | ( | AColor | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
UtilExport float MaxSDK::GetUIScaleFactor | ( | int | monitorID = -1 | ) |
Returns the UI scaling factor relative to a default of 96 DPI.
The function reads the systems monitor settings and calculates the scaling factor based on the vertical logical DPI (what can be set and changed through the windows OS control panel). It will return 1.0f, if some value couldn't be retrieved or calculated, or a calculation result will be 0.0f; so it is safe to use the result of this function to simply multiply UI sizes without further checking.
[in] | monitorID | The index of the monitor to get the actual logical vertical DPI from. Default value is set to -1, which means the primary system monitor. |
UtilExport float MaxSDK::GetUIUserScaleFactor | ( | ) |
Get the additional user UI scaling factor.
Returns the given value multiplied with the UI scaling factor.
[in] | value | The value which should be dpi scaled. |
[in] | monitorID | The index of the monitor to get the actual logical vertical dpi from. Default value is set to -1, which means the primary system monitor. |
|
inline |
Returns the given value multiplied with the UI scaling factor.
[in] | value | The value which should be dpi scaled. |
[in] | monitorID | The index of the monitor to get the actual logical vertical dpi from. Default value is set to -1, which means the primary system monitor. |
Returns the given value divided with the UI scaling factor.
Use this function to do an unscaling of a previous dpi scaled value.
[in] | value | The value which should be dpi unscaled. |
[in] | monitorID | The index of the monitor to get the actual logical vertical dpi from. Default value is set to -1, which means the primary system monitor. |
|
inline |
Returns the given value divided with the UI scaling factor.
Use this function to do an unscaling of a previous dpi scaled value.
[in] | value | The value which should be dpi unscaled. |
[in] | monitorID | The index of the monitor to get the actual logical vertical dpi from. Default value is set to -1, which means the primary system monitor. |
Scaling of a rectangle values based on UIScaleFactor.
[in,out] | rect | RECT struct to be scaled to UIScaleFactor |
[in] | monitorID | The index of the monitor to get the actual logical vertical dpi from. Default value is set to -1, which means the primary system monitor. |
Unscaling of a rectangle values based on UIScaleFactor.
[in,out] | rect | RECT struct to be unscaled to UIScaleFactor |
[in] | monitorID | The index of the monitor to get the actual logical vertical dpi from. Default value is set to -1, which means the primary system monitor. |
UtilExport HBITMAP MaxSDK::GetUIScaledBitmap | ( | HBITMAP | bitmap, |
int | monitorID = -1 |
||
) |
Returns a scaled copy of the bitmap if the UI scaling factor is not 1.0.
[in] | bitmap | The bitmap to be dpi scaled. |
[in] | monitorID | The index of the monitor to get the actual logical vertical dpi from. Default value is set to -1, which means the primary system monitor. |
UtilExport HRESULT MaxSDK::AnnotateControlName | ( | HWND | hWnd, |
const MSTR & | name | ||
) |
Annotates the control with Microsoft Active Accessibility name property.
[in] | hWnd | The window handle of the control to be annotated |
[in] | name | The name annotated to the control |
UtilExport HRESULT MaxSDK::RemoveAnnotatedNameFromControl | ( | HWND | hWnd | ) |
Removes the Microsoft Active Accessibility name from the control.
[in] | hWnd | The window handle of the control to be removed annotation |
CoreExport void MaxSDK::ScaleFileOpenSaveDialogToolbar | ( | HWND | hDlg | ) |
Scales the toolbar size and icons in standard file open/save dialogs.
Scales the toolbar containing the 'Go To Last Folder Visisted', 'Up One Level', 'Create New Folder' buttons, and the 'View Menu' dropdown, by the system dpi scaling value. The hDlg parameter is HWND passed to the LPOFNHOOKPROC specified in the OPENFILENAME structure. Technically, this HWND is a child of the win32 file open / save dialog
[in] | hDlg | The dialog's HWND. |
CoreExport INT_PTR WINAPI MaxSDK::MinimalMaxFileOpenHookProc | ( | HWND | hDlg, |
UINT | message, | ||
WPARAM | wParam, | ||
LPARAM | lParam | ||
) |
A minimal LPOFNHOOKPROC for scaling the toolbar size and icons in standard file open/save dialogs.
Use this LPOFNHOOKPROC when not customization of the Open/Save File dialog is being performed. Example usage:
Implementation:
CoreExport bool MaxSDK::SearchComboBox | ( | HWND | hWnd, |
MCHAR | key, | ||
const MCHAR * | szTrim = NULL |
||
) |
Multiple character search for ComboBoxes.
This method will select an entry in the ComboBox based on the multiple key entries over a set time period. The functionality mimics the standard windows ListView behavior, including the documented one second time period for key entries. It is intended to be used in conjunction with the WM_CHAR message in the ComboBox's callback.
Example usage:
[in] | hWnd | Window handle of ComboBox |
[in] | key | Character entered by user |
[in] | szTrim | Optional parameter. Default is NULL. Any leading characters in the ComboBox entries that are contained in szTrim will be removed prior to comparing to the search string. |
CoreExport bool MaxSDK::SearchListBox | ( | HWND | hWnd, |
MCHAR | key, | ||
const MCHAR * | szTrim = NULL |
||
) |
Multiple character search for ListBoxes.
This method will select an entry in the ListBox based on the multiple key entries over a set time period. The functionality mimics the standard windows ListView behavior, including the documented one second time period for key entries. It is intended to be used in conjunction with the WM_CHAR message in the ListBox's callback.
Example usage:
[in] | hWnd | Window handle of ListBox |
[in] | key | Character entered by user |
[in] | szTrim | Optional parameter. Default is NULL. Any leading characters in the ListBox entries that are contained in szTrim will be removed prior to comparing to the search string. |
CoreExport int MaxSDK::GetDefaultToolTipMaxWidth | ( | ) |