What's New in API in Maya 2017 Update 4

Viewport 2.0

  • A new MPxDrawOverride2 class includes new virtual functions, which let you continue to use MPxLocatorNode class functions to override selection behavior for custom shapes in your plug-ins. MPxDrawOverride2 class functions also provide the UI drawing mechanism to supersede the MPxSurfaceShapeUI class.

    These updates do not require plug-in source code changes or recompiling.

    The new functions include:

    • MPxDrawOverride2::wantUserSelection(), which when set to true, gets overridden and allows MPxDrawOverride2::userSelect() to be invoked for selection testing. Otherwise, the implementation is based on the rasterization of the drawing method.
    • When MPxDrawOverride2::userSelect() is invoked by MPxDrawOverride2::wantUserSelection(), the MUserData instance is used for the current selection context.

    The rawfootPrintNode plug-in example has been updated to demonstrate the use of the new functions.

  • The footPrintNode, footPrint_GeometryOverride, and rawFootPrintNode devkit examples have been updated to demonstrate how to optimize the use of MPxGeometryOverride class functions to improve viewport refreshes while running Maya in Evaluation Mode.
  • The MPxSubSceneOverride.updateSelectionGranularity() method in the Python API no longer raises a TypeError when it isn't overridden in derived classes.
  • The apiMeshShape devkit example has been modified to demonstrate how to support animation in Parallel mode.