var searchResultProvider = new SearchResultsProvider("", "Autodesk Maya 2013 API Documentation");
searchResultProvider.setTopicInfoList([{"title":"API Guide",
"href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm",
"description":"© Copyright 2012 Autodesk, Inc. All rights reserved.",
"ancestors":[]},
{"title":"Maya API introduction",
"href":"./files/Maya_API_introduction.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"Introduction",
"href":"./files/API_Introduction.htm",
"description":"Autodesk Maya is an open product. This means that anyone outside of Autodesk can change Maya’s existing features or add entirely new features. There are several ways you can modify Maya:",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya API introduction","href":"./files/Maya_API_introduction.htm"}]},
{"title":"Maya Architecture Overview",
"href":"./files/GUID-F584322E-4A12-4995-9F4E-A38D4331808F.htm",
"description":"Maya Architecture Overview Maya is designed to be an open, flexible and extensible product. The APIs of Maya and its command scripting languages (MEL and Python) are key to the software being open a",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya API introduction","href":"./files/Maya_API_introduction.htm"}]},
{"title":"Using the Documentation System",
"href":"./files/GUID-6389AA40-FF46-4F07-96E7-036E4C15F3F8.htm",
"description":"Supported Browsers The HTML documentation help system is supported by the following browsers: Internet Explorer version 7 or later. Apple Safari version 4 or later. Mozilla Firefox version 3.6 or la",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya API introduction","href":"./files/Maya_API_introduction.htm"}]},
{"title":"Loading a Plug-in",
"href":"./files/API_Loading_a_Plugin.htm",
"description":"There are two ways to load and unload a plug-in. The easiest way to load a plug-in is to use the Plug-in Manager.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya API introduction","href":"./files/Maya_API_introduction.htm"}]},
{"title":"Unloading a plug-in",
"href":"./files/API_Unloading_a_plugin.htm",
"description":"Unloading a plug-in through MEL is simple—you use the unloadPlugin command and supply the plug-in name.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya API introduction","href":"./files/Maya_API_introduction.htm"}]},
{"title":"Writing a simple plug-in",
"href":"./files/API_Writing_a_simple_plugin.htm",
"description":"The following provides information on how to write a simple plug-in called Hello World.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya API introduction","href":"./files/Maya_API_introduction.htm"}]},
{"title":"Important plug-in features",
"href":"./files/API_Important_plugin_features.htm",
"description":"The \"Hello World\" plug-in introduces a number of important features, outlined below.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya API introduction","href":"./files/Maya_API_introduction.htm"}]},
{"title":"Interacting with Maya",
"href":"./files/API_Interacting_with_Maya.htm",
"description":"Maya’s API contains four types of C++ objects which you use in the code to interact with Maya. These are wrappers, objects, function sets, and proxies.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya API introduction","href":"./files/Maya_API_introduction.htm"}]},
{"title":"MObject",
"href":"./files/API_MObject.htm",
"description":"Access to all Maya objects (curves, surfaces, DAG nodes, dependency graph nodes, lights, shaders, textures, etc.) is done through a handle object called an MObject. This handle provides a few simple methods to help determine the object type (see the MObject class documentation for a complete description). The MObject destructor does not delete the Maya object that it references—calling the destructor only deletes the handle object, thereby maintaining ownership.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya API introduction","href":"./files/Maya_API_introduction.htm"}]},
{"title":"Wrappers",
"href":"./files/API_Wrappers.htm",
"description":"Wrappers exist for simple objects such as math classes (like vectors or matrices). They are generally fully implemented C++ classes with public constructors and destructors. API methods may return a wrapper, which you are then responsible for—leaving scope will usually be adequate for deleting the wrapper. You are also free to allocate and deallocate them as necessary. In the previous example (Building a curve using a plug-in), MPointArray and MDoubleArray are wrappers. You always own the wrapper that you reference.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya API introduction","href":"./files/Maya_API_introduction.htm"}]},
{"title":"Objects and Function Sets",
"href":"./files/API_Objects_and_Function_Sets.htm",
"description":"Objects and function sets are always used together. They are separate which easily establishes ownership—objects are always owned by Maya, and function sets are always owned by you.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya API introduction","href":"./files/Maya_API_introduction.htm"}]},
{"title":"Naming Conventions",
"href":"./files/API_Naming_Conventions.htm",
"description":"The Maya API uses a convention of prefixes on its classes to distinguish the various types of C++ objects that it uses.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya API introduction","href":"./files/Maya_API_introduction.htm"}]},
{"title":"Adding arguments",
"href":"./files/API_Adding_arguments.htm",
"description":"The helix plug-in generates a simple curve, but it always produces the same curve (see Building a curve using a plug-in).",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya API introduction","href":"./files/Maya_API_introduction.htm"}]},
{"title":"Error checking",
"href":"./files/API_Error_checking.htm",
"description":"In the examples presented so far you have not been prompted to do much error checking. This is usually fine for examples, but when producing a production plug-in you really want to check for errors.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya API introduction","href":"./files/Maya_API_introduction.htm"}]},
{"title":"MStatus class",
"href":"./files/API_MStatus_class.htm",
"description":"The MStatus class can determine if a method has failed.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya API introduction","href":"./files/Maya_API_introduction.htm"}]},
{"title":"Error logging",
"href":"./files/API_Error_logging.htm",
"description":"As well as using the MStatus class, you can check for failures in API methods using error logging.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya API introduction","href":"./files/Maya_API_introduction.htm"}]},
{"title":"Setting up your build environment",
"href":"./files/Setting_up_your_build_environment.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"Introduction to building plug-ins and applications",
"href":"./files/Setting_up_your_build_environment_Introduction_to_building_plugins_and_applications.htm",
"description":"In the following section we describe how to build plug-ins and standalone API applications. A plug-in is used to extend the functionality of Maya and utilizes dynamic loading of shared objects. Standalone API applications allow for creating applications that can be run on the command line. To build either a plug-in or standalone API application, certain environment variables must be set.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Setting up your build environment","href":"./files/Setting_up_your_build_environment.htm"}]},
{"title":"Compiler Requirements",
"href":"./files/Setting_up_your_build_environment_Compiler_Requirements.htm",
"description":"The Maya API requires a specific compiler and linker on each of the platforms we support. The compilers listed below are identical to what we use to build Maya. Using these compilers will guarantee binary compatibility when building plug-ins.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Setting up your build environment","href":"./files/Setting_up_your_build_environment.htm"}]},
{"title":"Linux environments",
"href":"./files/Setting_up_your_build_environment_Linux_environments_32bit_and_64bit.htm",
"description":"Maya plug-ins The Maya Development Kit product contains a number of example plug-ins located in /usr/autodesk/maya2013-x64/devkit/plug-ins. Before you can use these plug-ins, you need to build them.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Setting up your build environment","href":"./files/Setting_up_your_build_environment.htm"}]},
{"title":"Linux compiler requirement",
"href":"./files/Setting_up_your_build_environment_Linux_compiler_requirement.htm",
"description":"To compile plug-ins and standalone applications for Maya 2013 for Linux, use the gcc compiler, version 4.1.2. Plug-ins built with any other compiler will not work because the C++ ABI (Application Binary Interface) must match between Maya and plug-ins. For best compatibility with Maya, the operating system should be either Red Hat Enterprise Linux 6.0 or Fedora Core 14.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Setting up your build environment","href":"./files/Setting_up_your_build_environment.htm"}]},
{"title":"Using a debugger to debug your plug-ins",
"href":"./files/Setting_up_your_build_environment_Using_a_debugger_to_debug_your_plugins.htm",
"description":"To start Maya under the control of a debugger, you use the \"-d\" flag of the maya shell script. The syntax for this is:",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Setting up your build environment","href":"./files/Setting_up_your_build_environment.htm"}]},
{"title":"Windows environment (32-bit and 64-bit)",
"href":"./files/Setting_up_your_build_env_Windows_env_32bit_and_64bit.htm",
"description":"The Maya Development Kit product contains a number of example plug-ins located in C:\\Program Files\\Autodesk\\maya2013\\devkit\\plug-ins. The development kit also contains several Maya API applications, located in C:\\Program Files\\Autodesk\\maya2013\\devkit\\applications.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Setting up your build environment","href":"./files/Setting_up_your_build_environment.htm"}]},
{"title":"Maya Plug-in Wizard For Visual Studio",
"href":"./files/GUID-13D86D23-65DB-49A2-BD9C-DB9EF9F8644A.htm",
"description":"Maya provides a wizard for Microsoft Visual Studio 2010 which can be used to quickly and easily create Visual Studio projects for Maya plug-ins. The wizard is not installed automatically by the Maya installer so you must copy some files by hand before you can start using it.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Setting up your build environment","href":"./files/Setting_up_your_build_environment.htm"}]},
{"title":"Mac OS X environment",
"href":"./files/Setting_up_your_build_environment_Mac_OS_X_environment.htm",
"description":"The Maya Development Kit is located in the /Applications/Autodesk/maya2013/devkit/ directory in a standard install of Maya.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Setting up your build environment","href":"./files/Setting_up_your_build_environment.htm"}]},
{"title":"Configuring Qt for use in Maya plug-ins",
"href":"./files/GUID-F44E5BC1-0BE0-411E-940C-02536A2D0198.htm",
"description":"Maya uses a customized version of Nokia\'s Open Source Qt 4.7.1 framework.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Setting up your build environment","href":"./files/Setting_up_your_build_environment.htm"}]},
{"title":"Selecting with the API",
"href":"./files/Selecting_with_the_API.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"Overview of selecting with the API",
"href":"./files/Selecting_with_the_API_Overview_of_selecting_with_the_API.htm",
"description":"A command usually gets input from the selection list. The result of the MGlobal::getActiveSelectionList() method contains all selected objects and can easily be checked through MSelectionList and MItSelectionList—two API classes you can use to edit selection lists.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Selecting with the API","href":"./files/Selecting_with_the_API.htm"}]},
{"title":"MGlobal::setActiveSelectionList()",
"href":"./files/Selecting_with_the_API_MGlobalsetActiveSelectionList.htm",
"description":"The global active selection list can be copied through:",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Selecting with the API","href":"./files/Selecting_with_the_API.htm"}]},
{"title":"MSelectionList",
"href":"./files/Selecting_with_the_API_MSelectionList.htm",
"description":"MSelectionList provides you with methods to add and remove objects from the selection list, as well as walk through the objects on the list.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Selecting with the API","href":"./files/Selecting_with_the_API.htm"}]},
{"title":"MItSelectionList",
"href":"./files/Selecting_with_the_API_MItSelectionList.htm",
"description":"MltSelectionList is a wrapper class containing selected objects. This can either be a copy of the global active selection list, or a list you build yourself.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Selecting with the API","href":"./files/Selecting_with_the_API.htm"}]},
{"title":"setObject() method",
"href":"./files/Selecting_with_the_API_setObject_method.htm",
"description":"The setObject() method on MFnDagNode is inherited by all function sets from MFnBase. It sets the object on which the function set operates. This is usually done through the function set’s constructor, but if the function set already exists and you want to change the object, use setObject(). This is more efficient than creating and destroying function sets each time you need one.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Selecting with the API","href":"./files/Selecting_with_the_API.htm"}]},
{"title":"MFn::Type enumeration",
"href":"./files/Selecting_with_the_API_MFnType_enumeration.htm",
"description":"The MFn::Type enumeration is used throughout the API to indicate item types.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Selecting with the API","href":"./files/Selecting_with_the_API.htm"}]},
{"title":"MGlobal::selectByName()",
"href":"./files/Selecting_with_the_API_MGlobalselectByName.htm",
"description":"The add() method on MSelectionList combined with MGlobal::setActiveSelectionList() provides one method for a plug-in to modify the active selection list.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Selecting with the API","href":"./files/Selecting_with_the_API.htm"}]},
{"title":"Command plug-ins",
"href":"./files/Command_plugins.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"Overview of adding commands to Maya",
"href":"./files/Command_plugins_Overview_of_adding_commands_to_Maya.htm",
"description":"Plug-ins The API supports several different types of plug-ins: Command plug-ins—commands that extend the MEL scripting language. Tool commands—plug-ins that take mouse input. \"Dependency graph plug",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Command plug-ins","href":"./files/Command_plugins.htm"}]},
{"title":"Registering commands",
"href":"./files/Command_plugins_Registering_commands.htm",
"description":"Before you can write more complex commands, you have to know how to properly register them with Maya. The MFnPlugin is a class used for registering the command with Maya.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Command plug-ins","href":"./files/Command_plugins.htm"}]},
{"title":"MFnPlugin",
"href":"./files/Command_plugins_MFnPlugin.htm",
"description":"The following is a new version of the hello command which uses MFnPlugin to register itself instead of using the macros in MSimple.h.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Command plug-ins","href":"./files/Command_plugins.htm"}]},
{"title":"initializePlugin()",
"href":"./files/Command_plugins_initializePlugin.htm",
"description":"The initializePlugin() function can be defined as either a C or C++ function. If you do not define this function, the plug-in will not be loaded.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Command plug-ins","href":"./files/Command_plugins.htm"}]},
{"title":"uninitializePlugin()",
"href":"./files/Command_plugins_uninitializePlugin.htm",
"description":"uninitializePlugin(), like initializePlugin(), can be a C or C++ function. If you neglect to declare this function, your plug-in will not be loaded.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Command plug-ins","href":"./files/Command_plugins.htm"}]},
{"title":"Creator methods",
"href":"./files/Command_plugins_Creator_methods.htm",
"description":"The items, such as commands, tools, or devices, registered by a plug-in are not available when Maya is compiled. As a result, Maya has no way of determining the size of a new command object (or any other plug-in defined C++ object). This makes it impossible for Maya to allocate these objects without some help.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Command plug-ins","href":"./files/Command_plugins.htm"}]},
{"title":"MPxCommand",
"href":"./files/Command_plugins_MPxCommand.htm",
"description":"The new hello command introduced earlier uses a proxy object to add new functionality to Maya (see MFnPlugin). This proxy object is derived from MPxCommand which provides all the functionality necessary for Maya to use the command as if it were built in.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Command plug-ins","href":"./files/Command_plugins.htm"}]},
{"title":"Returning results to MEL",
"href":"./files/Command_plugins_Returning_results_to_MEL.htm",
"description":"Commands can also return results to MEL. This is done using the set of overloaded \"setResult\" and \"appendToResult\" methods inherited from MPxCommand. For example, if the command needs to return an integer value of 4, it can be done using code that looks like the following:",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Command plug-ins","href":"./files/Command_plugins.htm"}]},
{"title":"Syntax objects",
"href":"./files/Command_plugins_Syntax_objects.htm",
"description":"The classes you need to work with when writing syntax objects are MSyntax and MArgDatabase. These classes are required for defining and handling command flag input.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Command plug-ins","href":"./files/Command_plugins.htm"}]},
{"title":"Flags",
"href":"./files/Command_plugins_Flags.htm",
"description":"While it is possible for a command to parse flag-like strings directly from the MArgList passed to its doIt() method, that will only work if the command is called from MEL. Python uses a completely different syntax for specifying flags and they are not even accessible from the MArgList.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Command plug-ins","href":"./files/Command_plugins.htm"}]},
{"title":"Contexts",
"href":"./files/Command_plugins_Contexts.htm",
"description":"Contexts in Maya are modes which define how mouse interaction will be interpreted. A context can execute commands, modify the current selection, or perform drawing operations, etc. In addition, the context can draw the cursor differently denoting the context. In Maya, contexts are presented with the name \"tool.\"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Command plug-ins","href":"./files/Command_plugins.htm"}]},
{"title":"MPxContext",
"href":"./files/Command_plugins_MPxContext.htm",
"description":"The MPxContext class allows you to create your own context.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Command plug-ins","href":"./files/Command_plugins.htm"}]},
{"title":"MPxContextCommand",
"href":"./files/Command_plugins_MPxContextCommand.htm",
"description":"The MPxContextCommand is the class used to define the special command for creating contexts. Context commands are similar to regular commands in that they can be executed from the command line and put into MEL scripts. They can have edit and query options which modify the properties of the context. They create an instance of the context and give it to Maya. Context commands are not undoable.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Command plug-ins","href":"./files/Command_plugins.htm"}]},
{"title":"Tool property sheets",
"href":"./files/Command_plugins_Tool_property_sheets.htm",
"description":"Tool property sheets are interactive editors for displaying and modifying the properties of a context. They are similar to attribute editors for modifying properties of a dependency graph node. They execute the context command following user actions in the editor to perform editing operations on the activated context. The tool property sheet for the activated context is displayed by double-clicking on the tool’s icon.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Command plug-ins","href":"./files/Command_plugins.htm"}]},
{"title":"MPxToolCommand",
"href":"./files/Command_plugins_MPxToolCommand.htm",
"description":"The MPxToolCommand is the base class for creating commands that can be executed from within a context. Tool commands are similar to regular commands in that they are defined with command flags and can be executed from the Maya command line. However, they must perform extra duties, as the actions taken by a context do not come from the normal Maya command mechanism but from inside the methods of the MPxContext class. These duties are to alert Maya of the execution of the command so that the undo/redo and journalling mechanisms operate correctly on the command. The MPxToolCommand is a subclass of MPxCommand with the additional methods.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Command plug-ins","href":"./files/Command_plugins.htm"}]},
{"title":"Attaching a plug-in to a Maya menu",
"href":"./files/Command_plugins_Attaching_a_plugin_to_a_Maya_menu.htm",
"description":"It is often necessary to make the functionality of a plug-in command available through the Maya menus. This can be accomplished using the MFnPlugin class. The two methods of interest are:",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Command plug-ins","href":"./files/Command_plugins.htm"}]},
{"title":"DAG Hierarchy",
"href":"./files/DAG_Hierarchy.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"Overview of the DAG Hierarchy",
"href":"./files/DAG_Hierarchy_Overview_of_the_DAG_Hierarchy.htm",
"description":"In Maya, a directed acyclic graph (DAG), defines elements such as the position, orientation, and scale of geometry. The DAG is composed of two types of DAG nodes, transforms and shapes.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "DAG Hierarchy","href":"./files/DAG_Hierarchy.htm"}]},
{"title":"Nodes",
"href":"./files/DAG_Hierarchy_Nodes.htm",
"description":"Transform nodes can have multiple child nodes—the child nodes are \"grouped\" beneath the transformation node. Node grouping allows them to share transformation information and be treated as a unit.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "DAG Hierarchy","href":"./files/DAG_Hierarchy.htm"}]},
{"title":"Transforms and shapes",
"href":"./files/DAG_Hierarchy_Transforms_and_shapes.htm",
"description":"A DAG node is simply an entity in the DAG. It may have and know about parents, siblings, and children, but it does not necessarily know about transformations or geometry. Transforms and Shapes are two types of nodes derived from a DAG node. A transform node is a type of DAG node which handles transformations (translate, rotate, and scale), while a shape node is a type of DAG node which handles geometry. A shape node does not maintain transformation information, and geometry cannot be hung below a transform node. This means that any piece of geometry requires two DAG nodes above it, a shape node immediately above it, and a transform node above the shape node.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "DAG Hierarchy","href":"./files/DAG_Hierarchy.htm"}]},
{"title":"DAG paths",
"href":"./files/DAG_Hierarchy_DAG_paths.htm",
"description":"A path through the DAG is a set of nodes which uniquely identifies the location of a particular node or instance of a node in the graph. The path represents a graph ancestry beginning with the root node of the graph and containing, in succession, a particular child of the root node followed by a particular child of this child, etc., down to the node identified by the path. For instanced nodes, there are multiple paths which lead from the root node to the instanced node, one path for each instance. Paths are displayed in Maya by naming each node in the path starting with the root node and separated by the vertical line character, \"|\".",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "DAG Hierarchy","href":"./files/DAG_Hierarchy.htm"}]},
{"title":"Generalized instancing",
"href":"./files/DAG_Hierarchy_Generalized_instancing.htm",
"description":"Maya supports generalized instancing. Generalized instancing means nodes which instance another node do not have to be siblings.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "DAG Hierarchy","href":"./files/DAG_Hierarchy.htm"}]},
{"title":"Transforms with multiple shapes",
"href":"./files/DAG_Hierarchy_Transforms_with_multiple_shapes.htm",
"description":"A transform node can have any number of transform nodes as children. In general, a transform node can only have a single shape node as a child, and when viewing the DAG through an interactive window this will always be the case. However when examining the DAG through the API you will find that transforms may have multiple shape nodes as children. This happens when the original shape under the transform has been modified by the dependency graph. To maintain the transformations on the result of the dependency graph, the result is placed under the same transform as the original node. The new node would have the same DAG transforms applied as the original, but would be modified in some way (for example, its CVs could have been moved). When this happens, only the final product is visible in an interactive window, and the original nodes are historical.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "DAG Hierarchy","href":"./files/DAG_Hierarchy.htm"}]},
{"title":"DAG walking example",
"href":"./files/DAG_Hierarchy_DAG_walking_example.htm",
"description":"The following example is the scanDagSyntaxCmd example. It demonstrates iterating through the DAG in either a depth first, or a breadth first manner. This code makes a good basis for many DAG walking plug-ins, in particular those written as file translators.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "DAG Hierarchy","href":"./files/DAG_Hierarchy.htm"}]},
{"title":"Dependency graph plug-ins",
"href":"./files/Dependency_graph_plugins.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"Overview of dependency graph plug-ins",
"href":"./files/Dependency_graph_plugins_Overview_of_dependency_graph_plugins.htm",
"description":"The dependency graph is the heart of Maya. It is used for animation and construction history. You can add new nodes to this graph to allow for entirely new operations.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Dependency graph plug-ins","href":"./files/Dependency_graph_plugins.htm"}]},
{"title":"Parent class descriptions",
"href":"./files/Dependency_graph_plugins_Parent_class_descriptions.htm",
"description":"Twelve different parent classes are defined from which you can subclass a new node. Each parent class specializes in a different functional area of Maya. The parent classes are:",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Dependency graph plug-ins","href":"./files/Dependency_graph_plugins.htm"}]},
{"title":"The basics",
"href":"./files/Dependency_graph_plugins_The_basics.htm",
"description":"The following is a simple user-defined dependency graph node subclasses from the MPxNode parent class which takes a floating point number as input, takes the sine of it, and outputs the result.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Dependency graph plug-ins","href":"./files/Dependency_graph_plugins.htm"}]},
{"title":"Dependency Graph (DG) nodes",
"href":"./files/Dependency_graph_plugins_Dependency_Graph_DG_nodes.htm",
"description":"The dependency graph (DG) is a collection of entities connected together. Unlike the DAG, these connections can be cyclic, and do not represent a parenting relationship. Instead, the connections in the graph allow data to move from one entity in the graph to another. The entities in the graph which accept and output data are called dependency graph nodes.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Dependency graph plug-ins","href":"./files/Dependency_graph_plugins.htm"}]},
{"title":"Nodes",
"href":"./files/Dependency_graph_plugins_Nodes.htm",
"description":"Nodes are the engines which drive the dependency graph. Data comes in to nodes, they perform an operation on the data, and they make the new data available again. The data comes in through the input plugs (instantiations of the nodes attributes) and goes out through the output plugs. At no time should a node require any additional external data beyond what is available through its plugs.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Dependency graph plug-ins","href":"./files/Dependency_graph_plugins.htm"}]},
{"title":"Attributes and plugs",
"href":"./files/Dependency_graph_plugins_Attributes_and_plugs.htm",
"description":"A node by itself without any means to affect it is not very useful. Modification of a node is done through attributes and plugs.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Dependency graph plug-ins","href":"./files/Dependency_graph_plugins.htm"}]},
{"title":"Complex Attributes",
"href":"./files/Dependency_graph_plugins_Complex_Attributes.htm",
"description":"By default, attributes have only one associated plug. These are called simple attributes. An attribute can also be defined as containing an arbitrarily long list of plugs. Attributes of this type are called array attributes and the plugs in the array are called elements. Each element plug can contain its own value and can have its own connection, and the array can be sparse. The data type of each element is defined to be the type specified by the attribute. Each element in the array is identified by its sparse index into the array.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Dependency graph plug-ins","href":"./files/Dependency_graph_plugins.htm"}]},
{"title":"Data blocks",
"href":"./files/Dependency_graph_plugins_Data_blocks.htm",
"description":"A data block is the storage object for a node’s data. It maintains the received and sent data of the node, and is only valid during the execution of a node’s compute function. A pointer to the data block must not be maintained after the compute function exits.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Dependency graph plug-ins","href":"./files/Dependency_graph_plugins.htm"}]},
{"title":"Data handles",
"href":"./files/Dependency_graph_plugins_Data_handles.htm",
"description":"A data handle is a reference into the data block which references a particular piece (attribute or plug) of the node’s data. The type used to get or set the data on an attribute or plug must match the type of the attribute. For example, if an attribute is declared as an integer attribute, you should not use the data handle to get or set it as a float, matrix, or even a short—you should only get or set it as an integer.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Dependency graph plug-ins","href":"./files/Dependency_graph_plugins.htm"}]},
{"title":"Data creators",
"href":"./files/Dependency_graph_plugins_Data_creators.htm",
"description":"Data creators are classes used to create data to be put into a data block, most likely to an output plug of a node. Data creators are not required for simple data types such as integers and floating point values, but are necessary for heavier data such as mesh shapes and NURBS surfaces.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Dependency graph plug-ins","href":"./files/Dependency_graph_plugins.htm"}]},
{"title":"Compute methods",
"href":"./files/Dependency_graph_plugins_Compute_methods.htm",
"description":"The implementation of a dependency graph node is little more than assigning attributes and coding a compute method. The DG node is a C++ class, with the attributes being static class members. Instances of the class make up individual instances of the DG node in the graph. Plugs are separate objects which indicate the state of a particular attribute for a node.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Dependency graph plug-ins","href":"./files/Dependency_graph_plugins.htm"}]},
{"title":"A more complex example",
"href":"./files/Dependency_graph_plugins_A_more_complex_example.htm",
"description":"The following are fragments from a slightly more complex example than the previous example. The code fragments are taken from the simpleLoftNode example which takes a curve as input and generates a surface.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Dependency graph plug-ins","href":"./files/Dependency_graph_plugins.htm"}]},
{"title":"MPxNode and its derived classes",
"href":"./files/Dependency_graph_plugins_MPxNode_and_its_derived_classes.htm",
"description":"The MPxNode class is the parent class from which the other functionally-specific MPx classes are defined. These derived classes possess specific knowledge corresponding to their functional area for integrating your class into Maya. For example, the MPxLocator class knows that it must draw itself in different colors depending on whether it is selected or not. Each parent class defines a set of attributes which Maya expects and can automatically connect to when your subclass is used in a scene. The compute() method that you will define with your subclass can use these attributes as desired. Refer to the manual pages for the various MPx parent classes for a listing and description of the predefined attributes.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Dependency graph plug-ins","href":"./files/Dependency_graph_plugins.htm"}]},
{"title":"Manipulators",
"href":"./files/Manipulators.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"Overview of creating manipulators",
"href":"./files/Manipulators_Overview_of_creating_manipulators.htm",
"description":"This chapter describes how to create manipulators in Maya.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Manipulators","href":"./files/Manipulators.htm"}]},
{"title":"What is a manipulator?",
"href":"./files/Manipulators_What_is_a_manipulator_.htm",
"description":"A manipulator is a node that draws itself using 3D graphical elements that respond to user events. Manipulators translate the events into values which are used to modify attribute values of other nodes in a scene. The attribute values are modified directly by the manipulator and not through the standard plug and connection mechanism used by other dependency graph nodes.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Manipulators","href":"./files/Manipulators.htm"}]},
{"title":"Base manipulators",
"href":"./files/Manipulators_Base_manipulators.htm",
"description":"The OpenMaya API supports 10 base manipulator classes that can be combined to form a composite manipulator.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Manipulators","href":"./files/Manipulators.htm"}]},
{"title":"Writing a manipulator",
"href":"./files/Manipulators_Writing_a_manipulator.htm",
"description":"Writing a manipulator involves defining a subclass of the MPxManipContainer class, adding base manipulators to the container manipulator, and defining associations between the manipulator and the attributes on the nodes they affect. Even if your manipulator consists of only one base manipulator, it is necessary to create a container manipulator and add the base manipulator to it.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Manipulators","href":"./files/Manipulators.htm"}]},
{"title":"Manipulator containers",
"href":"./files/Manipulators_Manipulator_containers.htm",
"description":"MPxManipContainer is the parent class of user-defined container manipulators. User-defined container manipulators are comprised of one or more base manipulators. There are a number of methods on MPxManipContainer that allow you to add a variety of base manipulators to the container. There are also a number of methods you need to implement on your user-defined manipulator derived from MPxManipContainer.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Manipulators","href":"./files/Manipulators.htm"}]},
{"title":"Communication between manipulators and nodes",
"href":"./files/Manipulators_Communication_between_manipulators_and_nodes.htm",
"description":"Manipulators communicate with plugs on nodes to set the values of those plugs and also to set manipulator values appropriately with respect to the values of the plugs.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Manipulators","href":"./files/Manipulators.htm"}]},
{"title":"Connect manipulators to the Show Manipulator Tool",
"href":"./files/Manipulators_Connect_manipulators_to_the_Show_Manipulator_Tool.htm",
"description":"The Show Manipulator Tool uses Maya manipulators to modify plug values or provide access to the construction history of a node. If you select several objects while in the Show Manipulator Tool, the corresponding manipulator displays for each of the objects selected.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Manipulators","href":"./files/Manipulators.htm"}]},
{"title":"Shapes",
"href":"./files/Shapes.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"Shapes in Maya",
"href":"./files/Shapes_Shapes_in_Maya.htm",
"description":"Shapes in Maya are selectable DAG objects that display in 3D views. Meshes, NURBS surfaces and curves, and locators are just some examples of shapes. Shapes are also dependency graph (DG) nodes that have attributes which can be connected to other nodes.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Shapes","href":"./files/Shapes.htm"}]},
{"title":"Shape classes",
"href":"./files/Shapes_Shape_classes.htm",
"description":"The following lists the proxy classes you will be deriving from:",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Shapes","href":"./files/Shapes.htm"}]},
{"title":"Writing a shape",
"href":"./files/Shapes_Writing_a_shape.htm",
"description":"The goal of writing a shape is to take a geometry class you defined and integrate that geometry into Maya in the form of a DAG object.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Shapes","href":"./files/Shapes.htm"}]},
{"title":"Drawing and refresh",
"href":"./files/Shapes_Drawing_and_refresh.htm",
"description":"Drawing is a two step process. In the first, the geometry and materials are evaluated and all of the information necessary for drawing is placed onto a queue. In the second, the actual OpenGL drawing occurs. This two step process allows your shapes to take advantage of the multi-threaded drawing capabilities of Maya.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Shapes","href":"./files/Shapes.htm"}]},
{"title":"Selection",
"href":"./files/Shapes_Selection.htm",
"description":"When an object is selected in Maya, a selection ray is generated based on the orientation of the camera and the mouse position. Selection happens in two steps—first, all of the object bounding boxes are tested for ray intersection, then the select functions are called for all objects whose bounding boxes were hit.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Shapes","href":"./files/Shapes.htm"}]},
{"title":"Components",
"href":"./files/Shapes_Components.htm",
"description":"Shapes which require visual feedback and manipulation of attributes, such as control point based shapes, must have components associated with those attributes. Shapes such as polygonal meshes or spline surfaces have control vertices which can be selected and manipulated. These control vertices exist as attributes on the shape which are exposed interactively in Maya by representing them as components.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Shapes","href":"./files/Shapes.htm"}]},
{"title":"Tweaks and internal attributes",
"href":"./files/Shapes_Tweaks_and_internal_attributes.htm",
"description":"Shapes that have input history, for instance, another node feeding in input geometry, need some way of storing any offsets (or tweaks) applied to vertex positions. Each time the input geometry changes, the shape has to recompute. By storing any tweaks in a separate attribute, the tweaks can be added to the input vertex positions forming the output geometry.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Shapes","href":"./files/Shapes.htm"}]},
{"title":"Geometry data",
"href":"./files/Shapes_Geometry_data.htm",
"description":"To support sets and deformations, user-defined shapes must be able to pass their own data type through attribute connections. To define some data for your shape, you must derive a new class from MPxGeometryData. This class is similar to MPxData but includes methods to support sets (or groups) and component iteration.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Shapes","href":"./files/Shapes.htm"}]},
{"title":"File IO",
"href":"./files/Shapes_File_IO.htm",
"description":"Shapes which do not define their own data type do not need to add any additional code to support file IO. By default, attributes on your node are saved if they are marked as storable (which is the default) and if there is no input connection to that attribute. If you want to selectively decide which attributes get written and which do not, override the shouldSave() method of MPxNode.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Shapes","href":"./files/Shapes.htm"}]},
{"title":"Deformers",
"href":"./files/Shapes_Deformers.htm",
"description":"Deformers in Maya operate on control point based shapes with components defined for the control points attribute.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Shapes","href":"./files/Shapes.htm"}]},
{"title":"Marking Menus",
"href":"./files/Shapes_Marking_Menus.htm",
"description":"MPxSurfaceShape objects can have an associated marking menu. A MEL function that defines the marking menu for the node must be created with the following name: $nodeName + \"DagMenuProc\". An example is as follows:",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Shapes","href":"./files/Shapes.htm"}]},
{"title":"Example Shapes",
"href":"./files/Shapes_Example_Shapes.htm",
"description":"quadricShape The quadricShape plug-in demonstrates how to create a simple shape based around the OpenGL gluQuadric functions. This plug-in registers a new type of shape with Maya called \"quadricShape",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Shapes","href":"./files/Shapes.htm"}]},
{"title":"Writing a Software Shading Node",
"href":"./files/Writing_a_Shading_Node.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"Overview of shading node plug-ins",
"href":"./files/Writing_a_Shading_Node_Overview_of_shading_node_plugins.htm",
"description":"This chapter details how to create software shading nodes, which are used by Maya\'s Software renderer. For shaders used in rendering Maya\'s interactive scene view, see the chapter on Writing a Hardware Shading Node.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Software Shading Node","href":"./files/Writing_a_Shading_Node.htm"}]},
{"title":"Writing a shading node plug-in",
"href":"./files/Writing_a_Shading_Node_Writing_a_shading_node_plugin.htm",
"description":"Custom dependency graph nodes include the header file:",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Software Shading Node","href":"./files/Writing_a_Shading_Node.htm"}]},
{"title":"Anatomy of a shading node plug-in",
"href":"./files/Writing_a_Shading_Node_Anatomy_of_a_shading_node_plugin.htm",
"description":"Maya Shading node plug-ins include the header file <maya/MPxNode.h> and then derive from the class MPxNode. While this command has a rich set of methods, only a few are actually necessary to create a working shading node.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Software Shading Node","href":"./files/Writing_a_Shading_Node.htm"}]},
{"title":"InterpNode example code walkthrough",
"href":"./files/Writing_a_Shading_Node_InterpNode_example_code_walkthrough.htm",
"description":"Shading node plug-ins rely on the usage of Compound Attributes and Simple Attributes. The mapping of data between rendering samplers and shading networks is by attribute name. This approach is straightforward and easy to learn and remember, and general enough to work with both the present rendering requirements and future enhancements.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Software Shading Node","href":"./files/Writing_a_Shading_Node.htm"}]},
{"title":"Shading nodes classification",
"href":"./files/Writing_a_Shading_Node_Shading_nodes_classification.htm",
"description":"When registering your new shading node in Maya, you can assign a classification to your node that will determine where it appears in the Create Render Node interface. Each classification corresponds to a Tab and Frame in which it appears.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Software Shading Node","href":"./files/Writing_a_Shading_Node.htm"}]},
{"title":"Shading node icons for Hypershade",
"href":"./files/Writing_a_Shading_Node_Shading_node_icons_for_Hypershade.htm",
"description":"For the Create bar, create 32x32 icons in PNG format. The icon name must have the preface \"render_\". For example, for the shader lambertShader.mll, name the icon render_lambertShader.png. You can also supply an icon for the Hypershade graph. This icon can be in SVG or PNG format, and the icon name and the shader name should match. For example, for the shader lambertShader.mll, name the icon lambertShader.svg.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Software Shading Node","href":"./files/Writing_a_Shading_Node.htm"}]},
{"title":"Adding a custom shading node to the Hypershade",
"href":"./files/GUID-98D402D6-AE52-44A8-888D-EBC38C3240D1.htm",
"description":"You can use the renderNodeTypeTreeInitializeUserProc optionVar to add a custom render node or node category to the Hypershade, Assign New Material window, and Create Render Node window. See renderCreateBarUI.mel for more details.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Software Shading Node","href":"./files/Writing_a_Shading_Node.htm"}]},
{"title":"Special shading nodes",
"href":"./files/Writing_a_Shading_Node_Special_shading_nodes.htm",
"description":"Maya also contains special shading nodes—surfaceShader, volumeShader and displacementShader. These nodes do nothing except provide appropriately named attributes. You can connect anything you like to these nodes, which then presents that connection to rendering as the appropriate attribute name. Special mechanisms internal to Maya ensure that these special nodes do not impose any execution time overhead, and so can be used with impunity.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Software Shading Node","href":"./files/Writing_a_Shading_Node.htm"}]},
{"title":"SuperSampling within shading nodes",
"href":"./files/Writing_a_Shading_Node_SuperSampling_within_shading_nodes.htm",
"description":"As explained previously, you can request specific rendering information regarding the current sample position through pre-defined attributes provided during the rendering process. (See Appendix C: Rendering attributes for a complete list of rendering specific attributes and their corresponding names.) However, it is sometimes desirable to describe a hypothetical position and force a shading network evaluation to sample this hypothetical position. Some applications of this technique are bump mapping, and filtering (antialiasing).",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Software Shading Node","href":"./files/Writing_a_Shading_Node.htm"}]},
{"title":"Evaluating shading nodes outside of the rendering context",
"href":"./files/Writing_a_Shading_Node_Evaluating_shading_nodes_outside_of_the_rendering_context.htm",
"description":"Shading nodes can request rendering information regarding the current sample position through pre-defined attributes (See Appendix C: Rendering attributes for a complete list of rendering specific attributes and their corresponding names.). However, these pre-defined attributes are not supplied in a non-rendering context. Evaluation of shading nodes outside of the rendering context is supported using the call MRenderUtil::sampleShadingNetwork.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Software Shading Node","href":"./files/Writing_a_Shading_Node.htm"}]},
{"title":"Writing a Hardware Shading Node",
"href":"./files/Writing_a_Hardware_Shading_Node.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"Overview of hardware shading node plug-ins",
"href":"./files/Writing_a_Hardware_Shading_Node_Overview_of_hardware_shading_node_plugins.htm",
"description":"This chapter details how to create hardware shading nodes, which are used when rendering Maya\'s scene view. For shaders used by the Maya Software Renderer, see chapter on Writing a Software Shading Node.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Hardware Shading Node","href":"./files/Writing_a_Hardware_Shading_Node.htm"}]},
{"title":"Implementing a hardware shading node plug-in",
"href":"./files/Writing_a_Hardware_Shading_Node_Implementing_a_hardware_shading_node_plugin.htm",
"description":"There are two interfaces in MPxHwShaderNode that can be implemented for renderer’s hardware shading node plug-ins. Although the two interfaces are similar when comparing parameters, the ways they are called are quite different.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Hardware Shading Node","href":"./files/Writing_a_Hardware_Shading_Node.htm"}]},
{"title":"A hardware shading node plug-in example",
"href":"./files/Writing_a_Hardware_Shading_Node_A_hardware_shading_node_plugin_example.htm",
"description":"The hwPhongShader node plug-in is available in the Maya API Devkit. In this example, a cube-environment map is used to perform per pixel Phong shading. The light direction is currently fixed at the eye position.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Hardware Shading Node","href":"./files/Writing_a_Hardware_Shading_Node.htm"}]},
{"title":"Improving the performance of hardware shaders",
"href":"./files/Writing_a_Hardware_Shading_Node_Improving_the_performance_of_hardware_shaders.htm",
"description":"The MPxHwShaderNode class contains a method supportsBatching() which controls whether or not rendering calls for this material are batched together to minimize rendering state transitions. By implementing this method and returning true, the MPxHwShaderNode’s pre(bind/glBind) and post(unbind/glUnbind) methods will be called once per-frame, rather than once per-shape per-frame. By default, this method returns false to maintain compatibility with previous plug-in implementations. Please refer to the documentation of this method for more details.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Hardware Shading Node","href":"./files/Writing_a_Hardware_Shading_Node.htm"}]},
{"title":"Hardware Shading node plug-in examples",
"href":"./files/Writing_a_Hardware_Shading_Node_Hardware_Shading_node_plugin_examples.htm",
"description":"The Maya API Devkit contains the following hardware shader node plug-in examples:",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Hardware Shading Node","href":"./files/Writing_a_Hardware_Shading_Node.htm"}]},
{"title":"Writing a Custom Transform Node",
"href":"./files/Writing_a_Custom_Transform_Node.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"Overview of custom transforms",
"href":"./files/Writing_a_Custom_Transform_Node_Overview_of_custom_transforms.htm",
"description":"The Maya API provides a proxy class that allows for the creation and manipulation of custom transform nodes. Custom transforms are an advanced Maya API topic. Standard transform nodes in Maya are very important since all shape and geometry nodes must have transform nodes above them in the Directed Acyclic Graph (DAG). However, custom transforms give you a finer level of control over transform nodes in Maya.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Custom Transform Node","href":"./files/Writing_a_Custom_Transform_Node.htm"}]},
{"title":"Implementing a custom transform",
"href":"./files/Writing_a_Custom_Transform_Node_Implementing_a_custom_transform.htm",
"description":"When implementing a custom transform, you need to build the transform, configure its attributes, and so on.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Custom Transform Node","href":"./files/Writing_a_Custom_Transform_Node.htm"}]},
{"title":"Example custom transform",
"href":"./files/Writing_a_Custom_Transform_Node_Example_custom_transform.htm",
"description":"The following are examples of custom transform usage.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Custom Transform Node","href":"./files/Writing_a_Custom_Transform_Node.htm"}]},
{"title":"Custom Transform node examples",
"href":"./files/Writing_a_Custom_Transform_Node_Custom_Transform_node_examples.htm",
"description":"The developer kit contains two custom transform examples:",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Custom Transform Node","href":"./files/Writing_a_Custom_Transform_Node.htm"}]},
{"title":"Writing a Deformer Node",
"href":"./files/Writing_a_Deformer_Node.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"Overview of Deformers",
"href":"./files/Writing_a_Deformer_Node_Overview_of_Deformers.htm",
"description":"Deformers are nodes that allow you to modify input geometry in order to create different output geometry. Writing a deformer plug-in allows you to implement your own deformation algorithm to suit your application.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Deformer Node","href":"./files/Writing_a_Deformer_Node.htm"}]},
{"title":"Implementing a Deformer Node",
"href":"./files/Writing_a_Deformer_Node_Implementing_a_Deformer_Node.htm",
"description":"Deformers are implemented by deriving from the MPxDeformerNode class. Any deformer that is derived from this class also acquires the full benefits of Maya’s internal deformer functionality. Please see the API description of MPxDeformerNode for more detailed and updated information.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Deformer Node","href":"./files/Writing_a_Deformer_Node.htm"}]},
{"title":"Deformer Node Example",
"href":"./files/Writing_a_Deformer_Node_Deformer_Node_Example.htm",
"description":"This section describes the offsetNode plug-in, which is an example of a deformer node. This plug-in is available through the Maya API Devkit.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Deformer Node","href":"./files/Writing_a_Deformer_Node.htm"}]},
{"title":"Deformer Examples",
"href":"./files/Writing_a_Deformer_Node_Deformer_Examples.htm",
"description":"The developer kit contains the following deformer examples:",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing a Deformer Node","href":"./files/Writing_a_Deformer_Node.htm"}]},
{"title":"Writing File Translators",
"href":"./files/Writing_File_Translators.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"Overview of File Translators",
"href":"./files/W_File_Trans_Overview_of_File_Translators.htm",
"description":"File Translators can be created with a proxy class provided by the Maya API. Translators allow many types of information to flow in and out of Maya, which can create a flexible production pipeline.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing File Translators","href":"./files/Writing_File_Translators.htm"}]},
{"title":"Implementing a File Translator",
"href":"./files/W_File_Trans_Implementing_a_File_Translator.htm",
"description":"When creating a file translator, you must derive from the MPxFileTranslator class and consider which types of methods are required for your translator.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing File Translators","href":"./files/Writing_File_Translators.htm"}]},
{"title":"Accessing MEL commands",
"href":"./files/GUID-06F06DBF-C6E5-4015-9C4E-43F28D645784.htm",
"description":"Set the requiresFullMel argument in the MFnPlugin::registerTranslator function to true to allow the translator to access all MEL commands instead of just the ones used by mayaAscii. This argument is false by default.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing File Translators","href":"./files/Writing_File_Translators.htm"}]},
{"title":"File Translator Examples",
"href":"./files/W_File_Trans_File_Translator_Examples.htm",
"description":"The following examples demonstrate the usage of file translators.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing File Translators","href":"./files/Writing_File_Translators.htm"}]},
{"title":"File Translator Examples in the developer kit",
"href":"./files/W_File_Trans_File_Translator_Examples_dev_kit.htm",
"description":"The developer kit contains the following file translator examples:",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Writing File Translators","href":"./files/Writing_File_Translators.htm"}]},
{"title":"Viewport 2.0 API",
"href":"./files/GUID-C293A725-D113-44D3-9955-E3CF9ACB7628.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"Overview of the Viewport 2.0 API",
"href":"./files/GUID-F9186AE7-5CC7-4CB8-9756-5A302ADCE92C.htm",
"description":"Maya 2012 introduced a new set of API classes for defining custom drawing, shading and effects in both Viewport 2.0 and Hardware Renderer 2.0 (the new batch/render view version of Viewport 2.0).",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Viewport 2.0 API","href":"./files/GUID-C293A725-D113-44D3-9955-E3CF9ACB7628.htm"}]},
{"title":"Data Classes",
"href":"./files/GUID-C16CA3BB-5BCA-473F-9025-8676AB3EF914.htm",
"description":"These objects describe the renderable geometry in the scene, and present a thin (but obvious) abstraction over the underlying GPU resources they represent. They\'re used by shapes to describe the renderable geometry (this applies to both Maya\'s internal shapes and plugin shapes). And they\'re used by shaders to bind and render the geometry (again, this applies to both Maya\'s internal shaders and plugin shaders). This clean separation means that custom shaders can work with Maya shapes, Maya shaders can work with custom shapes, and custom shaders and custom shapes can also work together.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Viewport 2.0 API","href":"./files/GUID-C293A725-D113-44D3-9955-E3CF9ACB7628.htm"}]},
{"title":"Scene Overrides",
"href":"./files/GUID-9496C634-9C18-49D4-A18C-D16600F73848.htm",
"description":"The scene override classes allow plugins to override elements of the 3d scene graph, including geometry, shaders, and other renderable elements. These classes provide new APIs to replace the old rendering code in MPxLocator, MPxSurfaceShape , MPxComponentShape, MPxHwShader, and MPxHardwareShader. User plugins can continue to derive off these existing base classes; however, you\'ll need to register one of the following overrides to define your custom rendering logic in the new viewport. This also means you can leave your existing rendering code in place, allowing your plugin to work simultaneously in both the old and new viewports as you transition your pipeline across. The old viewport will continue to call into the old code, and the new viewport will use the overrides defined below.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Viewport 2.0 API","href":"./files/GUID-C293A725-D113-44D3-9955-E3CF9ACB7628.htm"}]},
{"title":"Rendering Overrides",
"href":"./files/GUID-FBDD64EE-AD07-4EA2-A07A-D792B5B5DE0C.htm",
"description":"This section describes the new rendering interface. The term pass is not used on purpose to avoid confusion with the existing Mental Ray based “render passes” system. This is not a wrapper for that system. This is instead intended to subsume the existing hardware “multi-pass” interface which is exposed in MPx3dModelView.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Viewport 2.0 API","href":"./files/GUID-C293A725-D113-44D3-9955-E3CF9ACB7628.htm"}]},
{"title":"Framework Classes",
"href":"./files/GUID-24BAA64A-DAEA-43DB-8FF0-5625F371AE67.htm",
"description":"The framework classes give plugins access to Maya’s internal rendering framework objects, including state and resource management, rendering context and override management.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Viewport 2.0 API","href":"./files/GUID-C293A725-D113-44D3-9955-E3CF9ACB7628.htm"}]},
{"title":"Transition Guide",
"href":"./files/GUID-7E935B18-FFBB-4DD3-82EA-A2175CF7795C.htm",
"description":"MPxLocator Support for Maya nodes implementing the MPxLocator interface can be added by providing an implementation of MPxDrawOverride and registering it with MDrawRegistry against a classification",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Viewport 2.0 API","href":"./files/GUID-C293A725-D113-44D3-9955-E3CF9ACB7628.htm"}]},
{"title":"Devkit Samples",
"href":"./files/GUID-9A5432D0-FA89-4E64-8277-22DC81680B20.htm",
"description":"footPrintNode The footPrintNode plugin is an example of using MPxLocator. It has been updated to provide a simple Viewport 2.0 implementation as well as an example of using MPxDrawOverride. Not all d",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Viewport 2.0 API","href":"./files/GUID-C293A725-D113-44D3-9955-E3CF9ACB7628.htm"}]},
{"title":"Multithreading plug-ins",
"href":"./files/GUID-D01F66DA-E052-4B07-8583-8D7BB0018229.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"Introduction",
"href":"./files/GUID-AED4F62C-A649-4079-940D-7713BA8FC738.htm",
"description":"The advent of multicore systems combined with the lower rate of increase in single processor performance means that it has become necessary for developers to turn to threading to continue to increase performance at historical rates. This is particularly important for processor intensive applications such as Maya and associated plug-ins.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Multithreading plug-ins","href":"./files/GUID-D01F66DA-E052-4B07-8583-8D7BB0018229.htm"}]},
{"title":"Data and Task Parallelism",
"href":"./files/GUID-5BF47FF3-C9C0-4DFD-8240-CD88BAC2B002.htm",
"description":"At a high level there are two ways of decomposing work into multiple threads. Data parallelism involves performing the same operation on multiple data elements in parallel. A typical example would be evaluating a loop, where each thread works on a part of the loop range. The benefit of data parallelism is that it can usually scale to high core counts if there is sufficient work in the loop. The downside is that it is limited to certain types of workload.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Multithreading plug-ins","href":"./files/GUID-D01F66DA-E052-4B07-8583-8D7BB0018229.htm"}]},
{"title":"Threads",
"href":"./files/GUID-BA466FAA-0C80-4CAA-9E87-339DFC4AAE1E.htm",
"description":"This following describes the lowest level threading concepts. An understanding of these concepts is essential for any developer working with threaded code.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Multithreading plug-ins","href":"./files/GUID-D01F66DA-E052-4B07-8583-8D7BB0018229.htm"}]},
{"title":"Locks",
"href":"./files/GUID-927AD891-F772-4FF2-B8FA-B711098E659B.htm",
"description":"Locks are operators that define a region of code such that only a single thread can traverse that code at any given time. Locks are also known as mutexes (mutual exclusions), although that term can have slightly different meanings on different OS’s. A typical example is to protect multiple simultaneous write operations to a global variable from different threads. For example, if this code is called from multiple threads:",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Multithreading plug-ins","href":"./files/GUID-D01F66DA-E052-4B07-8583-8D7BB0018229.htm"}]},
{"title":"OpenMP",
"href":"./files/GUID-D406310F-086C-4D33-8AF3-023692E7A50F.htm",
"description":"OpenMP overview OpenMP is a higher level threading abstraction primarily designed for data parallelism applied to for loops. It is supported by VS2005 and by the Intel compiler on all platforms. The",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Multithreading plug-ins","href":"./files/GUID-D01F66DA-E052-4B07-8583-8D7BB0018229.htm"}]},
{"title":"Intel Threading Building Blocks (TBB)",
"href":"./files/GUID-328D2310-7F66-4F35-8055-BB10D7B45D5F.htm",
"description":"Overview of TBB TBB is a relatively new higher level API for threading, supplied by Intel. It replaces the concept of threads with the concept of tasks, which are defined by the user and queued up. T",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Multithreading plug-ins","href":"./files/GUID-D01F66DA-E052-4B07-8583-8D7BB0018229.htm"}]},
{"title":"Threading Challenges",
"href":"./files/GUID-3435C604-A3F2-40EC-A50E-BE3018985F41.htm",
"description":"Correctness One of the most common threading problems is the race condition, where two threads attempt to modify the same data. Modifying a data element is not usually an atomic operation, meaning it",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Multithreading plug-ins","href":"./files/GUID-D01F66DA-E052-4B07-8583-8D7BB0018229.htm"}]},
{"title":"Memory allocation",
"href":"./files/GUID-95DFEBE9-28EE-427D-A846-1EB30693184D.htm",
"description":"Heap memory Standard operations such as malloc allocate from the global heap. As a result, these operations are serialized with locks. When many threads are accessing the heap, this can become a bott",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Multithreading plug-ins","href":"./files/GUID-D01F66DA-E052-4B07-8583-8D7BB0018229.htm"}]},
{"title":"Threading and Maya",
"href":"./files/GUID-2BEF58D3-6162-4235-A6CE-3D8B0742A0AE.htm",
"description":"Maya API threading interface, description and examples Having laid the groundwork by describing required threading functionality, this section discusses the functionality provided by the Maya API, an",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Multithreading plug-ins","href":"./files/GUID-D01F66DA-E052-4B07-8583-8D7BB0018229.htm"}]},
{"title":"Other types of parallelism",
"href":"./files/GUID-FCEC5148-745B-4D13-8E08-73F8AFAC74E3.htm",
"description":"Vectorization Vector SSE instructions allow multiple identical operations to be done in parallel on adjacent data values. Four floating point operations or two double precision operations may be exec",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Multithreading plug-ins","href":"./files/GUID-D01F66DA-E052-4B07-8583-8D7BB0018229.htm"}]},
{"title":"Python threading and Maya",
"href":"./files/GUID-9297CCA2-CB1D-4B29-8922-B689F7B6E553.htm",
"description":"One important difference between Python threads and C++-based threads is that python threads do not run concurrently since the Python interpreter itself is not currently threadsafe. For this reason, they are not useful for data parallel applications. However, they may be useful, for example, where polling of resources is done that might otherwise have to wait for timeouts.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Multithreading plug-ins","href":"./files/GUID-D01F66DA-E052-4B07-8583-8D7BB0018229.htm"}]},
{"title":"Third party tools",
"href":"./files/GUID-C841A43B-FE50-4D92-BFE8-6ED3BF8A5D16.htm",
"description":"Threading Analysis tools Intel ThreadChecker This is a very useful tool that catches actual and potential race conditions in traversed code paths. It requires instrumentation and slows down runtimes",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Multithreading plug-ins","href":"./files/GUID-D01F66DA-E052-4B07-8583-8D7BB0018229.htm"}]},
{"title":"API Classes and plug-ins",
"href":"./files/GUID-8678AAA7-0A59-423F-A6BA-D4B98F2A00E9.htm",
"description":"API Classes MThreadPool, MThreadAsync, MSpinLock, MMutexLock - main threading classes, described in detail in this chapter. Added in Maya 2008. MAtomic.h - cross-platform atomic operations. Added i",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Multithreading plug-ins","href":"./files/GUID-D01F66DA-E052-4B07-8583-8D7BB0018229.htm"}]},
{"title":"Mac OS X platform specific pthreads issues",
"href":"./files/GUID-EE052898-C59C-438A-9A77-798F5BEB7A77.htm",
"description":"Although the Mac OSX pthreads implementation complies with the POSIX standard, it does not include all the pthreads and associated functionality available on Linux. Functions that are not implemented are available as stubs that return error codes. This can be problematical when porting code that does not rigorously check error return codes, as the code will compile and run but may not function as expected. Here are some specific features of Linux pthreads that are not available on Mac OSX as of the Tiger release:",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Multithreading plug-ins","href":"./files/GUID-D01F66DA-E052-4B07-8583-8D7BB0018229.htm"}]},
{"title":"Vendor-specific OpenMP Issues",
"href":"./files/GUID-A2410500-B582-4A26-BF4F-3282D8663549.htm",
"description":"By default Intel OpenMP threads stay active and spin for 200ms after they complete a task. The spin makes the threads fast to restart, but it consumes CPU cycles. 200ms is a very long time to spin for",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Multithreading plug-ins","href":"./files/GUID-D01F66DA-E052-4B07-8583-8D7BB0018229.htm"}]},
{"title":"Polygon API",
"href":"./files/Polygon_API.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"Overview of Polygon API",
"href":"./files/Polygon_API_Overview_of_Polygon_API.htm",
"description":"The Poly API is the subset of the Maya API that deals with handling polygonal geometry in Maya. This chapter introduces you to the following:",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Polygon API","href":"./files/Polygon_API.htm"}]},
{"title":"How polygons are handled internally",
"href":"./files/Polygon_API_How_polygons_are_handled_internally.htm",
"description":"Basic data structures are used to contain the components that represent the polygon (faces, edges, vertices). These structures are then further encapsulated in polygonal shape nodes to provide structure within the core of the Maya architecture—the dependency graph. Each of these concepts is crucial for manipulating and interfacing with polygons in Maya.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Polygon API","href":"./files/Polygon_API.htm"}]},
{"title":"The five basic polygonal API classes",
"href":"./files/Polygon_API_The_five_basic_polygonal_API_classes.htm",
"description":"The Poly API consists of five main classes:",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Polygon API","href":"./files/Polygon_API.htm"}]},
{"title":"Construction History and Tweaks",
"href":"./files/Polygon_API_Construction_History_and_Tweaks.htm",
"description":"This section assumes basic knowledge of the dependency graph. For details, see Dependency Graph (DG) nodes.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Polygon API","href":"./files/Polygon_API.htm"}]},
{"title":"polyModifierCmd example",
"href":"./files/Polygon_API_polyModifierCmd_example.htm",
"description":"The source code for polyModifierCmd is located in the devkit\\plug-ins directory.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Polygon API","href":"./files/Polygon_API.htm"}]},
{"title":"splitUVCmd example",
"href":"./files/Polygon_API_splitUVCmd_example.htm",
"description":"(Source code is located in the devkit plug-ins directory.)",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Polygon API","href":"./files/Polygon_API.htm"}]},
{"title":"Poly exporter plug-ins",
"href":"./files/Polygon_API_Poly_exporter_plugins.htm",
"description":"These are two new example exporter plug-ins that demonstrate how to extract polygonal data from Maya using the Poly API. The two exporters write out data in raw text and Extensible 3D (X3D) formats respectively. The functionality is split into two components, one that extracts the data from Maya and stores it in intermediate data structures, and the second that writes the data to a file in the required format. These two components are implemented as pure virtual base classes from which the user derives to implement export to a specific format. More detailed comments are in the source code.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Polygon API","href":"./files/Polygon_API.htm"}]},
{"title":"Working with Qt",
"href":"./files/GUID-425A47F0-3955-490E-A18A-FBB3916F585E.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"Overview of Maya\'s Qt UI",
"href":"./files/GUID-D6567F97-012D-4F45-B252-C3112EBAE859.htm",
"description":"Maya\'s user interface (UI) is built using MEL and Python commands which create UI elements such as buttons and input fields using a combination of custom and native widgets.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Working with Qt","href":"./files/GUID-425A47F0-3955-490E-A18A-FBB3916F585E.htm"}]},
{"title":"Using the loadUI Command",
"href":"./files/GUID-CEC1D76B-7568-4DCA-B80B-1DE49362492C.htm",
"description":"Qt\'s Designer tool can be used to interactively create graphical interfaces and save them out in a portable XML format. Maya provides the command which can be used by MEL and Python scripts to load these files into Maya and translate them, where possible, into standard Maya controls.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Working with Qt","href":"./files/GUID-425A47F0-3955-490E-A18A-FBB3916F585E.htm"}]},
{"title":"Using Qt in Plug-ins",
"href":"./files/GUID-13434252-F0BF-4AC0-B47B-09BD626B0881.htm",
"description":"Preparing for development Maya ships with only that subset of the Qt libraries which it uses itself. Plug-in developers wanting to work with Qt will have to install Qt separately to gain access to th",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Working with Qt","href":"./files/GUID-425A47F0-3955-490E-A18A-FBB3916F585E.htm"}]},
{"title":"Maya Python API",
"href":"./files/Maya_Python_API.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"Maya Python API 1.0",
"href":"./files/GUID-EC669155-DD0C-4072-A0DC-D24C7FB2AB2D.htm",
"description":"Maya is an \"open\" product which means that anyone outside of Autodesk can change existing features or add entirely new features. Our \"openness\" support includes a Python interface to Maya commands (described elsewhere in the documentation) and a Python interface to the C++ Maya API. We refer to the last item as the Maya Python API. The Maya Python API is available on all of our supported platforms: Microsoft Windows(32 and 64 bit), Linux(64 bit), and Apple Mac OS X.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya Python API","href":"./files/Maya_Python_API.htm"}]},
{"title":"The Development Kit",
"href":"./files/Maya_Python_API_The_Development_Kit.htm",
"description":"The Maya Development Kit has been extended to support the Maya Python API. There are a number of items in the Development Kit that are required for using the Maya Python API.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya Python API","href":"./files/Maya_Python_API.htm"},{"title": "Maya Python API 1.0","href":"./files/GUID-EC669155-DD0C-4072-A0DC-D24C7FB2AB2D.htm"}]},
{"title":"Your First Maya Python Plug-in",
"href":"./files/GUID-B968733D-B288-4DAF-9685-4676DC3E4E94.htm",
"description":"This topic will guide you through the creation and execution of your first Maya Python plug-in.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya Python API","href":"./files/Maya_Python_API.htm"},{"title": "Maya Python API 1.0","href":"./files/GUID-EC669155-DD0C-4072-A0DC-D24C7FB2AB2D.htm"}]},
{"title":"Using the Maya Python API",
"href":"./files/Maya_Python_API_Using_the_Maya_Python_API.htm",
"description":"It is possible to write basic scripts that use the wrapper, iterator and function set classes of the Maya API. These scripts can query and manipulate the Maya model but are not fully integrated into Maya. A scripted plug-in provides a more complex solution that is tightly integrated into Maya. In this section, we discuss how to write both basic and scripted plug-in scripts along with standalone scripts.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya Python API","href":"./files/Maya_Python_API.htm"},{"title": "Maya Python API 1.0","href":"./files/GUID-EC669155-DD0C-4072-A0DC-D24C7FB2AB2D.htm"}]},
{"title":"Differences Between Maya\'s C++ and Python APIs",
"href":"./files/Maya_Python_API_Differences_between_the_C_Maya_API_and_Maya_Python_API.htm",
"description":"The Maya Python API is not an exact copy of the C++ Maya API. We have made changes to the Python bindings for integration purposes.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya Python API","href":"./files/Maya_Python_API.htm"},{"title": "Maya Python API 1.0","href":"./files/GUID-EC669155-DD0C-4072-A0DC-D24C7FB2AB2D.htm"}]},
{"title":"Maya Python API 2.0",
"href":"./files/GUID-AC9B3C66-90FE-493F-A7B2-44ABBA77CED2.htm",
"description":"Overview The Maya Python API 2.0 is a new version of the Maya Python API which provides a more Pythonic workflow and improved performance. Both the new and old APIs can co-exist in the same script bu",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya Python API","href":"./files/Maya_Python_API.htm"}]},
{"title":"Using the Python API 2.0",
"href":"./files/GUID-B1CD0989-EB49-46BE-934F-F23BFB869142.htm",
"description":"Using the Python API 2.0 The new Python API modules are found in maya.api. For example: import maya.api.OpenMaya as om Module names are the same as in the old API with the exception that the proxy c",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Maya Python API","href":"./files/Maya_Python_API.htm"},{"title": "Maya Python API 2.0","href":"./files/GUID-AC9B3C66-90FE-493F-A7B2-44ABBA77CED2.htm"}]},
{"title":"Distributing Maya Plug-ins",
"href":"./files/GUID-9E096E39-AD0D-4E40-9B2A-9127A2CAD54B.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"Distributing individual files",
"href":"./files/GUID-73920A07-1E5A-4FF6-B658-572B86729802.htm",
"description":"If your Maya add-on consists of a single file, such as a single plug-in, a single script file or a single icon, then it generally makes sense to simply distribute the file itself, possibly in compressed format, and have the end user copy it into the appropriate directory.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Distributing Maya Plug-ins","href":"./files/GUID-9E096E39-AD0D-4E40-9B2A-9127A2CAD54B.htm"}]},
{"title":"Distributing Multi-File Modules",
"href":"./files/GUID-CB76E356-753B-4837-8C5B-3296C14872CA.htm",
"description":"All but the simplest of Maya add-ons involve more than one file. For example, a fully implemented render utility node will have at least three files:",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Distributing Maya Plug-ins","href":"./files/GUID-9E096E39-AD0D-4E40-9B2A-9127A2CAD54B.htm"}]},
{"title":"Maya module paths, folders and versions",
"href":"./files/GUID-130A3F57-2A5D-4E56-B066-6B86F68EEA22.htm",
"description":"Creating a plug-in module allows you to create a distributable installation of a plug-in that can be saved locally or at any network location. This obviates the need to write files into the Maya installation or other hard to manage locations. Through the module file, you can easily change the distribution of your module, such as re-directing the location of many installed plug-ins to a different script folder.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Distributing Maya Plug-ins","href":"./files/GUID-9E096E39-AD0D-4E40-9B2A-9127A2CAD54B.htm"}]},
{"title":"Recommended workflow for creating a plug-in module",
"href":"./files/GUID-D969DB47-0F06-4E0F-9801-01ACD5A28274.htm",
"description":"The following is an example of how a plug-in module can be used in a central network location. For more information about the plug-in modules, see Maya module paths, folders and versions.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Distributing Maya Plug-ins","href":"./files/GUID-9E096E39-AD0D-4E40-9B2A-9127A2CAD54B.htm"}]},
{"title":"Limitations of Modules",
"href":"./files/GUID-FA921048-4C8B-44D5-AA80-C3B00EB2B8DE.htm",
"description":"There are some types of files which are not handled automatically by Maya\'s module facility:",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Distributing Maya Plug-ins","href":"./files/GUID-9E096E39-AD0D-4E40-9B2A-9127A2CAD54B.htm"}]},
{"title":"Shared Libraries",
"href":"./files/GUID-E7B113F2-5AFD-4C05-A747-298C06586447.htm",
"description":"If a C++ plug-in links to a custom shared library, special steps must be taken.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Distributing Maya Plug-ins","href":"./files/GUID-9E096E39-AD0D-4E40-9B2A-9127A2CAD54B.htm"},{"title": "Limitations of Modules","href":"./files/GUID-FA921048-4C8B-44D5-AA80-C3B00EB2B8DE.htm"}]},
{"title":"mental ray Shaders",
"href":"./files/GUID-9ACA66BB-2830-4838-9A8B-10147B36FCC5.htm",
"description":"Shader definition files (those ending in .mi) must go into either Maya\'s own mentalray/include directory or one of the directories in the user\'s MI_CUSTOM_SHADER_PATH environment variable.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Distributing Maya Plug-ins","href":"./files/GUID-9E096E39-AD0D-4E40-9B2A-9127A2CAD54B.htm"},{"title": "Limitations of Modules","href":"./files/GUID-FA921048-4C8B-44D5-AA80-C3B00EB2B8DE.htm"}]},
{"title":"Technical Notes",
"href":"./files/Technical_Notes.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"Generic Attributes",
"href":"./files/Technical_Notes_Generic_Attributes.htm",
"description":"In this section of the Maya API documentation, we will describe parts of the Maya API that are important but are not large enough for an entire chapter.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Technical Notes","href":"./files/Technical_Notes.htm"}]},
{"title":"Threading and Maya API",
"href":"./files/Technical_Notes_Threading_and_Maya_API.htm",
"description":"Plug-ins can utilize threaded code if certain guidelines are followed. Below are some notes that provide guidance for this issue:",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Technical Notes","href":"./files/Technical_Notes.htm"}]},
{"title":"Internationalizing plug-ins",
"href":"./files/Technical_Notes_Internationalizing_plugins.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Technical Notes","href":"./files/Technical_Notes.htm"}]},
{"title":"Overview of the Maya API Internationalization Architecture",
"href":"./files/GUID-0B82C890-45DA-49AE-91C3-41997DD90E58.htm",
"description":"Maya is an internationalized application. It can support alternate languages in its user interface and it is compatible with localized user environments requiring either single-byte or multi-byte text encodings.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Technical Notes","href":"./files/Technical_Notes.htm"},{"title": "Internationalizing plug-ins","href":"./files/Technical_Notes_Internationalizing_plugins.htm"}]},
{"title":"Internationalization Process",
"href":"./files/GUID-258601E3-3783-4709-8DD7-916BD60FD918.htm",
"description":"Internationalization enables the plug-in to support localized strings in its user interface and to operate correctly in localized environments. The process of localizing the string resources is a separate set of steps outlined later in this document. Localization can take place any time after the plug-in has been internationalized, the plug-in will continue to work using the default resource values until translations are available.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Technical Notes","href":"./files/Technical_Notes.htm"},{"title": "Internationalizing plug-ins","href":"./files/Technical_Notes_Internationalizing_plugins.htm"}]},
{"title":"Localization Process",
"href":"./files/GUID-A4ADB6DC-91FE-4455-A0E3-844210332915.htm",
"description":"After the plug-in has been internationalized, string resources can be extracted and sent for translation. It is important to note that the process of localization can be deferred. The plug-in will continue to run with its default resource values if the localized versions are not available.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Technical Notes","href":"./files/Technical_Notes.htm"},{"title": "Internationalizing plug-ins","href":"./files/Technical_Notes_Internationalizing_plugins.htm"}]},
{"title":"Example code",
"href":"./files/GUID-9BAC49B3-E1BB-4A4F-A34D-1D1F1EEEF96F.htm",
"description":"The following source code, taken from the closestPointOnCurve plug-in, demonstrates how it was modified to support localized user interface strings. Relevant changes have been italicized. The complete set of source code for this plug-in is available as part of the Maya Bonus Tools.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Technical Notes","href":"./files/Technical_Notes.htm"},{"title": "Internationalizing plug-ins","href":"./files/Technical_Notes_Internationalizing_plugins.htm"}]},
{"title":"Translated version of the closestPointOnCurve.pres.mel resource file",
"href":"./files/GUID-566C02E9-FEFE-4DE3-938A-8C629F6DF608.htm",
"description":"The translated version of the resource file for Japanese is shown below. The closestPointOnCurve plug-in is a plug-in module, which is installed within a standard module directory structure defined along the MAYA_MODULE_PATH. The Japanese version of the closestPointOnCurve.pres.mel file is placed in the resources/ja_JP directory.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Technical Notes","href":"./files/Technical_Notes.htm"},{"title": "Internationalizing plug-ins","href":"./files/Technical_Notes_Internationalizing_plugins.htm"}]},
{"title":"Example Plug-ins",
"href":"./files/Example_Plugins.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"Overview of example plug-ins",
"href":"./files/Example_Plugins_Overview_of_example_plugins.htm",
"description":"There are a large number of example plug-ins supplied with the Maya Development Tool Kit. These are described in this chapter to help you find one that demonstrates the operation you are trying to accomplish. The following naming convention is used by the examples so you can tell what kind of plug-in the example is based on its file name.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Example Plug-ins","href":"./files/Example_Plugins.htm"}]},
{"title":"Example stand-alone applications",
"href":"./files/Example_Plugins_Example_standalone_applications.htm",
"description":"Stand-alone applications are those that contain the main routine for the application and make API calls to access Maya in batch mode. They are compiled in a slightly different manner than plug-ins (as covered in Using a debugger to debug your plug-ins), but utilize the same API as plug-ins, and in the same way.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Example Plug-ins","href":"./files/Example_Plugins.htm"}]},
{"title":"Example C++ plug-in descriptions",
"href":"./files/Example_Plugins_Example_C_plugin_descriptions.htm",
"description":"Below are brief descriptions and usage instructions for the C++ plug-ins provided.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Example Plug-ins","href":"./files/Example_Plugins.htm"}]},
{"title":"Example stand-alone application descriptions",
"href":"./files/Example_Plugins_Example_standalone_application_descriptions.htm",
"description":"asciiToBinary This command takes a list of Maya scene files as arguments. For each one, the file is loaded and if the file was in Maya Ascii format, it is written in Maya Binary format to a file wit",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Example Plug-ins","href":"./files/Example_Plugins.htm"}]},
{"title":"Shader source code examples",
"href":"./files/Example_Plugins_Shader_source_code_examples.htm",
"description":"The examples below cover both hardware shaders, which are used when rendering in Maya\'s scene view, and software shading nodes, which are used when rendering using Maya\'s Software renderer.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Example Plug-ins","href":"./files/Example_Plugins.htm"}]},
{"title":"Example Scripted Plug-ins",
"href":"./files/Example_Plugins_Example_Scripted_Plugins.htm",
"description":"There are scripted plug-ins in the Maya development kit that can demonstrate the use of the proxy classes of the Maya Python API.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Example Plug-ins","href":"./files/Example_Plugins.htm"}]},
{"title":"Appendices",
"href":"./files/Appendices.htm",
"description":"",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"Appendix A: NURBS Geometry",
"href":"./files/Appendices_Appendix_A_NURBS_Geometry.htm",
"description":"There are quite a few really good books on spline geometry and NURBS geometry. This appendix will not try to teach you everything about NURBS but will try to give you a general overview of the Maya particulars.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Appendices","href":"./files/Appendices.htm"}]},
{"title":"Appendix B: Dependency graph rendering nodes",
"href":"./files/Appendices_Appendix_B_Dependency_graph_rendering_nodes.htm",
"description":"Node Name Classification ambientLight light blendColors utility/color blinn shader/surface brownian texture/3d bulge texture/2d bump2d utility/general/bump bump3d ut",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Appendices","href":"./files/Appendices.htm"}]},
{"title":"Appendix C: Rendering attributes",
"href":"./files/Appendices_Appendix_C_Rendering_attributes.htm",
"description":"The shading process uses the long names for attributes, so it doesn’t matter what you use for short names. Output Attributes requested by Shading Groups Name Long (short)Data TypeDescription displ",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Appendices","href":"./files/Appendices.htm"}]},
{"title":"Appendix D: Frequently asked questions",
"href":"./files/Appendices_Appendix_D_Frequently_asked_questions.htm",
"description":"This list is a compilation of questions received from programmers using the Maya API. A set of categories has been defined (see the list below), and the questions have been organized into these categories to make the presentation more logical.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Appendices","href":"./files/Appendices.htm"}]},
{"title":"Appendix E: API and Devkit limitations",
"href":"./files/Appendices_Appendix_E_API_and_Devkit_limitations.htm",
"description":"Attribute of a user defined MPxData type An attribute of a user defined MPxData type that is implemented as an attribute on a user defined node will fail to appear in the Outliner window. Using of",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Appendices","href":"./files/Appendices.htm"}]},
{"title":"Appendix F: Adding Image Plug-ins",
"href":"./files/Appendices_Appendix_F_Adding_Image_Plugins.htm",
"description":"Maya features an external plug-in module mechanism that lets you create your own image file translators. This system is specific for adding new image types to Maya and is different from the Maya API. These plug-in modules are available whenever you start your application. You can access them through the list of image file types presented where you access image files.",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"},{"title": "Appendices","href":"./files/Appendices.htm"}]},
{"title":"Autodesk Maya 2013",
"href":"./files/GUID-455BAE43-6E2F-4971-A8CB-EE3E3F6CCAC9.htm",
"description":"Legal Notices Autodesk® Maya® 2013 © 2012 Autodesk, Inc. All rights reserved. Except as otherwise permitted by Autodesk, Inc., this publication, or parts thereof, may not be reproduced in any form,",
"ancestors":[{"title": "API Guide","href":"./files/GUID-6CB5FC23-3775-4210-993A-1C82B05B2996.htm"}]},
{"title":"API Reference: ATIext.cpp",
"href":"cpp_ref/_a_t_iext_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: ATIext.h",
"href":"cpp_ref/_a_t_iext_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: AshliPluginMain.cpp",
"href":"cpp_ref/_ashli_plugin_main_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: D3DGeometryItem.cpp",
"href":"cpp_ref/_d3_d_geometry_item_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: D3DGeometryItem.h",
"href":"cpp_ref/_d3_d_geometry_item_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: D3DResourceManager.cpp",
"href":"cpp_ref/_d3_d_resource_manager_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: D3DResourceManager.h",
"href":"cpp_ref/_d3_d_resource_manager_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: D3DTextureItem.cpp",
"href":"cpp_ref/_d3_d_texture_item_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: D3DTextureItem.h",
"href":"cpp_ref/_d3_d_texture_item_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: D3DViewportRenderer.cpp",
"href":"cpp_ref/_d3_d_viewport_renderer_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: D3DViewportRenderer.h",
"href":"cpp_ref/_d3_d_viewport_renderer_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: D3DViewportRendererPlugin.cpp",
"href":"cpp_ref/_d3_d_viewport_renderer_plugin_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: DefaultShader.cpp",
"href":"cpp_ref/_default_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: DefaultShader.h",
"href":"cpp_ref/_default_shader_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: GLSLShader.h",
"href":"cpp_ref/_g_l_s_l_shader_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: GLSLShaderNode.cpp",
"href":"cpp_ref/_g_l_s_l_shader_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: GLSLShaderNode.h",
"href":"cpp_ref/_g_l_s_l_shader_node_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MNormalMapConverter.cpp",
"href":"cpp_ref/_m_normal_map_converter_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MNormalMapConverter.h",
"href":"cpp_ref/_m_normal_map_converter_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTexture.cpp",
"href":"cpp_ref/_m_texture_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTexture.h",
"href":"cpp_ref/_m_texture_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTextureCache.cpp",
"href":"cpp_ref/_m_texture_cache_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTextureCache.h",
"href":"cpp_ref/_m_texture_cache_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: NodeMonitor.cpp",
"href":"cpp_ref/_node_monitor_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: NodeMonitor.h",
"href":"cpp_ref/_node_monitor_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: Observer.cpp",
"href":"cpp_ref/_observer_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: Observer.h",
"href":"cpp_ref/_observer_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: OpenEXR.cpp",
"href":"cpp_ref/_open_e_x_r_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: OpenGLViewportRenderer.cpp",
"href":"cpp_ref/_open_g_l_viewport_renderer_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: OpenGLViewportRenderer.h",
"href":"cpp_ref/_open_g_l_viewport_renderer_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: OpenGLViewportRendererPlugin.cpp",
"href":"cpp_ref/_open_g_l_viewport_renderer_plugin_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: ResourceManager.cpp",
"href":"cpp_ref/_resource_manager_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: ResourceManager.h",
"href":"cpp_ref/_resource_manager_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: Shader.cpp",
"href":"cpp_ref/_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: Shader.h",
"href":"cpp_ref/_shader_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: ShadingConnection.cpp",
"href":"cpp_ref/_shading_connection_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: ShadingConnection.h",
"href":"cpp_ref/_shading_connection_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: ShapeMonitor.cpp",
"href":"cpp_ref/_shape_monitor_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: ShapeMonitor.h",
"href":"cpp_ref/_shape_monitor_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: XmlGeometryCache.cpp",
"href":"cpp_ref/_xml_geometry_cache_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: affectsNode.cpp",
"href":"cpp_ref/affects_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: animCubeNode.cpp",
"href":"cpp_ref/anim_cube_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: animCubeNode.py",
"href":"cpp_ref/anim_cube_node_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: animExportUtil.cpp",
"href":"cpp_ref/anim_export_util_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: animExportUtil.h",
"href":"cpp_ref/anim_export_util_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: animFileExport.cpp",
"href":"cpp_ref/anim_file_export_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: animFileExport.h",
"href":"cpp_ref/anim_file_export_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: animFileUtils.cpp",
"href":"cpp_ref/anim_file_utils_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: animFileUtils.h",
"href":"cpp_ref/anim_file_utils_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: animImportExport.cpp",
"href":"cpp_ref/anim_import_export_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: animImportExport.h",
"href":"cpp_ref/anim_import_export_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: animImportExportStrings.h",
"href":"cpp_ref/anim_import_export_strings_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: animInfoCmd.cpp",
"href":"cpp_ref/anim_info_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: anisotropicShader.cpp",
"href":"cpp_ref/anisotropic_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: api_macros.h",
"href":"cpp_ref/api_macros_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: apiMeshCreator.cpp",
"href":"cpp_ref/api_mesh_creator_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: apiMeshCreator.h",
"href":"cpp_ref/api_mesh_creator_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: apiMeshData.cpp",
"href":"cpp_ref/api_mesh_data_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: apiMeshData.h",
"href":"cpp_ref/api_mesh_data_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: apiMeshGeom.cpp",
"href":"cpp_ref/api_mesh_geom_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: apiMeshGeom.h",
"href":"cpp_ref/api_mesh_geom_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: apiMeshIterator.cpp",
"href":"cpp_ref/api_mesh_iterator_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: apiMeshIterator.h",
"href":"cpp_ref/api_mesh_iterator_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: apiMeshShape.cpp",
"href":"cpp_ref/api_mesh_shape_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: apiMeshShape.h",
"href":"cpp_ref/api_mesh_shape_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: apiMeshShapeUI.cpp",
"href":"cpp_ref/api_mesh_shape_u_i_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: apiMeshShapeUI.h",
"href":"cpp_ref/api_mesh_shape_u_i_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: apiSimpleShape.cpp",
"href":"cpp_ref/api_simple_shape_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: apiSimpleShape.h",
"href":"cpp_ref/api_simple_shape_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: apiSimpleShapeIterator.cpp",
"href":"cpp_ref/api_simple_shape_iterator_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: apiSimpleShapeIterator.h",
"href":"cpp_ref/api_simple_shape_iterator_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: apiSimpleShapeUI.cpp",
"href":"cpp_ref/api_simple_shape_u_i_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: apiSimpleShapeUI.h",
"href":"cpp_ref/api_simple_shape_u_i_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: arcLenNode.cpp",
"href":"cpp_ref/arc_len_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: arrowData.h",
"href":"cpp_ref/arrow_data_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: asciiToBinary.cpp",
"href":"cpp_ref/ascii_to_binary_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: backfillShader.cpp",
"href":"cpp_ref/backfill_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: basicObjectSet.py",
"href":"cpp_ref/basic_object_set_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: basicShape.py",
"href":"cpp_ref/basic_shape_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: blindComplexDataCmd.cpp",
"href":"cpp_ref/blind_complex_data_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: blindDataMesh.cpp",
"href":"cpp_ref/blind_data_mesh_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: blindDataMesh.h",
"href":"cpp_ref/blind_data_mesh_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: blindDataPluginMain.cpp",
"href":"cpp_ref/blind_data_plugin_main_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: blindDataShader.cpp",
"href":"cpp_ref/blind_data_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: blindDataShader.h",
"href":"cpp_ref/blind_data_shader_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: blindDoubleDataCmd.cpp",
"href":"cpp_ref/blind_double_data_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: blindDoubleDataCmd.py",
"href":"cpp_ref/blind_double_data_cmd_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: blindShortDataCmd.cpp",
"href":"cpp_ref/blind_short_data_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: brickShader.cpp",
"href":"cpp_ref/brick_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: buildRotationNode.cpp",
"href":"cpp_ref/build_rotation_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: cellShader.cpp",
"href":"cpp_ref/cell_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: cgfxAttrDef.cpp",
"href":"cpp_ref/cgfx_attr_def_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: cgfxAttrDef.h",
"href":"cpp_ref/cgfx_attr_def_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: cgfxEffectDef.cpp",
"href":"cpp_ref/cgfx_effect_def_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: cgfxEffectDef.h",
"href":"cpp_ref/cgfx_effect_def_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: cgfxFindImage.cpp",
"href":"cpp_ref/cgfx_find_image_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: cgfxFindImage.h",
"href":"cpp_ref/cgfx_find_image_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: cgfxShaderCmd.cpp",
"href":"cpp_ref/cgfx_shader_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: cgfxShaderCmd.h",
"href":"cpp_ref/cgfx_shader_cmd_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: cgfxShaderCommon.h",
"href":"cpp_ref/cgfx_shader_common_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: cgfxShaderNode.cpp",
"href":"cpp_ref/cgfx_shader_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: cgfxShaderNode.h",
"href":"cpp_ref/cgfx_shader_node_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: cgfxVector.cpp",
"href":"cpp_ref/cgfx_vector_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: cgfxVector.h",
"href":"cpp_ref/cgfx_vector_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: checkerShader.cpp",
"href":"cpp_ref/checker_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: circleNode.cpp",
"href":"cpp_ref/circle_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: circleNode.py",
"href":"cpp_ref/circle_node_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: M3dView Class Reference",
"href":"cpp_ref/class_m3d_view.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MAngle Class Reference",
"href":"cpp_ref/class_m_angle.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MAnimControl Class Reference",
"href":"cpp_ref/class_m_anim_control.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MAnimCurveChange Class Reference",
"href":"cpp_ref/class_m_anim_curve_change.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MAnimCurveClipboard Class Reference",
"href":"cpp_ref/class_m_anim_curve_clipboard.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MAnimCurveClipboardItem Class Reference",
"href":"cpp_ref/class_m_anim_curve_clipboard_item.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MAnimCurveClipboardItemArray Class Reference",
"href":"cpp_ref/class_m_anim_curve_clipboard_item_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MAnimMessage Class Reference",
"href":"cpp_ref/class_m_anim_message.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MAnimUtil Class Reference",
"href":"cpp_ref/class_m_anim_util.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MArgDatabase Class Reference",
"href":"cpp_ref/class_m_arg_database.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MArgList Class Reference",
"href":"cpp_ref/class_m_arg_list.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MArgParser Class Reference",
"href":"cpp_ref/class_m_arg_parser.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MArrayDataBuilder Class Reference",
"href":"cpp_ref/class_m_array_data_builder.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MArrayDataHandle Class Reference",
"href":"cpp_ref/class_m_array_data_handle.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MAtomic Class Reference",
"href":"cpp_ref/class_m_atomic.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MAttributeIndex Class Reference",
"href":"cpp_ref/class_m_attribute_index.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MAttributePattern Class Reference",
"href":"cpp_ref/class_m_attribute_pattern.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MAttributePatternArray Class Reference",
"href":"cpp_ref/class_m_attribute_pattern_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MAttributeSpec Class Reference",
"href":"cpp_ref/class_m_attribute_spec.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MAttributeSpecArray Class Reference",
"href":"cpp_ref/class_m_attribute_spec_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MBoundingBox Class Reference",
"href":"cpp_ref/class_m_bounding_box.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MCacheFormatDescription Class Reference",
"href":"cpp_ref/class_m_cache_format_description.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MCallbackIdArray Class Reference",
"href":"cpp_ref/class_m_callback_id_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MCameraSetMessage Class Reference",
"href":"cpp_ref/class_m_camera_set_message.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MCharBuffer Class Reference",
"href":"cpp_ref/class_m_char_buffer.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MColor Class Reference",
"href":"cpp_ref/class_m_color.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MColorArray Class Reference",
"href":"cpp_ref/class_m_color_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MCommandMessage Class Reference",
"href":"cpp_ref/class_m_command_message.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MCommandResult Class Reference",
"href":"cpp_ref/class_m_command_result.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MCommonRenderSettingsData Class Reference",
"href":"cpp_ref/class_m_common_render_settings_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MCommonSystemUtils Class Reference",
"href":"cpp_ref/class_m_common_system_utils.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MComputation Class Reference",
"href":"cpp_ref/class_m_computation.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MConditionMessage Class Reference",
"href":"cpp_ref/class_m_condition_message.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MContainerMessage Class Reference",
"href":"cpp_ref/class_m_container_message.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MCursor Class Reference",
"href":"cpp_ref/class_m_cursor.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MD3D9Renderer Class Reference",
"href":"cpp_ref/class_m_d3_d9_renderer.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDGContext Class Reference",
"href":"cpp_ref/class_m_d_g_context.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDGMessage Class Reference",
"href":"cpp_ref/class_m_d_g_message.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDGModifier Class Reference",
"href":"cpp_ref/class_m_d_g_modifier.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDagMessage Class Reference",
"href":"cpp_ref/class_m_dag_message.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDagModifier Class Reference",
"href":"cpp_ref/class_m_dag_modifier.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDagPath Class Reference",
"href":"cpp_ref/class_m_dag_path.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDagPathArray Class Reference",
"href":"cpp_ref/class_m_dag_path_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDataBlock Class Reference",
"href":"cpp_ref/class_m_data_block.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDataHandle Class Reference",
"href":"cpp_ref/class_m_data_handle.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDeviceChannel Class Reference",
"href":"cpp_ref/class_m_device_channel.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDeviceState Class Reference",
"href":"cpp_ref/class_m_device_state.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDistance Class Reference",
"href":"cpp_ref/class_m_distance.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDoubleArray Class Reference",
"href":"cpp_ref/class_m_double_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDrawData Class Reference",
"href":"cpp_ref/class_m_draw_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDrawInfo Class Reference",
"href":"cpp_ref/class_m_draw_info.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDrawProcedureBase Class Reference",
"href":"cpp_ref/class_m_draw_procedure_base.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDrawRequest Class Reference",
"href":"cpp_ref/class_m_draw_request.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDrawRequestQueue Class Reference",
"href":"cpp_ref/class_m_draw_request_queue.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDrawTraversal Class Reference",
"href":"cpp_ref/class_m_draw_traversal.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDynSweptLine Class Reference",
"href":"cpp_ref/class_m_dyn_swept_line.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDynSweptTriangle Class Reference",
"href":"cpp_ref/class_m_dyn_swept_triangle.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDynamicsUtil Class Reference",
"href":"cpp_ref/class_m_dynamics_util.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MEulerRotation Class Reference",
"href":"cpp_ref/class_m_euler_rotation.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MEvent Class Reference",
"href":"cpp_ref/class_m_event.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MEventMessage Class Reference",
"href":"cpp_ref/class_m_event_message.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MExternalDropCallback Class Reference",
"href":"cpp_ref/class_m_external_drop_callback.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MExternalDropData Class Reference",
"href":"cpp_ref/class_m_external_drop_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFeedbackLine Class Reference",
"href":"cpp_ref/class_m_feedback_line.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFileIO Class Reference",
"href":"cpp_ref/class_m_file_i_o.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFileObject Class Reference",
"href":"cpp_ref/class_m_file_object.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFloatArray Class Reference",
"href":"cpp_ref/class_m_float_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFloatMatrix Class Reference",
"href":"cpp_ref/class_m_float_matrix.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFloatPoint Class Reference",
"href":"cpp_ref/class_m_float_point.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFloatPointArray Class Reference",
"href":"cpp_ref/class_m_float_point_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFloatVector Class Reference",
"href":"cpp_ref/class_m_float_vector.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFloatVectorArray Class Reference",
"href":"cpp_ref/class_m_float_vector_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFn Class Reference",
"href":"cpp_ref/class_m_fn.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnAirField Class Reference",
"href":"cpp_ref/class_m_fn_air_field.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnAmbientLight Class Reference",
"href":"cpp_ref/class_m_fn_ambient_light.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnAnimCurve Class Reference",
"href":"cpp_ref/class_m_fn_anim_curve.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnAnisotropyShader Class Reference",
"href":"cpp_ref/class_m_fn_anisotropy_shader.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnAreaLight Class Reference",
"href":"cpp_ref/class_m_fn_area_light.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnArrayAttrsData Class Reference",
"href":"cpp_ref/class_m_fn_array_attrs_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnAttribute Class Reference",
"href":"cpp_ref/class_m_fn_attribute.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnBase Class Reference",
"href":"cpp_ref/class_m_fn_base.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnBlendShapeDeformer Class Reference",
"href":"cpp_ref/class_m_fn_blend_shape_deformer.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnBlinnShader Class Reference",
"href":"cpp_ref/class_m_fn_blinn_shader.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnCamera Class Reference",
"href":"cpp_ref/class_m_fn_camera.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnCameraSet Class Reference",
"href":"cpp_ref/class_m_fn_camera_set.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnCharacter Class Reference",
"href":"cpp_ref/class_m_fn_character.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnCircleSweepManip Class Reference",
"href":"cpp_ref/class_m_fn_circle_sweep_manip.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnClip Class Reference",
"href":"cpp_ref/class_m_fn_clip.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnComponent Class Reference",
"href":"cpp_ref/class_m_fn_component.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnComponentListData Class Reference",
"href":"cpp_ref/class_m_fn_component_list_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnCompoundAttribute Class Reference",
"href":"cpp_ref/class_m_fn_compound_attribute.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnContainerNode Class Reference",
"href":"cpp_ref/class_m_fn_container_node.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnCurveSegmentManip Class Reference",
"href":"cpp_ref/class_m_fn_curve_segment_manip.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnDagNode Class Reference",
"href":"cpp_ref/class_m_fn_dag_node.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnData Class Reference",
"href":"cpp_ref/class_m_fn_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnDependencyNode Class Reference",
"href":"cpp_ref/class_m_fn_dependency_node.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnDirectionManip Class Reference",
"href":"cpp_ref/class_m_fn_direction_manip.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnDirectionalLight Class Reference",
"href":"cpp_ref/class_m_fn_directional_light.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnDiscManip Class Reference",
"href":"cpp_ref/class_m_fn_disc_manip.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnDistanceManip Class Reference",
"href":"cpp_ref/class_m_fn_distance_manip.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnDoubleArrayData Class Reference",
"href":"cpp_ref/class_m_fn_double_array_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnDoubleIndexedComponent Class Reference",
"href":"cpp_ref/class_m_fn_double_indexed_component.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnDragField Class Reference",
"href":"cpp_ref/class_m_fn_drag_field.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnDynSweptGeometryData Class Reference",
"href":"cpp_ref/class_m_fn_dyn_swept_geometry_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnEnumAttribute Class Reference",
"href":"cpp_ref/class_m_fn_enum_attribute.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnExpression Class Reference",
"href":"cpp_ref/class_m_fn_expression.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnField Class Reference",
"href":"cpp_ref/class_m_fn_field.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnFluid Class Reference",
"href":"cpp_ref/class_m_fn_fluid.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnFreePointTriadManip Class Reference",
"href":"cpp_ref/class_m_fn_free_point_triad_manip.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnGenericAttribute Class Reference",
"href":"cpp_ref/class_m_fn_generic_attribute.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnGeometryData Class Reference",
"href":"cpp_ref/class_m_fn_geometry_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnGeometryFilter Class Reference",
"href":"cpp_ref/class_m_fn_geometry_filter.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnGravityField Class Reference",
"href":"cpp_ref/class_m_fn_gravity_field.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnHikEffector Class Reference",
"href":"cpp_ref/class_m_fn_hik_effector.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnIkEffector Class Reference",
"href":"cpp_ref/class_m_fn_ik_effector.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnIkHandle Class Reference",
"href":"cpp_ref/class_m_fn_ik_handle.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnIkJoint Class Reference",
"href":"cpp_ref/class_m_fn_ik_joint.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnIkSolver Class Reference",
"href":"cpp_ref/class_m_fn_ik_solver.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnImageSource Class Reference",
"href":"cpp_ref/class_m_fn_image_source.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnInstancer Class Reference",
"href":"cpp_ref/class_m_fn_instancer.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnIntArrayData Class Reference",
"href":"cpp_ref/class_m_fn_int_array_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnKeyframeDelta Class Reference",
"href":"cpp_ref/class_m_fn_keyframe_delta.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnKeyframeDeltaAddRemove Class Reference",
"href":"cpp_ref/class_m_fn_keyframe_delta_add_remove.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnKeyframeDeltaBlockAddRemove Class Reference",
"href":"cpp_ref/class_m_fn_keyframe_delta_block_add_remove.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnKeyframeDeltaBreakdown Class Reference",
"href":"cpp_ref/class_m_fn_keyframe_delta_breakdown.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnKeyframeDeltaInfType Class Reference",
"href":"cpp_ref/class_m_fn_keyframe_delta_inf_type.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnKeyframeDeltaMove Class Reference",
"href":"cpp_ref/class_m_fn_keyframe_delta_move.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnKeyframeDeltaScale Class Reference",
"href":"cpp_ref/class_m_fn_keyframe_delta_scale.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnKeyframeDeltaTangent Class Reference",
"href":"cpp_ref/class_m_fn_keyframe_delta_tangent.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnKeyframeDeltaWeighted Class Reference",
"href":"cpp_ref/class_m_fn_keyframe_delta_weighted.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnLambertShader Class Reference",
"href":"cpp_ref/class_m_fn_lambert_shader.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnLattice Class Reference",
"href":"cpp_ref/class_m_fn_lattice.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnLatticeData Class Reference",
"href":"cpp_ref/class_m_fn_lattice_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnLatticeDeformer Class Reference",
"href":"cpp_ref/class_m_fn_lattice_deformer.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnLayeredShader Class Reference",
"href":"cpp_ref/class_m_fn_layered_shader.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnLight Class Reference",
"href":"cpp_ref/class_m_fn_light.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnLightDataAttribute Class Reference",
"href":"cpp_ref/class_m_fn_light_data_attribute.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnManip3D Class Reference",
"href":"cpp_ref/class_m_fn_manip3_d.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnMatrixAttribute Class Reference",
"href":"cpp_ref/class_m_fn_matrix_attribute.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnMatrixData Class Reference",
"href":"cpp_ref/class_m_fn_matrix_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnMesh Class Reference",
"href":"cpp_ref/class_m_fn_mesh.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnMeshData Class Reference",
"href":"cpp_ref/class_m_fn_mesh_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnMessageAttribute Class Reference",
"href":"cpp_ref/class_m_fn_message_attribute.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnMotionPath Class Reference",
"href":"cpp_ref/class_m_fn_motion_path.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnNIdData Class Reference",
"href":"cpp_ref/class_m_fn_n_id_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnNObjectData Class Reference",
"href":"cpp_ref/class_m_fn_n_object_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnNewtonField Class Reference",
"href":"cpp_ref/class_m_fn_newton_field.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnNonAmbientLight Class Reference",
"href":"cpp_ref/class_m_fn_non_ambient_light.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnNonExtendedLight Class Reference",
"href":"cpp_ref/class_m_fn_non_extended_light.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnNumericAttribute Class Reference",
"href":"cpp_ref/class_m_fn_numeric_attribute.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnNumericData Class Reference",
"href":"cpp_ref/class_m_fn_numeric_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnNurbsCurve Class Reference",
"href":"cpp_ref/class_m_fn_nurbs_curve.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnNurbsCurveData Class Reference",
"href":"cpp_ref/class_m_fn_nurbs_curve_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnNurbsSurface Class Reference",
"href":"cpp_ref/class_m_fn_nurbs_surface.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnNurbsSurfaceData Class Reference",
"href":"cpp_ref/class_m_fn_nurbs_surface_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnParticleSystem Class Reference",
"href":"cpp_ref/class_m_fn_particle_system.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnPartition Class Reference",
"href":"cpp_ref/class_m_fn_partition.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnPfxGeometry Class Reference",
"href":"cpp_ref/class_m_fn_pfx_geometry.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnPhongEShader Class Reference",
"href":"cpp_ref/class_m_fn_phong_e_shader.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnPhongShader Class Reference",
"href":"cpp_ref/class_m_fn_phong_shader.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnPlugin Class Reference",
"href":"cpp_ref/class_m_fn_plugin.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnPluginData Class Reference",
"href":"cpp_ref/class_m_fn_plugin_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnPointArrayData Class Reference",
"href":"cpp_ref/class_m_fn_point_array_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnPointLight Class Reference",
"href":"cpp_ref/class_m_fn_point_light.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnPointOnCurveManip Class Reference",
"href":"cpp_ref/class_m_fn_point_on_curve_manip.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnPointOnSurfaceManip Class Reference",
"href":"cpp_ref/class_m_fn_point_on_surface_manip.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnRadialField Class Reference",
"href":"cpp_ref/class_m_fn_radial_field.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnReflectShader Class Reference",
"href":"cpp_ref/class_m_fn_reflect_shader.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnRenderLayer Class Reference",
"href":"cpp_ref/class_m_fn_render_layer.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnRenderPass Class Reference",
"href":"cpp_ref/class_m_fn_render_pass.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnRotateManip Class Reference",
"href":"cpp_ref/class_m_fn_rotate_manip.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnScaleManip Class Reference",
"href":"cpp_ref/class_m_fn_scale_manip.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnSet Class Reference",
"href":"cpp_ref/class_m_fn_set.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnSingleIndexedComponent Class Reference",
"href":"cpp_ref/class_m_fn_single_indexed_component.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnSkinCluster Class Reference",
"href":"cpp_ref/class_m_fn_skin_cluster.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnSphereData Class Reference",
"href":"cpp_ref/class_m_fn_sphere_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnSpotLight Class Reference",
"href":"cpp_ref/class_m_fn_spot_light.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnStateManip Class Reference",
"href":"cpp_ref/class_m_fn_state_manip.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnStringArrayData Class Reference",
"href":"cpp_ref/class_m_fn_string_array_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnStringData Class Reference",
"href":"cpp_ref/class_m_fn_string_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnSubd Class Reference",
"href":"cpp_ref/class_m_fn_subd.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnSubdData Class Reference",
"href":"cpp_ref/class_m_fn_subd_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnSubdNames Class Reference",
"href":"cpp_ref/class_m_fn_subd_names.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnToggleManip Class Reference",
"href":"cpp_ref/class_m_fn_toggle_manip.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnTransform Class Reference",
"href":"cpp_ref/class_m_fn_transform.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnTripleIndexedComponent Class Reference",
"href":"cpp_ref/class_m_fn_triple_indexed_component.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnTurbulenceField Class Reference",
"href":"cpp_ref/class_m_fn_turbulence_field.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnTypedAttribute Class Reference",
"href":"cpp_ref/class_m_fn_typed_attribute.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnUInt64ArrayData Class Reference",
"href":"cpp_ref/class_m_fn_u_int64_array_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnUint64SingleIndexedComponent Class Reference",
"href":"cpp_ref/class_m_fn_uint64_single_indexed_component.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnUniformField Class Reference",
"href":"cpp_ref/class_m_fn_uniform_field.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnUnitAttribute Class Reference",
"href":"cpp_ref/class_m_fn_unit_attribute.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnVectorArrayData Class Reference",
"href":"cpp_ref/class_m_fn_vector_array_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnVolumeAxisField Class Reference",
"href":"cpp_ref/class_m_fn_volume_axis_field.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnVolumeLight Class Reference",
"href":"cpp_ref/class_m_fn_volume_light.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnVortexField Class Reference",
"href":"cpp_ref/class_m_fn_vortex_field.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnWeightGeometryFilter Class Reference",
"href":"cpp_ref/class_m_fn_weight_geometry_filter.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MFnWireDeformer Class Reference",
"href":"cpp_ref/class_m_fn_wire_deformer.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MGLFunctionTable Class Reference",
"href":"cpp_ref/class_m_g_l_function_table.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MGeometry Class Reference",
"href":"cpp_ref/class_m_geometry.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MGeometryData Class Reference",
"href":"cpp_ref/class_m_geometry_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MGeometryList Class Reference",
"href":"cpp_ref/class_m_geometry_list.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MGeometryManager Class Reference",
"href":"cpp_ref/class_m_geometry_manager.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MGeometryPrimitive Class Reference",
"href":"cpp_ref/class_m_geometry_primitive.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MGeometryRequirements Class Reference",
"href":"cpp_ref/class_m_geometry_requirements.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MGlobal Class Reference",
"href":"cpp_ref/class_m_global.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MBlendState Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_blend_state.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MBlendStateDesc Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_blend_state_desc.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MCameraOverride Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_camera_override.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MClearOperation Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_clear_operation.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MComponentDataIndexing Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_component_data_indexing.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MComponentDataIndexingList Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_component_data_indexing_list.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDepthStencilState Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_depth_stencil_state.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDepthStencilStateDesc Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_depth_stencil_state_desc.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDrawContext Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_draw_context.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MDrawRegistry Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_draw_registry.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MGeometry Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_geometry.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MGeometryExtractor Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_geometry_extractor.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MGeometryRequirements Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_geometry_requirements.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MGeometryUtilities Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_geometry_utilities.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MHUDRender Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_h_u_d_render.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MIndexBuffer Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_index_buffer.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MIndexBufferDescriptor Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_index_buffer_descriptor.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MIndexBufferDescriptorList Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_index_buffer_descriptor_list.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MLightParameterInformation Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_light_parameter_information.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPresentTarget Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_present_target.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxDrawOverride Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_px_draw_override.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxGeometryOverride Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_px_geometry_override.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxShaderOverride Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_px_shader_override.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxVertexBufferGenerator Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_px_vertex_buffer_generator.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MQuadRender Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_quad_render.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRasterizerState Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_rasterizer_state.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRasterizerStateDesc Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_rasterizer_state_desc.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRenderItem Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_render_item.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRenderItemList Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_render_item_list.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRenderOperation Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_render_operation.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRenderOverride Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_render_override.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRenderTarget Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_render_target.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRenderTargetDescription Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_render_target_description.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRenderTargetManager Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_render_target_manager.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRenderer Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_renderer.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MSamplerState Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_sampler_state.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MSamplerStateDesc Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_sampler_state_desc.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MSceneRender Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_scene_render.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MShaderInstance Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_shader_instance.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MShaderManager Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_shader_manager.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MStateManager Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_state_manager.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MStencilOpDesc Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_stencil_op_desc.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTargetBlendDesc Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_target_blend_desc.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTexture Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_texture.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTextureDescription Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_texture_description.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTextureManager Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_texture_manager.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MUserRenderOperation Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_user_render_operation.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MVertexBuffer Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_vertex_buffer.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MVertexBufferDescriptor Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_vertex_buffer_descriptor.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MVertexBufferDescriptorList Class Reference",
"href":"cpp_ref/class_m_h_w_render_1_1_m_vertex_buffer_descriptor_list.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MHWShaderSwatchGenerator Class Reference",
"href":"cpp_ref/class_m_h_w_shader_swatch_generator.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MHairSystem Class Reference",
"href":"cpp_ref/class_m_hair_system.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MHardwareRenderer Class Reference",
"href":"cpp_ref/class_m_hardware_renderer.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MHwTextureManager Class Reference",
"href":"cpp_ref/class_m_hw_texture_manager.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MHwrCallback Class Reference",
"href":"cpp_ref/class_m_hwr_callback.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MIffFile Class Reference",
"href":"cpp_ref/class_m_iff_file.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MIffTag Class Reference",
"href":"cpp_ref/class_m_iff_tag.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MIkHandleGroup Class Reference",
"href":"cpp_ref/class_m_ik_handle_group.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MIkSystem Class Reference",
"href":"cpp_ref/class_m_ik_system.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MImage Class Reference",
"href":"cpp_ref/class_m_image.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MImageFileInfo Class Reference",
"href":"cpp_ref/class_m_image_file_info.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MIntArray Class Reference",
"href":"cpp_ref/class_m_int_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MItCurveCV Class Reference",
"href":"cpp_ref/class_m_it_curve_c_v.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MItDag Class Reference",
"href":"cpp_ref/class_m_it_dag.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MItDependencyGraph Class Reference",
"href":"cpp_ref/class_m_it_dependency_graph.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MItDependencyNodes Class Reference",
"href":"cpp_ref/class_m_it_dependency_nodes.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MItGeometry Class Reference",
"href":"cpp_ref/class_m_it_geometry.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MItInstancer Class Reference",
"href":"cpp_ref/class_m_it_instancer.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MItKeyframe Class Reference",
"href":"cpp_ref/class_m_it_keyframe.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MItMeshEdge Class Reference",
"href":"cpp_ref/class_m_it_mesh_edge.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MItMeshFaceVertex Class Reference",
"href":"cpp_ref/class_m_it_mesh_face_vertex.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MItMeshPolygon Class Reference",
"href":"cpp_ref/class_m_it_mesh_polygon.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MItMeshVertex Class Reference",
"href":"cpp_ref/class_m_it_mesh_vertex.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MItSelectionList Class Reference",
"href":"cpp_ref/class_m_it_selection_list.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MItSubdEdge Class Reference",
"href":"cpp_ref/class_m_it_subd_edge.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MItSubdFace Class Reference",
"href":"cpp_ref/class_m_it_subd_face.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MItSubdVertex Class Reference",
"href":"cpp_ref/class_m_it_subd_vertex.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MItSurfaceCV Class Reference",
"href":"cpp_ref/class_m_it_surface_c_v.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MIteratorType Class Reference",
"href":"cpp_ref/class_m_iterator_type.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MLibrary Class Reference",
"href":"cpp_ref/class_m_library.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MLightLinks Class Reference",
"href":"cpp_ref/class_m_light_links.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MLockMessage Class Reference",
"href":"cpp_ref/class_m_lock_message.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MManipData Class Reference",
"href":"cpp_ref/class_m_manip_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MMaterial Class Reference",
"href":"cpp_ref/class_m_material.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MMaterialArray Class Reference",
"href":"cpp_ref/class_m_material_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MMatrix Class Reference",
"href":"cpp_ref/class_m_matrix.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MMatrixArray Class Reference",
"href":"cpp_ref/class_m_matrix_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MMeshIntersector Class Reference",
"href":"cpp_ref/class_m_mesh_intersector.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MMeshSmoothOptions Class Reference",
"href":"cpp_ref/class_m_mesh_smooth_options.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MMessage Class Reference",
"href":"cpp_ref/class_m_message.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MModelMessage Class Reference",
"href":"cpp_ref/class_m_model_message.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MMutexLock Class Reference",
"href":"cpp_ref/class_m_mutex_lock.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MNamespace Class Reference",
"href":"cpp_ref/class_m_namespace.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MNodeClass Class Reference",
"href":"cpp_ref/class_m_node_class.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MNodeMessage Class Reference",
"href":"cpp_ref/class_m_node_message.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MNurbsIntersector Class Reference",
"href":"cpp_ref/class_m_nurbs_intersector.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MObject Class Reference",
"href":"cpp_ref/class_m_object.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MObjectArray Class Reference",
"href":"cpp_ref/class_m_object_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MObjectHandle Class Reference",
"href":"cpp_ref/class_m_object_handle.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MObjectListFilter Class Reference",
"href":"cpp_ref/class_m_object_list_filter.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MObjectSetMessage Class Reference",
"href":"cpp_ref/class_m_object_set_message.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPlane Class Reference",
"href":"cpp_ref/class_m_plane.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPlug Class Reference",
"href":"cpp_ref/class_m_plug.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPlugArray Class Reference",
"href":"cpp_ref/class_m_plug_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPoint Class Reference",
"href":"cpp_ref/class_m_point.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPointArray Class Reference",
"href":"cpp_ref/class_m_point_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPointOnMesh Class Reference",
"href":"cpp_ref/class_m_point_on_mesh.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPolyMessage Class Reference",
"href":"cpp_ref/class_m_poly_message.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MProgressWindow Class Reference",
"href":"cpp_ref/class_m_progress_window.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPx3dModelView Class Reference",
"href":"cpp_ref/class_m_px3d_model_view.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxAttributePatternFactory Class Reference",
"href":"cpp_ref/class_m_px_attribute_pattern_factory.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxBakeEngine Class Reference",
"href":"cpp_ref/class_m_px_bake_engine.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxCacheFormat Class Reference",
"href":"cpp_ref/class_m_px_cache_format.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxCameraSet Class Reference",
"href":"cpp_ref/class_m_px_camera_set.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxClientDeviceNode Class Reference",
"href":"cpp_ref/class_m_px_client_device_node.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxCommand Class Reference",
"href":"cpp_ref/class_m_px_command.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxComponentShape Class Reference",
"href":"cpp_ref/class_m_px_component_shape.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxConstraint Class Reference",
"href":"cpp_ref/class_m_px_constraint.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxConstraintCommand Class Reference",
"href":"cpp_ref/class_m_px_constraint_command.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxContext Class Reference",
"href":"cpp_ref/class_m_px_context.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxContextCommand Class Reference",
"href":"cpp_ref/class_m_px_context_command.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxControlCommand Class Reference",
"href":"cpp_ref/class_m_px_control_command.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxData Class Reference",
"href":"cpp_ref/class_m_px_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxDeformerNode Class Reference",
"href":"cpp_ref/class_m_px_deformer_node.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxDragAndDropBehavior Class Reference",
"href":"cpp_ref/class_m_px_drag_and_drop_behavior.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxEmitterNode Class Reference",
"href":"cpp_ref/class_m_px_emitter_node.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxFieldNode Class Reference",
"href":"cpp_ref/class_m_px_field_node.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxFileTranslator Class Reference",
"href":"cpp_ref/class_m_px_file_translator.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxFluidEmitterNode Class Reference",
"href":"cpp_ref/class_m_px_fluid_emitter_node.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxGeometryData Class Reference",
"href":"cpp_ref/class_m_px_geometry_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxGeometryIterator Class Reference",
"href":"cpp_ref/class_m_px_geometry_iterator.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxGlBuffer Class Reference",
"href":"cpp_ref/class_m_px_gl_buffer.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxHardwareShader Class Reference",
"href":"cpp_ref/class_m_px_hardware_shader.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxHwShaderNode Class Reference",
"href":"cpp_ref/class_m_px_hw_shader_node.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxIkSolver Class Reference",
"href":"cpp_ref/class_m_px_ik_solver.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxIkSolverNode Class Reference",
"href":"cpp_ref/class_m_px_ik_solver_node.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxImageFile Class Reference",
"href":"cpp_ref/class_m_px_image_file.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxImagePlane Class Reference",
"href":"cpp_ref/class_m_px_image_plane.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxLocatorNode Class Reference",
"href":"cpp_ref/class_m_px_locator_node.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxManipContainer Class Reference",
"href":"cpp_ref/class_m_px_manip_container.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxManipulatorNode Class Reference",
"href":"cpp_ref/class_m_px_manipulator_node.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxMaterialInformation Class Reference",
"href":"cpp_ref/class_m_px_material_information.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxMayaAsciiFilter Class Reference",
"href":"cpp_ref/class_m_px_maya_ascii_filter.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxMayaAsciiFilterOutput Class Reference",
"href":"cpp_ref/class_m_px_maya_ascii_filter_output.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxMidiInputDevice Class Reference",
"href":"cpp_ref/class_m_px_midi_input_device.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxModelEditorCommand Class Reference",
"href":"cpp_ref/class_m_px_model_editor_command.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxNode Class Reference",
"href":"cpp_ref/class_m_px_node.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxObjectSet Class Reference",
"href":"cpp_ref/class_m_px_object_set.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxParticleAttributeMapperNode Class Reference",
"href":"cpp_ref/class_m_px_particle_attribute_mapper_node.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxPolyTrg Class Reference",
"href":"cpp_ref/class_m_px_poly_trg.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxPolyTweakUVCommand Class Reference",
"href":"cpp_ref/class_m_px_poly_tweak_u_v_command.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxRenderPassImpl Class Reference",
"href":"cpp_ref/class_m_px_render_pass_impl.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxSelectionContext Class Reference",
"href":"cpp_ref/class_m_px_selection_context.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxSpringNode Class Reference",
"href":"cpp_ref/class_m_px_spring_node.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxSurfaceShape Class Reference",
"href":"cpp_ref/class_m_px_surface_shape.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxSurfaceShapeUI Class Reference",
"href":"cpp_ref/class_m_px_surface_shape_u_i.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxThreadedDeviceNode Class Reference",
"href":"cpp_ref/class_m_px_threaded_device_node.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxToolCommand Class Reference",
"href":"cpp_ref/class_m_px_tool_command.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxTransform Class Reference",
"href":"cpp_ref/class_m_px_transform.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxTransformationMatrix Class Reference",
"href":"cpp_ref/class_m_px_transformation_matrix.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxUIControl Class Reference",
"href":"cpp_ref/class_m_px_u_i_control.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxUITableControl Class Reference",
"href":"cpp_ref/class_m_px_u_i_table_control.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MQtUtil Class Reference",
"href":"cpp_ref/class_m_qt_util.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MQuaternion Class Reference",
"href":"cpp_ref/class_m_quaternion.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRampAttribute Class Reference",
"href":"cpp_ref/class_m_ramp_attribute.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRenderCallback Class Reference",
"href":"cpp_ref/class_m_render_callback.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRenderData Class Reference",
"href":"cpp_ref/class_m_render_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRenderLine Class Reference",
"href":"cpp_ref/class_m_render_line.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRenderLineArray Class Reference",
"href":"cpp_ref/class_m_render_line_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRenderPassDef Class Reference",
"href":"cpp_ref/class_m_render_pass_def.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRenderPassRegistry Class Reference",
"href":"cpp_ref/class_m_render_pass_registry.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRenderProfile Class Reference",
"href":"cpp_ref/class_m_render_profile.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRenderShadowData Class Reference",
"href":"cpp_ref/class_m_render_shadow_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRenderTarget Class Reference",
"href":"cpp_ref/class_m_render_target.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRenderUtil Class Reference",
"href":"cpp_ref/class_m_render_util.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRenderView Class Reference",
"href":"cpp_ref/class_m_render_view.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRenderingInfo Class Reference",
"href":"cpp_ref/class_m_rendering_info.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRichSelection Class Reference",
"href":"cpp_ref/class_m_rich_selection.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MSceneMessage Class Reference",
"href":"cpp_ref/class_m_scene_message.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MScriptUtil Class Reference",
"href":"cpp_ref/class_m_script_util.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MSelectInfo Class Reference",
"href":"cpp_ref/class_m_select_info.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MSelectionList Class Reference",
"href":"cpp_ref/class_m_selection_list.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MSelectionMask Class Reference",
"href":"cpp_ref/class_m_selection_mask.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MSpace Class Reference",
"href":"cpp_ref/class_m_space.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MSpinLock Class Reference",
"href":"cpp_ref/class_m_spin_lock.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MStatus Class Reference",
"href":"cpp_ref/class_m_status.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MStreamUtils Class Reference",
"href":"cpp_ref/class_m_stream_utils.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MString Class Reference",
"href":"cpp_ref/class_m_string.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MStringArray Class Reference",
"href":"cpp_ref/class_m_string_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MStringResource Class Reference",
"href":"cpp_ref/class_m_string_resource.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MStringResourceId Class Reference",
"href":"cpp_ref/class_m_string_resource_id.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MSwatchRenderBase Class Reference",
"href":"cpp_ref/class_m_swatch_render_base.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MSwatchRenderRegister Class Reference",
"href":"cpp_ref/class_m_swatch_render_register.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MSyntax Class Reference",
"href":"cpp_ref/class_m_syntax.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTemplateAction< ActionClass, CommandName, CommandSyntax > Class Template Reference",
"href":"cpp_ref/class_m_template_action.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTemplateCommand< CommandClass, CommandName, CommandSyntax > Class Template Reference",
"href":"cpp_ref/class_m_template_command.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTemplateContextCommand< ContextCommandName, ContextCommandClass, ContextClass > Class Template Reference",
"href":"cpp_ref/class_m_template_context_command.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTemplateCreateNodeCommand< CommandClass, CommandName, NodeName > Class Template Reference",
"href":"cpp_ref/class_m_template_create_node_command.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTemplateSelectionContext< ContextNameString, ContextClass, NodeType, ManipulatorClass, ManipulatorNodeName > Class Template Reference",
"href":"cpp_ref/class_m_template_selection_context.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTesselationParams Class Reference",
"href":"cpp_ref/class_m_tesselation_params.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTextureEditorDrawInfo Class Reference",
"href":"cpp_ref/class_m_texture_editor_draw_info.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MThreadAsync Class Reference",
"href":"cpp_ref/class_m_thread_async.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MThreadPool Class Reference",
"href":"cpp_ref/class_m_thread_pool.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MThreadUtils Class Reference",
"href":"cpp_ref/class_m_thread_utils.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTime Class Reference",
"href":"cpp_ref/class_m_time.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTimeArray Class Reference",
"href":"cpp_ref/class_m_time_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTimer Class Reference",
"href":"cpp_ref/class_m_timer.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTimerMessage Class Reference",
"href":"cpp_ref/class_m_timer_message.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MToolsInfo Class Reference",
"href":"cpp_ref/class_m_tools_info.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTransformationMatrix Class Reference",
"href":"cpp_ref/class_m_transformation_matrix.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTrimBoundaryArray Class Reference",
"href":"cpp_ref/class_m_trim_boundary_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTypeId Class Reference",
"href":"cpp_ref/class_m_type_id.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MUiMessage Class Reference",
"href":"cpp_ref/class_m_ui_message.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MUint64Array Class Reference",
"href":"cpp_ref/class_m_uint64_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MUintArray Class Reference",
"href":"cpp_ref/class_m_uint_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MUniformParameter Class Reference",
"href":"cpp_ref/class_m_uniform_parameter.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MUniformParameterList Class Reference",
"href":"cpp_ref/class_m_uniform_parameter_list.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MUserData Class Reference",
"href":"cpp_ref/class_m_user_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MUserEventMessage Class Reference",
"href":"cpp_ref/class_m_user_event_message.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MVaryingParameter Class Reference",
"href":"cpp_ref/class_m_varying_parameter.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MVaryingParameterList Class Reference",
"href":"cpp_ref/class_m_varying_parameter_list.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MVector Class Reference",
"href":"cpp_ref/class_m_vector.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MVectorArray Class Reference",
"href":"cpp_ref/class_m_vector_array.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MViewportRenderer Class Reference",
"href":"cpp_ref/class_m_viewport_renderer.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MWeight Class Reference",
"href":"cpp_ref/class_m_weight.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MaterialInputData Class Reference",
"href":"cpp_ref/class_material_input_data.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MnCloth Class Reference",
"href":"cpp_ref/class_mn_cloth.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MnObject Class Reference",
"href":"cpp_ref/class_mn_object.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MnParticle Class Reference",
"href":"cpp_ref/class_mn_particle.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MnRigid Class Reference",
"href":"cpp_ref/class_mn_rigid.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MnSolver Class Reference",
"href":"cpp_ref/class_mn_solver.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: cleanPerFaceAssignmentCmd.cpp",
"href":"cpp_ref/clean_per_face_assignment_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: cleanPerFaceAssignmentCmd.h",
"href":"cpp_ref/clean_per_face_assignment_cmd_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: cleanPerFaceAssignmentPluginMain.cpp",
"href":"cpp_ref/clean_per_face_assignment_plugin_main_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: clearcoat.cpp",
"href":"cpp_ref/clearcoat_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: closestPointCmd.cpp",
"href":"cpp_ref/closest_point_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: closestPointOnCurveCmd.cpp",
"href":"cpp_ref/closest_point_on_curve_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: closestPointOnCurveCmd.h",
"href":"cpp_ref/closest_point_on_curve_cmd_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: closestPointOnCurveNode.cpp",
"href":"cpp_ref/closest_point_on_curve_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: closestPointOnCurveNode.h",
"href":"cpp_ref/closest_point_on_curve_node_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: closestPointOnCurvePlugin.cpp",
"href":"cpp_ref/closest_point_on_curve_plugin_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: closestPointOnCurveStrings.h",
"href":"cpp_ref/closest_point_on_curve_strings_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: closestPointOnNurbsSurfaceCmd.cpp",
"href":"cpp_ref/closest_point_on_nurbs_surface_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: closestPointOnNurbsSurfaceCmd.h",
"href":"cpp_ref/closest_point_on_nurbs_surface_cmd_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: closestTangentUAndDistance.cpp",
"href":"cpp_ref/closest_tangent_u_and_distance_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: closestTangentUAndDistance.h",
"href":"cpp_ref/closest_tangent_u_and_distance_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: clothPaintAttrCmd.cpp",
"href":"cpp_ref/cloth_paint_attr_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: clothPaintAttrCmd.h",
"href":"cpp_ref/cloth_paint_attr_cmd_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: clusterWeightFunction.cpp",
"href":"cpp_ref/cluster_weight_function_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: componentScaleManip.cpp",
"href":"cpp_ref/component_scale_manip_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: compositingShader.cpp",
"href":"cpp_ref/compositing_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: conditionTest.cpp",
"href":"cpp_ref/condition_test_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: contrastShader.cpp",
"href":"cpp_ref/contrast_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: convertBumpCmd.cpp",
"href":"cpp_ref/convert_bump_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: convertEdgesToFacesCmd.cpp",
"href":"cpp_ref/convert_edges_to_faces_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: convertVerticesToEdgesCmd.cpp",
"href":"cpp_ref/convert_vertices_to_edges_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: convertVerticesToFacesCmd.cpp",
"href":"cpp_ref/convert_vertices_to_faces_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: createClipCmd.cpp",
"href":"cpp_ref/create_clip_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: curvedArrowsNode.cpp",
"href":"cpp_ref/curved_arrows_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: customAttrManip.cpp",
"href":"cpp_ref/custom_attr_manip_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: customImagePlane.cpp",
"href":"cpp_ref/custom_image_plane_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: customImagePlane.py",
"href":"cpp_ref/custom_image_plane_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: customNodeFileTranslator.py",
"href":"cpp_ref/custom_node_file_translator_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: cvColorNode.cpp",
"href":"cpp_ref/cv_color_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: cvColorShader.cpp",
"href":"cpp_ref/cv_color_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: cvExpandCmd.cpp",
"href":"cpp_ref/cv_expand_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: cvPosCmd.cpp",
"href":"cpp_ref/cv_pos_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: dagMessageCmd.cpp",
"href":"cpp_ref/dag_message_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: dagPoseInfoCmd.cpp",
"href":"cpp_ref/dag_pose_info_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: ddsFloatReader.cpp",
"href":"cpp_ref/dds_float_reader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: ddsFloatReader.h",
"href":"cpp_ref/dds_float_reader_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: deletedMsgCmd.cpp",
"href":"cpp_ref/deleted_msg_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: Deprecated List",
"href":"cpp_ref/deprecated.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: depthShader.cpp",
"href":"cpp_ref/depth_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: displacementShader.cpp",
"href":"cpp_ref/displacement_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: dynExprField.cpp",
"href":"cpp_ref/dyn_expr_field_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: dynExprField.h",
"href":"cpp_ref/dyn_expr_field_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: eventTest.cpp",
"href":"cpp_ref/event_test_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: exampleMRampAttribute.cpp",
"href":"cpp_ref/example_m_ramp_attribute_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: Examples",
"href":"cpp_ref/examples.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: exportJointClusterDataCmd.cpp",
"href":"cpp_ref/export_joint_cluster_data_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: exportSkinClusterDataCmd.cpp",
"href":"cpp_ref/export_skin_cluster_data_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: fileIOMsgCmd.cpp",
"href":"cpp_ref/file_i_o_msg_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: filmMoveManip.py",
"href":"cpp_ref/film_move_manip_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: filteredAsciiFile.cpp",
"href":"cpp_ref/filtered_ascii_file_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: findFileTexturesCmd.cpp",
"href":"cpp_ref/find_file_textures_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: findTexturesPerPolygonCmd.cpp",
"href":"cpp_ref/find_textures_per_polygon_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: flameShader.cpp",
"href":"cpp_ref/flame_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: flipUVCmd.cpp",
"href":"cpp_ref/flip_u_v_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: flipUVCmd.h",
"href":"cpp_ref/flip_u_v_cmd_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: flipUVMain.cpp",
"href":"cpp_ref/flip_u_v_main_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: fluidInfoCmd.cpp",
"href":"cpp_ref/fluid_info_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: footPrintManip.cpp",
"href":"cpp_ref/foot_print_manip_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: footPrintManip.py",
"href":"cpp_ref/foot_print_manip_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: footPrintNode.cpp",
"href":"cpp_ref/foot_print_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: footPrintNode.py",
"href":"cpp_ref/foot_print_node_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: fullLoftNode.cpp",
"href":"cpp_ref/full_loft_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: fxManagerCmd.cpp",
"href":"cpp_ref/fx_manager_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: fxManagerCmd.h",
"href":"cpp_ref/fx_manager_cmd_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: gammaShader.cpp",
"href":"cpp_ref/gamma_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: genericAttributeNode.cpp",
"href":"cpp_ref/generic_attribute_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: geomShader.cpp",
"href":"cpp_ref/geom_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: geomShader.py",
"href":"cpp_ref/geom_shader_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: geometryCacheBlockBase.cpp",
"href":"cpp_ref/geometry_cache_block_base_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: geometryCacheBlockBase.h",
"href":"cpp_ref/geometry_cache_block_base_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: geometryCacheBlockDVAData.cpp",
"href":"cpp_ref/geometry_cache_block_d_v_a_data_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: geometryCacheBlockDVAData.h",
"href":"cpp_ref/geometry_cache_block_d_v_a_data_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: geometryCacheBlockFVAData.cpp",
"href":"cpp_ref/geometry_cache_block_f_v_a_data_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: geometryCacheBlockFVAData.h",
"href":"cpp_ref/geometry_cache_block_f_v_a_data_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: geometryCacheBlockIntData.cpp",
"href":"cpp_ref/geometry_cache_block_int_data_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: geometryCacheBlockIntData.h",
"href":"cpp_ref/geometry_cache_block_int_data_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: geometryCacheBlockStringData.cpp",
"href":"cpp_ref/geometry_cache_block_string_data_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: geometryCacheBlockStringData.h",
"href":"cpp_ref/geometry_cache_block_string_data_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: geometryCacheConverter.cpp",
"href":"cpp_ref/geometry_cache_converter_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: geometryCacheFile.cpp",
"href":"cpp_ref/geometry_cache_file_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: geometryCacheFile.h",
"href":"cpp_ref/geometry_cache_file_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: geometrySurfaceConstraint.cpp",
"href":"cpp_ref/geometry_surface_constraint_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: geometrySurfaceConstraint.h",
"href":"cpp_ref/geometry_surface_constraint_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: getAttrAffectsCmd.cpp",
"href":"cpp_ref/get_attr_affects_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: getPointAndNormal.cpp",
"href":"cpp_ref/get_point_and_normal_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: getPointAndNormal.h",
"href":"cpp_ref/get_point_and_normal_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: glATI.h",
"href":"cpp_ref/gl_a_t_i_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: glExtensions.cpp",
"href":"cpp_ref/gl_extensions_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: glExtensions.h",
"href":"cpp_ref/gl_extensions_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: glslFXShader.cpp",
"href":"cpp_ref/glsl_f_x_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: glslFXShader.h",
"href":"cpp_ref/glsl_f_x_shader_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: Graph Legend",
"href":"cpp_ref/graph_legend.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: FunctionSet classes",
"href":"cpp_ref/group___m_fn.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: Proxy classes",
"href":"cpp_ref/group___m_px.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: Macros",
"href":"cpp_ref/group___macros.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: OpenMaya - API module for common classes",
"href":"cpp_ref/group___open_maya.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: OpenMayaAnim - API module for animation",
"href":"cpp_ref/group___open_maya_anim.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: OpenMayaFX - API module for effects",
"href":"cpp_ref/group___open_maya_f_x.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: OpenMayaRender - API module for rendering",
"href":"cpp_ref/group___open_maya_render.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: OpenMayaUI - API module for user interface",
"href":"cpp_ref/group___open_maya_u_i.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hairCollisionSolver.cpp",
"href":"cpp_ref/hair_collision_solver_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: helix2Cmd.cpp",
"href":"cpp_ref/helix2_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: helixCmd.cpp",
"href":"cpp_ref/helix_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: helixCmd.py",
"href":"cpp_ref/helix_cmd_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: helixTool.cpp",
"href":"cpp_ref/helix_tool_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: helloCmd.cpp",
"href":"cpp_ref/hello_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: helloWorld.cpp",
"href":"cpp_ref/hello_world_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: helloWorld.py",
"href":"cpp_ref/hello_world_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: helloWorldCmd.cpp",
"href":"cpp_ref/hello_world_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: helloWorldCmd.py",
"href":"cpp_ref/hello_world_cmd_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hlslFXShader.cpp",
"href":"cpp_ref/hlsl_f_x_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hlslFXShader.h",
"href":"cpp_ref/hlsl_f_x_shader_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hlslPluginMain.cpp",
"href":"cpp_ref/hlsl_plugin_main_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hlslShader.cpp",
"href":"cpp_ref/hlsl_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hlslShader.h",
"href":"cpp_ref/hlsl_shader_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hlslSm3FXShader.cpp",
"href":"cpp_ref/hlsl_sm3_f_x_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hlslSm3FXShader.h",
"href":"cpp_ref/hlsl_sm3_f_x_shader_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hwAnisotropicShader_NV20.cpp",
"href":"cpp_ref/hw_anisotropic_shader__n_v20_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hwAnisotropicShader_NV20.h",
"href":"cpp_ref/hw_anisotropic_shader__n_v20_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hwColorPerVertexShader.cpp",
"href":"cpp_ref/hw_color_per_vertex_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hwDecalBumpShader_NV20.cpp",
"href":"cpp_ref/hw_decal_bump_shader__n_v20_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hwDecalBumpShader_NV20.h",
"href":"cpp_ref/hw_decal_bump_shader__n_v20_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hwManagedTextureShader.cpp",
"href":"cpp_ref/hw_managed_texture_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hwPhongShader.cpp",
"href":"cpp_ref/hw_phong_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hwPhongShader.h",
"href":"cpp_ref/hw_phong_shader_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hwPhongShaderBehavior.cpp",
"href":"cpp_ref/hw_phong_shader_behavior_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hwPhongShaderBehavior.h",
"href":"cpp_ref/hw_phong_shader_behavior_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hwReflectBumpShader_NV20.cpp",
"href":"cpp_ref/hw_reflect_bump_shader__n_v20_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hwReflectBumpShader_NV20.h",
"href":"cpp_ref/hw_reflect_bump_shader__n_v20_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hwRefractReflectShader_NV20.cpp",
"href":"cpp_ref/hw_refract_reflect_shader__n_v20_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hwRefractReflectShader_NV20.h",
"href":"cpp_ref/hw_refract_reflect_shader__n_v20_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hwRenderPostEffect.cpp",
"href":"cpp_ref/hw_render_post_effect_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hwToonShader_NV20.cpp",
"href":"cpp_ref/hw_toon_shader__n_v20_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hwToonShader_NV20.h",
"href":"cpp_ref/hw_toon_shader__n_v20_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hwUnlitShader.cpp",
"href":"cpp_ref/hw_unlit_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: hwUnlitShader.h",
"href":"cpp_ref/hw_unlit_shader_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: iffInfoCmd.cpp",
"href":"cpp_ref/iff_info_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: iffPixelCmd.cpp",
"href":"cpp_ref/iff_pixel_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: iffPpmCmd.cpp",
"href":"cpp_ref/iff_ppm_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: iffreader.cpp",
"href":"cpp_ref/iffreader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: iffreader.h",
"href":"cpp_ref/iffreader_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: Maya API Reference",
"href":"cpp_ref/index.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: instanceCallbackCmd.cpp",
"href":"cpp_ref/instance_callback_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: instancerListCmd.cpp",
"href":"cpp_ref/instancer_list_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: interpShader.cpp",
"href":"cpp_ref/interp_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: intersectCmd.cpp",
"href":"cpp_ref/intersect_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: intersectOnNurbsSurfaceCmd.cpp",
"href":"cpp_ref/intersect_on_nurbs_surface_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: intersectOnNurbsSurfaceCmd.h",
"href":"cpp_ref/intersect_on_nurbs_surface_cmd_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: jitterNode.cpp",
"href":"cpp_ref/jitter_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: jlcVcrDevice.cpp",
"href":"cpp_ref/jlc_vcr_device_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: lambertShader.cpp",
"href":"cpp_ref/lambert_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: lassoTool.cpp",
"href":"cpp_ref/lasso_tool_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: lassoToolCursor.h",
"href":"cpp_ref/lasso_tool_cursor_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: lassoToolCursorMask.h",
"href":"cpp_ref/lasso_tool_cursor_mask_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: latticeNoise.cpp",
"href":"cpp_ref/lattice_noise_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: latticeNoise.h",
"href":"cpp_ref/lattice_noise_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: latticeNoiseCmd.cpp",
"href":"cpp_ref/lattice_noise_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: latticeNoiseNode.cpp",
"href":"cpp_ref/lattice_noise_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: lavaShader.cpp",
"href":"cpp_ref/lava_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: lepTranslator.cpp",
"href":"cpp_ref/lep_translator_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: lightShader.cpp",
"href":"cpp_ref/light_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: lineManip.cpp",
"href":"cpp_ref/line_manip_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: lineManip.h",
"href":"cpp_ref/line_manip_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: lineManipContainer.cpp",
"href":"cpp_ref/line_manip_container_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: lineManipContainer.h",
"href":"cpp_ref/line_manip_container_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: listLightLinksCmd.cpp",
"href":"cpp_ref/list_light_links_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: listPolyHolesCmd.cpp",
"href":"cpp_ref/list_poly_holes_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: lockEvent.cpp",
"href":"cpp_ref/lock_event_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: maTranslator.cpp",
"href":"cpp_ref/ma_translator_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: manipulatorMath.cpp",
"href":"cpp_ref/manipulator_math_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: manipulatorMath.h",
"href":"cpp_ref/manipulator_math_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: manipulatorMath.py",
"href":"cpp_ref/manipulator_math_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: marqueeTool.cpp",
"href":"cpp_ref/marquee_tool_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: mathTableControl.py",
"href":"cpp_ref/math_table_control_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: meshMapUtils.cpp",
"href":"cpp_ref/mesh_map_utils_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: meshMapUtils.h",
"href":"cpp_ref/mesh_map_utils_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: meshOpCmd.cpp",
"href":"cpp_ref/mesh_op_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: meshOpCmd.h",
"href":"cpp_ref/mesh_op_cmd_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: meshOpFty.cpp",
"href":"cpp_ref/mesh_op_fty_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: meshOpFty.h",
"href":"cpp_ref/mesh_op_fty_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: meshOpFtyAction.cpp",
"href":"cpp_ref/mesh_op_fty_action_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: meshOpMain.cpp",
"href":"cpp_ref/mesh_op_main_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: meshOpNode.cpp",
"href":"cpp_ref/mesh_op_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: meshOpNode.h",
"href":"cpp_ref/mesh_op_node_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: meshRemapCmd.cpp",
"href":"cpp_ref/mesh_remap_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: meshRemapCmd.h",
"href":"cpp_ref/mesh_remap_cmd_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: meshRemapTool.cpp",
"href":"cpp_ref/mesh_remap_tool_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: meshRemapTool.h",
"href":"cpp_ref/mesh_remap_tool_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: meshReorderCmd.cpp",
"href":"cpp_ref/mesh_reorder_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: meshReorderCmd.h",
"href":"cpp_ref/mesh_reorder_cmd_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: meshReorderPlugin.cpp",
"href":"cpp_ref/mesh_reorder_plugin_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: meshReorderTool.cpp",
"href":"cpp_ref/mesh_reorder_tool_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: meshReorderTool.h",
"href":"cpp_ref/mesh_reorder_tool_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: mixtureShader.cpp",
"href":"cpp_ref/mixture_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: motionPathCmd.cpp",
"href":"cpp_ref/motion_path_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: motionTraceCmd.cpp",
"href":"cpp_ref/motion_trace_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: motionTraceCmd.py",
"href":"cpp_ref/motion_trace_cmd_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: moveCurveCVsCmd.cpp",
"href":"cpp_ref/move_curve_c_vs_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: moveManip.cpp",
"href":"cpp_ref/move_manip_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: moveManip.py",
"href":"cpp_ref/move_manip_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: moveNumericTool.cpp",
"href":"cpp_ref/move_numeric_tool_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: moveTool.cpp",
"href":"cpp_ref/move_tool_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: moveTool.py",
"href":"cpp_ref/move_tool_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: multiCurveNode.cpp",
"href":"cpp_ref/multi_curve_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: narrowPolyViewer.cpp",
"href":"cpp_ref/narrow_poly_viewer_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: narrowPolyViewer.h",
"href":"cpp_ref/narrow_poly_viewer_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: narrowPolyViewer.py",
"href":"cpp_ref/narrow_poly_viewer_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: narrowPolyViewerCmd.cpp",
"href":"cpp_ref/narrow_poly_viewer_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: narrowPolyViewerCmd.h",
"href":"cpp_ref/narrow_poly_viewer_cmd_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: narrowPolyViewerMain.cpp",
"href":"cpp_ref/narrow_poly_viewer_main_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: nodeCreatedCBCmd.cpp",
"href":"cpp_ref/node_created_c_b_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: nodeCreatedCBCmd.h",
"href":"cpp_ref/node_created_c_b_cmd_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: nodeInfoCmd.cpp",
"href":"cpp_ref/node_info_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: nodeMessageCmd.cpp",
"href":"cpp_ref/node_message_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: noiseShader.cpp",
"href":"cpp_ref/noise_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: nv_dds.cpp",
"href":"cpp_ref/nv_dds_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: nv_dds.h",
"href":"cpp_ref/nv_dds_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: objExport.cpp",
"href":"cpp_ref/obj_export_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: offsetNode.cpp",
"href":"cpp_ref/offset_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: ownerEmitter.cpp",
"href":"cpp_ref/owner_emitter_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: ownerEmitter.h",
"href":"cpp_ref/owner_emitter_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: parentAddedMsgCmd.py",
"href":"cpp_ref/parent_added_msg_cmd_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: particleAttrNode.cpp",
"href":"cpp_ref/particle_attr_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: particleAttrNode.h",
"href":"cpp_ref/particle_attr_node_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: particleAttrNodeMain.cpp",
"href":"cpp_ref/particle_attr_node_main_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: particleIdHash.h",
"href":"cpp_ref/particle_id_hash_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: particlePathsCmd.cpp",
"href":"cpp_ref/particle_paths_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: particleSystemInfoCmd.cpp",
"href":"cpp_ref/particle_system_info_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: peltOverlapCmd.cpp",
"href":"cpp_ref/pelt_overlap_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: pfxInfoCmd.cpp",
"href":"cpp_ref/pfx_info_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: phongShader.cpp",
"href":"cpp_ref/phong_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: pickCmd.cpp",
"href":"cpp_ref/pick_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: pluginCallbacks.cpp",
"href":"cpp_ref/plugin_callbacks_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: pluginMain.cpp",
"href":"cpp_ref/plugin_main_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: pnTrianglesNode.cpp",
"href":"cpp_ref/pn_triangles_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: pnTrianglesNode.h",
"href":"cpp_ref/pn_triangles_node_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: pointOnMeshCmd.cpp",
"href":"cpp_ref/point_on_mesh_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: pointOnMeshCmd.h",
"href":"cpp_ref/point_on_mesh_cmd_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: pointOnMeshInfoNode.cpp",
"href":"cpp_ref/point_on_mesh_info_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: pointOnMeshInfoNode.h",
"href":"cpp_ref/point_on_mesh_info_node_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: pointOnMeshInfoPlugin.cpp",
"href":"cpp_ref/point_on_mesh_info_plugin_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: pointOnSubdNode.cpp",
"href":"cpp_ref/point_on_subd_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: pointOnSubdNode.h",
"href":"cpp_ref/point_on_subd_node_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: polyExporter.cpp",
"href":"cpp_ref/poly_exporter_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: polyExporter.h",
"href":"cpp_ref/poly_exporter_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: polyMessageCmd.cpp",
"href":"cpp_ref/poly_message_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: polyModifier.py",
"href":"cpp_ref/poly_modifier_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: polyModifierCmd.cpp",
"href":"cpp_ref/poly_modifier_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: polyModifierCmd.h",
"href":"cpp_ref/poly_modifier_cmd_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: polyModifierFty.cpp",
"href":"cpp_ref/poly_modifier_fty_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: polyModifierFty.h",
"href":"cpp_ref/poly_modifier_fty_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: polyModifierNode.cpp",
"href":"cpp_ref/poly_modifier_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: polyModifierNode.h",
"href":"cpp_ref/poly_modifier_node_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: polyPrimitiveCmd.cpp",
"href":"cpp_ref/poly_primitive_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: polyRawExporter.cpp",
"href":"cpp_ref/poly_raw_exporter_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: polyRawExporter.h",
"href":"cpp_ref/poly_raw_exporter_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: polyRawWriter.cpp",
"href":"cpp_ref/poly_raw_writer_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: polyRawWriter.h",
"href":"cpp_ref/poly_raw_writer_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: polyTrgNode.cpp",
"href":"cpp_ref/poly_trg_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: polyWriter.cpp",
"href":"cpp_ref/poly_writer_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: polyWriter.h",
"href":"cpp_ref/poly_writer_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: polyX3DExporter.cpp",
"href":"cpp_ref/poly_x3_d_exporter_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: polyX3DExporter.h",
"href":"cpp_ref/poly_x3_d_exporter_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: polyX3DWriter.cpp",
"href":"cpp_ref/poly_x3_d_writer_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: polyX3DWriter.h",
"href":"cpp_ref/poly_x3_d_writer_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: progressWindowCmd.cpp",
"href":"cpp_ref/progress_window_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: quadricShape.cpp",
"href":"cpp_ref/quadric_shape_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: readAndWrite.cpp",
"href":"cpp_ref/read_and_write_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: referenceQueryCmd.cpp",
"href":"cpp_ref/reference_query_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: renderAccessNode.cpp",
"href":"cpp_ref/render_access_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: renderViewInteractiveRenderCmd.cpp",
"href":"cpp_ref/render_view_interactive_render_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: renderViewRenderCmd.cpp",
"href":"cpp_ref/render_view_render_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: renderViewRenderRegionCmd.cpp",
"href":"cpp_ref/render_view_render_region_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: rockingTransform.cpp",
"href":"cpp_ref/rocking_transform_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: rockingTransform.h",
"href":"cpp_ref/rocking_transform_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: rockingTransform.py",
"href":"cpp_ref/rocking_transform_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: rockingTransformCheck.cpp",
"href":"cpp_ref/rocking_transform_check_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: rockingTransformCheck.h",
"href":"cpp_ref/rocking_transform_check_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: rockingTransformCheckMain.cpp",
"href":"cpp_ref/rocking_transform_check_main_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: rockingTransformMain.cpp",
"href":"cpp_ref/rocking_transform_main_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: rotateManip.cpp",
"href":"cpp_ref/rotate_manip_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: sampleCmd.cpp",
"href":"cpp_ref/sample_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: sampleParticles.cpp",
"href":"cpp_ref/sample_particles_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: scanDagCmd.cpp",
"href":"cpp_ref/scan_dag_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: scanDagSyntax.cpp",
"href":"cpp_ref/scan_dag_syntax_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: shadowMatteShader.cpp",
"href":"cpp_ref/shadow_matte_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: shellNode.cpp",
"href":"cpp_ref/shell_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: shiftNode.cpp",
"href":"cpp_ref/shift_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: showNarrowPolyViewer.py",
"href":"cpp_ref/show_narrow_poly_viewer_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: simpleEmitter.cpp",
"href":"cpp_ref/simple_emitter_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: simpleEmitter.h",
"href":"cpp_ref/simple_emitter_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: simpleEmitter.py",
"href":"cpp_ref/simple_emitter_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: simpleFluidEmitter.cpp",
"href":"cpp_ref/simple_fluid_emitter_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: simpleFluidEmitter.h",
"href":"cpp_ref/simple_fluid_emitter_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: simpleImageFile.cpp",
"href":"cpp_ref/simple_image_file_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: simpleImageFile.py",
"href":"cpp_ref/simple_image_file_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: simpleLoftNode.cpp",
"href":"cpp_ref/simple_loft_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: simpleSolverNode.cpp",
"href":"cpp_ref/simple_solver_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: simpleSolverNode.py",
"href":"cpp_ref/simple_solver_node_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: simpleSpring.cpp",
"href":"cpp_ref/simple_spring_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: simpleSpring.h",
"href":"cpp_ref/simple_spring_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: simpleSpring.py",
"href":"cpp_ref/simple_spring_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: sineNode.cpp",
"href":"cpp_ref/sine_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: sineNode.py",
"href":"cpp_ref/sine_node_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: slopeShader.cpp",
"href":"cpp_ref/slope_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: slopeShader.py",
"href":"cpp_ref/slope_shader_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: slopeShaderBehavior.cpp",
"href":"cpp_ref/slope_shader_behavior_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: slopeShaderBehavior.h",
"href":"cpp_ref/slope_shader_behavior_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: slopeShaderNode.cpp",
"href":"cpp_ref/slope_shader_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: slopeShaderNode.h",
"href":"cpp_ref/slope_shader_node_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: solidCheckerShader.cpp",
"href":"cpp_ref/solid_checker_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: spiralAnimCurveCmd.cpp",
"href":"cpp_ref/spiral_anim_curve_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: splitUVCmd.cpp",
"href":"cpp_ref/split_u_v_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: splitUVCmd.h",
"href":"cpp_ref/split_u_v_cmd_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: splitUVCmd.py",
"href":"cpp_ref/split_u_v_cmd_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: splitUVFty.cpp",
"href":"cpp_ref/split_u_v_fty_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: splitUVFty.h",
"href":"cpp_ref/split_u_v_fty_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: splitUVFtyAction.cpp",
"href":"cpp_ref/split_u_v_fty_action_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: splitUVMain.cpp",
"href":"cpp_ref/split_u_v_main_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: splitUVNode.cpp",
"href":"cpp_ref/split_u_v_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: splitUVNode.h",
"href":"cpp_ref/split_u_v_node_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: squareScaleManip.cpp",
"href":"cpp_ref/square_scale_manip_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: squareScaleManip.h",
"href":"cpp_ref/square_scale_manip_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: squareScaleManipContext.cpp",
"href":"cpp_ref/square_scale_manip_context_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: squareScaleManipContext.h",
"href":"cpp_ref/square_scale_manip_context_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: stringFormatNode.cpp",
"href":"cpp_ref/string_format_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxShaderOverride::MInitContext Struct Reference",
"href":"cpp_ref/struct_m_h_w_render_1_1_m_px_shader_override_1_1_m_init_context.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxShaderOverride::MInitFeedback Struct Reference",
"href":"cpp_ref/struct_m_h_w_render_1_1_m_px_shader_override_1_1_m_init_feedback.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MRenderTargetAssignment Struct Reference",
"href":"cpp_ref/struct_m_h_w_render_1_1_m_render_target_assignment.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MShaderCompileMacro Struct Reference",
"href":"cpp_ref/struct_m_h_w_render_1_1_m_shader_compile_macro.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MTextureAssignment Struct Reference",
"href":"cpp_ref/struct_m_h_w_render_1_1_m_texture_assignment.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: MPxHardwareShader::ShaderContext Struct Reference",
"href":"cpp_ref/struct_m_px_hardware_shader_1_1_shader_context.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: RV_PIXEL Struct Reference",
"href":"cpp_ref/struct_r_v___p_i_x_e_l.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: surfaceBumpManip.cpp",
"href":"cpp_ref/surface_bump_manip_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: surfaceCreate.cpp",
"href":"cpp_ref/surface_create_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: surfaceCreateCmd.cpp",
"href":"cpp_ref/surface_create_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: surfaceTwist.cpp",
"href":"cpp_ref/surface_twist_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: surfaceTwistCmd.cpp",
"href":"cpp_ref/surface_twist_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: sweptEmitter.cpp",
"href":"cpp_ref/swept_emitter_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: sweptEmitter.h",
"href":"cpp_ref/swept_emitter_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: swissArmyManip.cpp",
"href":"cpp_ref/swiss_army_manip_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: swissArmyManip.py",
"href":"cpp_ref/swiss_army_manip_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: testNobjectNode.cpp",
"href":"cpp_ref/test_nobject_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: testNobjectNode.h",
"href":"cpp_ref/test_nobject_node_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: testNucleusNode.cpp",
"href":"cpp_ref/test_nucleus_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: testNucleusNode.h",
"href":"cpp_ref/test_nucleus_node_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: threadTestCmd.cpp",
"href":"cpp_ref/thread_test_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: threadTestWithLocksCmd.cpp",
"href":"cpp_ref/thread_test_with_locks_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: tiffFloatReader.cpp",
"href":"cpp_ref/tiff_float_reader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: torusField.cpp",
"href":"cpp_ref/torus_field_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: torusField.h",
"href":"cpp_ref/torus_field_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: torusField.py",
"href":"cpp_ref/torus_field_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: transCircleNode.cpp",
"href":"cpp_ref/trans_circle_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: translateCmd.cpp",
"href":"cpp_ref/translate_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: undoRedoMsgCmd.cpp",
"href":"cpp_ref/undo_redo_msg_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: userMsgCmd.cpp",
"href":"cpp_ref/user_msg_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: viewCallbackTest.cpp",
"href":"cpp_ref/view_callback_test_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: viewCaptureCmd.cpp",
"href":"cpp_ref/view_capture_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: viewCapturePPM.h",
"href":"cpp_ref/view_capture_p_p_m_8h-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: volumeLightCmd.cpp",
"href":"cpp_ref/volume_light_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: volumeShader.cpp",
"href":"cpp_ref/volume_shader_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: weightListNode.cpp",
"href":"cpp_ref/weight_list_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: whatIsCmd.py",
"href":"cpp_ref/what_is_cmd_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: whatisCmd.cpp",
"href":"cpp_ref/whatis_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: yTwistNode.cpp",
"href":"cpp_ref/y_twist_node_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: yTwistNode.py",
"href":"cpp_ref/y_twist_node_8py-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: zoomCameraCmd.cpp",
"href":"cpp_ref/zoom_camera_cmd_8cpp-example.html",
"description":"",
"ancestors":[]},
{"title":"API Reference: zoomCameraCmd.py",
"href":"cpp_ref/zoom_camera_cmd_8py-example.html",
"description":"",
"ancestors":[]}]);
top.HlpSys.search.data.registerSearchProvider(searchResultProvider);
// SIG // Begin signature block
// SIG // MIIMzQYJKoZIhvcNAQcCoIIMvjCCDLoCAQExDjAMBggq
// SIG // hkiG9w0CBQUAMGYGCisGAQQBgjcCAQSgWDBWMDIGCisG
// SIG // AQQBgjcCAR4wJAIBAQQQEODJBs441BGiowAQS9NQkAIB
// SIG // AAIBAAIBAAIBAAIBADAgMAwGCCqGSIb3DQIFBQAEEI6X
// SIG // ehSd7TE+KOaB4XZrqVygggoPMIIE/DCCBGWgAwIBAgIQ
// SIG // ZVIm4bIuGOFZDymFrCLnXDANBgkqhkiG9w0BAQUFADBf
// SIG // MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24s
// SIG // IEluYy4xNzA1BgNVBAsTLkNsYXNzIDMgUHVibGljIFBy
// SIG // aW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN
// SIG // MDkwNTIxMDAwMDAwWhcNMTkwNTIwMjM1OTU5WjCBtjEL
// SIG // MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJ
// SIG // bmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3
// SIG // b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQgaHR0
// SIG // cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwOTEw
// SIG // MC4GA1UEAxMnVmVyaVNpZ24gQ2xhc3MgMyBDb2RlIFNp
// SIG // Z25pbmcgMjAwOS0yIENBMIIBIjANBgkqhkiG9w0BAQEF
// SIG // AAOCAQ8AMIIBCgKCAQEAvmcdtGCqEElvVhd8Zslehg3V
// SIG // 8ayncYOOi4n4iASJFQa6LYQhleTRnFBM+9IivdrysjU7
// SIG // Ho/DCfv8Ey5av4l8PTslHvbzWHuc9AG1xgq4gM6+J3Rh
// SIG // ZydNauXsgWFYeaPgFxASFSew4U00fytHIES53mYkZorN
// SIG // T7ofxTjIVJDhcvYZZnVquUlozzh5DaowqNssYEie16oU
// SIG // AamD1ziRMDkTlgM6fEBUtq3gLxuD3KgRUj4Cs9cr/SG2
// SIG // p1yjDwupphBQDjQuTafOyV4l1Iy88258KbwBXfwxh1rV
// SIG // jIVnWIgZoL818OoroyHnkPaD5ajtYHhee2CD/VcLXUEN
// SIG // Y1Rg1kMh7wIDAQABo4IB2zCCAdcwEgYDVR0TAQH/BAgw
// SIG // BgEB/wIBADBwBgNVHSAEaTBnMGUGC2CGSAGG+EUBBxcD
// SIG // MFYwKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZlcmlz
// SIG // aWduLmNvbS9jcHMwKgYIKwYBBQUHAgIwHhocaHR0cHM6
// SIG // Ly93d3cudmVyaXNpZ24uY29tL3JwYTAOBgNVHQ8BAf8E
// SIG // BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJ
// SIG // aW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5r
// SIG // w8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNp
// SIG // Z24uY29tL3ZzbG9nby5naWYwHQYDVR0lBBYwFAYIKwYB
// SIG // BQUHAwIGCCsGAQUFBwMDMDQGCCsGAQUFBwEBBCgwJjAk
// SIG // BggrBgEFBQcwAYYYaHR0cDovL29jc3AudmVyaXNpZ24u
// SIG // Y29tMDEGA1UdHwQqMCgwJqAkoCKGIGh0dHA6Ly9jcmwu
// SIG // dmVyaXNpZ24uY29tL3BjYTMuY3JsMCkGA1UdEQQiMCCk
// SIG // HjAcMRowGAYDVQQDExFDbGFzczNDQTIwNDgtMS01NTAd
// SIG // BgNVHQ4EFgQUl9BrqCZwyKE/lB8ILcQ1m6ShHvIwDQYJ
// SIG // KoZIhvcNAQEFBQADgYEAiwPA3ZTYQaJhabAVqHjHMMaQ
// SIG // PH5C9yS25INzFwR/BBCcoeL6gS/rwMpE53LgULZVECCD
// SIG // bpaS5JpRarQ3MdylLeuMAMcdT+dNMrqF+E6++mdVZfBq
// SIG // vnrKZDgaEBB4RXYx84Z6Aw9gwrNdnfaLZnaCG1nhg+W9
// SIG // SaU4VuXeQXcOWA8wggULMIID86ADAgECAhAjTaBL0kKF
// SIG // PErLmuhhwhm7MA0GCSqGSIb3DQEBBQUAMIG2MQswCQYD
// SIG // VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4x
// SIG // HzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsx
// SIG // OzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczov
// SIG // L3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTA5MTAwLgYD
// SIG // VQQDEydWZXJpU2lnbiBDbGFzcyAzIENvZGUgU2lnbmlu
// SIG // ZyAyMDA5LTIgQ0EwHhcNMDkwODI3MDAwMDAwWhcNMTIw
// SIG // OTIwMjM1OTU5WjCByDELMAkGA1UEBhMCVVMxEzARBgNV
// SIG // BAgTCkNhbGlmb3JuaWExEzARBgNVBAcTClNhbiBSYWZh
// SIG // ZWwxFjAUBgNVBAoUDUF1dG9kZXNrLCBJbmMxPjA8BgNV
// SIG // BAsTNURpZ2l0YWwgSUQgQ2xhc3MgMyAtIE1pY3Jvc29m
// SIG // dCBTb2Z0d2FyZSBWYWxpZGF0aW9uIHYyMR8wHQYDVQQL
// SIG // FBZEZXNpZ24gU29sdXRpb25zIEdyb3VwMRYwFAYDVQQD
// SIG // FA1BdXRvZGVzaywgSW5jMIGfMA0GCSqGSIb3DQEBAQUA
// SIG // A4GNADCBiQKBgQC1R1YKdvQF2Rj4+knWfj81afUtVyep
// SIG // GF2P4tcYD53qlYmYi9t9Csc6PMWlUZhMGbOceQKYcBjc
// SIG // mWvyghJnoaEQ6796ZcsLD0pMH2R4SpV/SjxiQ280beig
// SIG // NerJS5X+ftOMCs1qSQ1LXlRFEohaewkNWsIp/+f1Y0vE
// SIG // dGzggnEKOQIDAQABo4IBgzCCAX8wCQYDVR0TBAIwADAO
// SIG // BgNVHQ8BAf8EBAMCB4AwRAYDVR0fBD0wOzA5oDegNYYz
// SIG // aHR0cDovL2NzYzMtMjAwOS0yLWNybC52ZXJpc2lnbi5j
// SIG // b20vQ1NDMy0yMDA5LTIuY3JsMEQGA1UdIAQ9MDswOQYL
// SIG // YIZIAYb4RQEHFwMwKjAoBggrBgEFBQcCARYcaHR0cHM6
// SIG // Ly93d3cudmVyaXNpZ24uY29tL3JwYTATBgNVHSUEDDAK
// SIG // BggrBgEFBQcDAzB1BggrBgEFBQcBAQRpMGcwJAYIKwYB
// SIG // BQUHMAGGGGh0dHA6Ly9vY3NwLnZlcmlzaWduLmNvbTA/
// SIG // BggrBgEFBQcwAoYzaHR0cDovL2NzYzMtMjAwOS0yLWFp
// SIG // YS52ZXJpc2lnbi5jb20vQ1NDMy0yMDA5LTIuY2VyMB8G
// SIG // A1UdIwQYMBaAFJfQa6gmcMihP5QfCC3ENZukoR7yMBEG
// SIG // CWCGSAGG+EIBAQQEAwIEEDAWBgorBgEEAYI3AgEbBAgw
// SIG // BgEBAAEB/zANBgkqhkiG9w0BAQUFAAOCAQEAIfxkh8Fd
// SIG // IHK+qtTf+9Eq5fjkk5gMMTQCOa+2aR7mqDzLfIFRGQzr
// SIG // tcc5/izsb/wPLUwdw1cRpnxO8/qLA2Ol+b99FONTOyyc
// SIG // Y8unwviYhdEjuFmqHkyC5MUYroZEjvTObFkkgN98Y48h
// SIG // C+mG2hdlVKXR0zr9r5q/rmmivVWbojvcYKHoW31O5OcM
// SIG // PsrWuOD305Ygmpck/91iopE3UN4tfeWYhzNj1F6Ai4Xa
// SIG // 5KiaMcs3zmoZ+6SePyI2YUgtff6yvy/rk8KVT41KGD2h
// SIG // fC+QrtVSkoDWP/MDtLjbTPCWElC1NWSEKowRI8t2x594
// SIG // Skjnzu/W5Lh97ixircOuM4IvBzGCAigwggIkAgEBMIHL
// SIG // MIG2MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNp
// SIG // Z24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0
// SIG // IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBh
// SIG // dCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChj
// SIG // KTA5MTAwLgYDVQQDEydWZXJpU2lnbiBDbGFzcyAzIENv
// SIG // ZGUgU2lnbmluZyAyMDA5LTIgQ0ECECNNoEvSQoU8Ssua
// SIG // 6GHCGbswDAYIKoZIhvcNAgUFAKCBsDAZBgkqhkiG9w0B
// SIG // CQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4w
// SIG // DAYKKwYBBAGCNwIBFTAfBgkqhkiG9w0BCQQxEgQQTHO7
// SIG // oVyJ3kN44l5N1iCnNzBUBgorBgEEAYI3AgEMMUYwRKAm
// SIG // gCQAQQB1AHQAbwBkAGUAcwBrACAAQwBvAG0AcABvAG4A
// SIG // ZQBuAHShGoAYaHR0cDovL3d3dy5hdXRvZGVzay5jb20g
// SIG // MA0GCSqGSIb3DQEBAQUABIGAbbnbDh7imorc5bul09Fx
// SIG // Z6A+kAAsvzO7r/wVZVr2VMzkgiXJJFwVm6lPtS61GQ2K
// SIG // m3GwSnFoxkg7rAAYujeCUZrSEkz3G3yXSWUDH4umvsjw
// SIG // 5H6cyITXkdynoUj+U3LRtI18VgWomTw7SmhaTkWZksSI
// SIG // iFQ5ozdXWGI8h2zJyYM=
// SIG // End signature block
