gitextract_xa2stlhf/ ├── .gitignore ├── 00_API_Overview_Introduction/ │ ├── 00_API_Overview_Introduction.pptx │ └── 00_Distinguishing Python.pptx ├── 01_API_Overview/ │ ├── 01_API_Overview.pptx │ ├── 01_Assignment.docx │ ├── 02_API_Overview.pptx │ └── helloWorld/ │ ├── Exercise - py/ │ │ └── helloWorldCmd.py │ └── Solution - py/ │ └── helloWorldCmd.py ├── 02_Commands/ │ ├── 02_Assignment.docx │ ├── 02_Commands.pptx │ ├── 03_Helper Classes.pptx │ ├── 04_CommandsArguments.pptx │ ├── 04_UndoRedo.pptx │ ├── 05_UndoRedo.pptx │ ├── dagInfo/ │ │ ├── Exercise - C++/ │ │ │ ├── dagInfo.cpp │ │ │ ├── dagInfo.h │ │ │ ├── dagInfo.sln │ │ │ ├── dagInfo.vcxproj │ │ │ └── pluginMain.cpp │ │ ├── Exercise - py/ │ │ │ └── dagInfo.py │ │ ├── Solution - C++/ │ │ │ ├── dagInfo.cpp │ │ │ ├── dagInfo.h │ │ │ ├── dagInfo.sln │ │ │ ├── dagInfo.vcxproj │ │ │ └── pluginMain.cpp │ │ ├── Solution - py/ │ │ │ └── dagInfo.py │ │ └── multiInstance.ma │ ├── instanceRotate/ │ │ ├── Exercise - C++/ │ │ │ ├── instanceRotate.sln │ │ │ ├── instanceRotate.vcxproj │ │ │ ├── instanceRotateCmd.cpp │ │ │ ├── instanceRotateCmd.h │ │ │ └── pluginMain.cpp │ │ ├── Exercise - py/ │ │ │ └── instanceRotateCmd.py │ │ ├── Solution - C++/ │ │ │ ├── instanceRotate.sln │ │ │ ├── instanceRotate.vcxproj │ │ │ ├── instanceRotateCmd.cpp │ │ │ ├── instanceRotateCmd.h │ │ │ └── pluginMain.cpp │ │ └── Solution - py/ │ │ └── instanceRotateCmd.py │ └── nodeInfo/ │ ├── Exercise - C++/ │ │ ├── nodeInfoCmd.cpp │ │ ├── nodeInfoCmd.h │ │ ├── nodeInfoCmd.sln │ │ ├── nodeInfoCmd.vcxproj │ │ └── pluginMain.cpp │ ├── Exercise - py/ │ │ └── nodeInfoCmd.py │ ├── Solution - C++/ │ │ ├── nodeInfoCmd.cpp │ │ ├── nodeInfoCmd.h │ │ ├── nodeInfoCmd.sln │ │ ├── nodeInfoCmd.vcxproj │ │ └── pluginMain.cpp │ └── Solution - py/ │ └── nodeInfoCmd.py ├── 03_Nodes/ │ ├── 03_Assignment.docx │ ├── 03_Nodes.pptx │ ├── simpleNode/ │ │ ├── Exercise - C++/ │ │ │ ├── pluginMain.cpp │ │ │ ├── simpleNode.cpp │ │ │ ├── simpleNode.h │ │ │ ├── simpleNode.sln │ │ │ └── simpleNode.vcxproj │ │ ├── Exercise - py/ │ │ │ └── simpleNode.py │ │ ├── Solution - C++/ │ │ │ ├── pluginMain.cpp │ │ │ ├── simpleNode.cpp │ │ │ ├── simpleNode.h │ │ │ ├── simpleNode.sln │ │ │ └── simpleNode.vcxproj │ │ └── Solution - py/ │ │ └── simpleNode.py │ ├── sineNode/ │ │ ├── Exercise - C++/ │ │ │ ├── pluginMain.cpp │ │ │ ├── simpleNode.cpp │ │ │ ├── simpleNode.h │ │ │ ├── simpleNode.sln │ │ │ └── simpleNode.vcxproj │ │ ├── Exercise - py/ │ │ │ └── sineNode.py │ │ ├── Solution - C++/ │ │ │ ├── pluginMain.cpp │ │ │ ├── simpleNode.cpp │ │ │ ├── simpleNode.h │ │ │ ├── simpleNode.sln │ │ │ └── simpleNode.vcxproj │ │ └── Solution - py/ │ │ └── sineNode.py │ └── transCircleNode/ │ ├── Exercise - C++/ │ │ ├── AEtransCircleTemplate.mel │ │ ├── pluginMain.cpp │ │ ├── transCircleNode.cpp │ │ ├── transCircleNode.h │ │ ├── transCircleNode.mel │ │ ├── transCircleNode.sln │ │ └── transCircleNode.vcxproj │ ├── Exercise - py/ │ │ ├── AEtransCircleTemplate.mel │ │ ├── transCircleNode.mel │ │ └── transCircleNode.py │ ├── Solution - C++/ │ │ ├── AEtransCircleTemplate.mel │ │ ├── pluginMain.cpp │ │ ├── transCircleNode.cpp │ │ ├── transCircleNode.h │ │ ├── transCircleNode.mel │ │ ├── transCircleNode.sln │ │ └── transCircleNode.vcxproj │ └── Solution - py/ │ ├── AEtransCircleTemplate.mel │ ├── transCircleNode.mel │ └── transCircleNode.py ├── 04_NodeAttributes/ │ ├── 04_Assignment.docx │ ├── 04_NodeAttributes.pptx │ ├── dynNode/ │ │ ├── Exercise - C++/ │ │ │ ├── DynNode.sln │ │ │ ├── DynNode.vcxproj │ │ │ ├── dynNode.cpp │ │ │ ├── dynNode.h │ │ │ └── pluginMain.cpp │ │ ├── Exercise - py/ │ │ │ └── dynNode.py │ │ ├── Solution - C++/ │ │ │ ├── DynNode.sln │ │ │ ├── DynNode.vcxproj │ │ │ ├── dynNode.cpp │ │ │ ├── dynNode.h │ │ │ └── pluginMain.cpp │ │ └── Solution - py/ │ │ └── dynNode.py │ └── simpleNode - with Typed Attr/ │ ├── Exercise - C++/ │ │ ├── pluginMain.cpp │ │ ├── simpleNode.cpp │ │ ├── simpleNode.h │ │ ├── simpleNode.sln │ │ └── simpleNode.vcxproj │ ├── Exercise - py/ │ │ └── simpleNode.py │ ├── Solution - C++/ │ │ ├── pluginMain.cpp │ │ ├── simpleNode.cpp │ │ ├── simpleNode.h │ │ ├── simpleNode.sln │ │ └── simpleNode.vcxproj │ └── Solution - py/ │ └── simpleNode.py ├── 05_DependencyGraph/ │ ├── 05_Assignment.docx │ ├── 05_DependencyGraph.pptx │ └── retrieveWeight/ │ ├── Exercise - C++/ │ │ ├── pluginMain.cpp │ │ ├── retrieveWeight.sln │ │ ├── retrieveWeight.vcxproj │ │ ├── retrieveWeightCmd.cpp │ │ └── retrieveWeightCmd.h │ ├── Exercise - py/ │ │ └── retrieveWeight.py │ ├── Solution - C++/ │ │ ├── pluginMain.cpp │ │ ├── retrieveWeight.sln │ │ ├── retrieveWeight.vcxproj │ │ ├── retrieveWeightCmd.cpp │ │ └── retrieveWeightCmd.h │ ├── Solution - py/ │ │ └── retrieveWeight.py │ └── blendShape.ma ├── 06_MiscTools/ │ ├── 06_Assignment.docx │ ├── 06_MiscTools.pptx │ ├── sceneMsg/ │ │ ├── Exercise - C++/ │ │ │ ├── pluginMain.cpp │ │ │ ├── sceneMsgCmd.cpp │ │ │ ├── sceneMsgCmd.h │ │ │ ├── sceneMsgCmd.sln │ │ │ └── sceneMsgCmd.vcxproj │ │ ├── Exercise - py/ │ │ │ └── sceneMsgCmd.py │ │ ├── Solution - C++/ │ │ │ ├── pluginMain.cpp │ │ │ ├── sceneMsgCmd.cpp │ │ │ ├── sceneMsgCmd.h │ │ │ ├── sceneMsgCmd.sln │ │ │ └── sceneMsgCmd.vcxproj │ │ └── Solution - py/ │ │ └── sceneMsgCmd.py │ └── setUpTransCircle/ │ ├── Exercise - C++/ │ │ ├── AEtransCircleTemplate.mel │ │ ├── pluginMain.cpp │ │ ├── setUpTransCircle.sln │ │ ├── setUpTransCircle.vcxproj │ │ ├── setUpTransCircleCmd.cpp │ │ ├── setUpTransCircleCmd.h │ │ ├── transCircleNode.cpp │ │ └── transCircleNode.h │ ├── Exercise - py/ │ │ └── setUpTransCircle.py │ ├── Solution - C++/ │ │ ├── AEtransCircleTemplate.mel │ │ ├── pluginMain.cpp │ │ ├── setUpTransCircle.sln │ │ ├── setUpTransCircle.vcxproj │ │ ├── setUpTransCircleCmd.cpp │ │ ├── setUpTransCircleCmd.h │ │ ├── transCircleNode.cpp │ │ └── transCircleNode.h │ └── Solution - py/ │ └── setUpTransCircle.py ├── 07_Locator/ │ ├── 07_Assignment.docx │ ├── 07_Locator.pptx │ └── arrowLocator/ │ ├── Exercise - C++/ │ │ ├── arrowLocator.sln │ │ ├── arrowLocator.vcxproj │ │ ├── arrowLocatorNode.cpp │ │ └── arrowLocatorNode.h │ ├── Exercise - py/ │ │ └── arrowLocator.py │ ├── Solution - C++/ │ │ ├── arrowLocator.sln │ │ ├── arrowLocator.vcxproj │ │ ├── arrowLocatorNode.cpp │ │ └── arrowLocatorNode.h │ └── Solution - py/ │ └── arrowLocator.py ├── 08_Manipulators/ │ ├── 08_Assignment.docx │ ├── 08_Manipulators.pptx │ └── arrowLocatorManip/ │ ├── Exercise - C++/ │ │ ├── arrowLocatorManip.sln │ │ ├── arrowLocatorManip.vcxproj │ │ ├── arrowLocatorManipNode.cpp │ │ ├── arrowLocatorManipNode.h │ │ ├── arrowLocatorNode.cpp │ │ └── arrowLocatorNode.h │ ├── Exercise - py/ │ │ └── arrowLocatorManip.py │ ├── Solution - C++/ │ │ ├── arrowLocatorManip.sln │ │ ├── arrowLocatorManip.vcxproj │ │ ├── arrowLocatorManipNode.cpp │ │ ├── arrowLocatorManipNode.h │ │ ├── arrowLocatorNode.cpp │ │ └── arrowLocatorNode.h │ └── Solution - py/ │ └── arrowLocatorManip.py ├── 09_PythonAPI/ │ ├── 09_Assignment.docx │ ├── 09_Python 2.0.pptx │ ├── 09_Python Scripting Exercise.pptx │ ├── 09_PythonAPI.pptx │ ├── 09_ReadingC++Docs.pptx │ ├── helloWorld/ │ │ ├── Exercise - py/ │ │ │ └── helloWorldCmd.py │ │ └── Solution - py/ │ │ └── helloWorldCmd.py │ └── sineNode/ │ ├── Exercise - py/ │ │ └── sineNode.py │ ├── Solution - py/ │ │ └── sineNode.py │ └── sineNode-setup.mel ├── 10_PythonAdvanced/ │ ├── 10_PythonAdvanced.ppt │ ├── DemoInstructions.docx │ └── examples/ │ ├── ShotServer.py │ ├── alt_str.py │ ├── cppCentroid.cpp │ ├── dist.py │ ├── guipdb.py │ ├── guipdb1.py │ └── pyCentroid.py ├── AdditionalDocuments/ │ ├── Introduction to Maya API Summary.pptx │ └── MELvsPython.ppt └── README.md