diff options
| author | MobileMachine\jeremy <[email protected]> | 2017-06-06 22:59:03 -0400 |
|---|---|---|
| committer | MobileMachine\jeremy <[email protected]> | 2017-06-06 22:59:03 -0400 |
| commit | 24725fa8681f906ab44d80687c09fecc171a2896 (patch) | |
| tree | 312a601df29aca7f8db9f44082d96ebc7a679138 /Documentation/build/_modules/System/ART_RigModule.html | |
| parent | Initial commit (diff) | |
| download | artv2-24725fa8681f906ab44d80687c09fecc171a2896.tar.xz artv2-24725fa8681f906ab44d80687c09fecc171a2896.zip | |
Initial Submission
First submission of current state of ARTv2. Currently considered to be in Alpha. There are a couple of animation tools not implemented yet, and one module not implemented yet, as well as incomplete documentation.
Diffstat (limited to 'Documentation/build/_modules/System/ART_RigModule.html')
| -rw-r--r-- | Documentation/build/_modules/System/ART_RigModule.html | 3108 |
1 files changed, 3108 insertions, 0 deletions
diff --git a/Documentation/build/_modules/System/ART_RigModule.html b/Documentation/build/_modules/System/ART_RigModule.html new file mode 100644 index 0000000..03a2ceb --- /dev/null +++ b/Documentation/build/_modules/System/ART_RigModule.html @@ -0,0 +1,3108 @@ + + +<!doctype html> + + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + + <title>System.ART_RigModule — ARTv2 1.0 documentation</title> + + <link rel="stylesheet" href="../../_static/bizstyle.css" type="text/css" /> + <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../../', + VERSION: '1.0', + COLLAPSE_INDEX: false, + FILE_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt' + }; + </script> + <script type="text/javascript" src="../../_static/jquery.js"></script> + <script type="text/javascript" src="../../_static/underscore.js"></script> + <script type="text/javascript" src="../../_static/doctools.js"></script> + <script type="text/javascript" src="../../_static/bizstyle.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <meta name="viewport" content="width=device-width,initial-scale=1.0"> + <!--[if lt IE 9]> + <script type="text/javascript" src="_static/css3-mediaqueries.js"></script> + <![endif]--> + </head> + <body role="document"> + <div class="related" role="navigation" aria-label="related navigation"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="../../genindex.html" title="General Index" + accesskey="I">index</a></li> + <li class="right" > + <a href="../../py-modindex.html" title="Python Module Index" + >modules</a> |</li> + <li class="nav-item nav-item-0"><a href="../../index.html">ARTv2 1.0 documentation</a> »</li> + <li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Module code</a> »</li> + </ul> + </div> + <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> + <div class="sphinxsidebarwrapper"> +<div id="searchbox" style="display: none" role="search"> + <h3>Quick search</h3> + <form class="search" action="../../search.html" method="get"> + <div><input type="text" name="q" /></div> + <div><input type="submit" value="Go" /></div> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> +<script type="text/javascript">$('#searchbox').show(0);</script> + </div> + </div> + + <div class="document"> + <div class="documentwrapper"> + <div class="bodywrapper"> + <div class="body" role="main"> + + <h1>Source code for System.ART_RigModule</h1><div class="highlight"><pre> +<span></span><span class="sd">"""</span> +<span class="sd">Author: Jeremy Ernst</span> + +<span class="sd"> This is the base class from which all modules are created. When creating a new module,</span> +<span class="sd"> your module class should inherit from this base class. Example:</span> + +<span class="sd">| class ART_Head(ART_RigModule)</span> + +<span class="sd"> In the __init__ of your module class, you will want to also run the base class __init__</span> +<span class="sd"> at the end of your module class __init__:</span> + +<span class="sd">| ART_RigModule.__init__(self, "ART_Head_Module", "ART_Head", moduleUserName)</span> + +<span class="sd"> This module has two file attributes set by default. Your module class will need many more</span> +<span class="sd"> file attributes set. Please see another module as an example.</span> + +<span class="sd">########</span> +<span class="sd">Contents</span> +<span class="sd">########</span> + +<span class="sd">| **Module Creation Functions:**</span> +<span class="sd">| :func:`addAttributes <System.ART_RigModule.ART_RigModule.addAttributes>`</span> +<span class="sd">| :func:`buildNetwork <System.ART_RigModule.ART_RigModule.buildNetwork>`</span> +<span class="sd">| :func:`createMirrorModule <System.ART_RigModule.ART_RigModule.createMirrorModule>`</span> +<span class="sd">| :func:`jointMover_Build <System.ART_RigModule.ART_RigModule.jointMover_Build>`</span> +<span class="sd">| :func:`skeletonSettings_UI <System.ART_RigModule.ART_RigModule.skeletonSettings_UI>`</span> +<span class="sd">|</span> +<span class="sd">| **Module Update Functions:**</span> +<span class="sd">| :func:`applyModuleChanges <System.ART_RigModule.ART_RigModule.applyModuleChanges>`</span> +<span class="sd">| :func:`checkForDependencies <System.ART_RigModule.ART_RigModule.checkForDependencies>`</span> +<span class="sd">| :func:`deleteModule <System.ART_RigModule.ART_RigModule.deleteModule>`</span> +<span class="sd">|</span> +<span class="sd">| **Module Settings and Interface Functions:**</span> +<span class="sd">| :func:`changeModuleName <System.ART_RigModule.ART_RigModule.changeModuleName>`</span> +<span class="sd">| :func:`changeModuleParent <System.ART_RigModule.ART_RigModule.changeModuleParent>`</span> +<span class="sd">| :func:`copySettings <System.ART_RigModule.ART_RigModule.copySettings>`</span> +<span class="sd">| :func:`pasteSettings <System.ART_RigModule.ART_RigModule.pasteSettings>`</span> +<span class="sd">| :func:`resetSettings <System.ART_RigModule.ART_RigModule.resetSettings>`</span> +<span class="sd">| :func:`createContextMenu <System.ART_RigModule.ART_RigModule.createContextMenu>`</span> +<span class="sd">| :func:`createMirrorOfModule_UI <System.ART_RigModule.ART_RigModule.createMirrorOfModule_UI>`</span> +<span class="sd">| :func:`createScriptJob <System.ART_RigModule.ART_RigModule.createScriptJob>`</span> +<span class="sd">| :func:`mirrorTransformations <System.ART_RigModule.ART_RigModule.mirrorTransformations>`</span> +<span class="sd">| :func:`mirrorTransformations_Custom <System.ART_RigModule.ART_RigModule.mirrorTransformations_Custom>`</span> +<span class="sd">| :func:`resetTransforms <System.ART_RigModule.ART_RigModule.resetTransforms>`</span> +<span class="sd">| :func:`setMirrorModule <System.ART_RigModule.ART_RigModule.setMirrorModule>`</span> +<span class="sd">| :func:`updateBoneCount <System.ART_RigModule.ART_RigModule.updateBoneCount>`</span> +<span class="sd">| :func:`updatePreview <System.ART_RigModule.ART_RigModule.updatePreview>`</span> +<span class="sd">| :func:`updateSettingsUI <System.ART_RigModule.ART_RigModule.updateSettingsUI>`</span> +<span class="sd">|</span> +<span class="sd">| **Module Joint Mover Functions:**</span> +<span class="sd">| :func:`addJointMoverToOutliner <System.ART_RigModule.ART_RigModule.addJointMoverToOutliner>`</span> +<span class="sd">| :func:`aimMode <System.ART_RigModule.ART_RigModule.aimMode>`</span> +<span class="sd">| :func:`aimMode_Setup <System.ART_RigModule.ART_RigModule.aimMode_Setup>`</span> +<span class="sd">| :func:`bakeOffsets <System.ART_RigModule.ART_RigModule.bakeOffsets>`</span> +<span class="sd">| :func:`createGlobalMoverButton <System.ART_RigModule.ART_RigModule.createGlobalMoverButton>`</span> +<span class="sd">| :func:`createMeshMoverButton <System.ART_RigModule.ART_RigModule.createMeshMoverButton>`</span> +<span class="sd">| :func:`createOffsetMoverButton <System.ART_RigModule.ART_RigModule.createOffsetMoverButton>`</span> +<span class="sd">| :func:`pinModule <System.ART_RigModule.ART_RigModule.pinModule>`</span> +<span class="sd">| :func:`selectMover <System.ART_RigModule.ART_RigModule.selectMover>`</span> +<span class="sd">| :func:`selectScriptJob <System.ART_RigModule.ART_RigModule.selectScriptJob>`</span> +<span class="sd">| :func:`toggleShapeVis <System.ART_RigModule.ART_RigModule.toggleShapeVis>`</span> +<span class="sd">| :func:`updateOutliner <System.ART_RigModule.ART_RigModule.updateOutliner>`</span> +<span class="sd">|</span> +<span class="sd">| **Module Publish Functions:**</span> +<span class="sd">| :func:`cleanUpRigPose <System.ART_RigModule.ART_RigModule.cleanUpRigPose>`</span> +<span class="sd">| :func:`createRigPoseSliderForJoint <System.ART_RigModule.ART_RigModule.createRigPoseSliderForJoint>`</span> +<span class="sd">| :func:`getReferencePose <System.ART_RigModule.ART_RigModule.getReferencePose>`</span> +<span class="sd">| :func:`matchModelPose <System.ART_RigModule.ART_RigModule.matchModelPose>`</span> +<span class="sd">| :func:`mirrorTransformations_RigPose <System.ART_RigModule.ART_RigModule.mirrorTransformations_RigPose>`</span> +<span class="sd">| :func:`resetRigPose <System.ART_RigModule.ART_RigModule.resetRigPose>`</span> +<span class="sd">| :func:`resetRigPose_Part <System.ART_RigModule.ART_RigModule.resetRigPose_Part>`</span> +<span class="sd">| :func:`rigPose_UI <System.ART_RigModule.ART_RigModule.rigPose_UI>`</span> +<span class="sd">| :func:`setPosePercentage <System.ART_RigModule.ART_RigModule.setPosePercentage>`</span> +<span class="sd">| :func:`setPosePercentage_Part <System.ART_RigModule.ART_RigModule.setPosePercentage_Part>`</span> +<span class="sd">| :func:`setReferencePose <System.ART_RigModule.ART_RigModule.setReferencePose>`</span> +<span class="sd">| :func:`setReferencePoseSlider <System.ART_RigModule.ART_RigModule.setReferencePoseSlider>`</span> +<span class="sd">| :func:`setSkeletonPose <System.ART_RigModule.ART_RigModule.setSkeletonPose>`</span> +<span class="sd">| :func:`setupForRigPose <System.ART_RigModule.ART_RigModule.setupForRigPose>`</span> +<span class="sd">| :func:`setupModelPoseForRig <System.ART_RigModule.ART_RigModule.setupModelPoseForRig>`</span> +<span class="sd">| :func:`skinProxyGeo <System.ART_RigModule.ART_RigModule.skinProxyGeo>`</span> +<span class="sd">| :func:`updateRigPose <System.ART_RigModule.ART_RigModule.updateRigPose>`</span> +<span class="sd">|</span> +<span class="sd">| **Module Rig Functions**</span> +<span class="sd">| :func:`buildRig <System.ART_RigModule.ART_RigModule.buildRig>`</span> +<span class="sd">| :func:`buildRigCustom <System.ART_RigModule.ART_RigModule.buildRigCustom>`</span> +<span class="sd">| :func:`deleteRig <System.ART_RigModule.ART_RigModule.deleteRig>`</span> +<span class="sd">| :func:`getControls <System.ART_RigModule.ART_RigModule.getControls>`</span> +<span class="sd">| :func:`importFBX <System.ART_RigModule.ART_RigModule.importFBX>`</span> +<span class="sd">| :func:`importFBX_pre <System.ART_RigModule.ART_RigModule.importFBX_pre>`</span> +<span class="sd">| :func:`resetRigControls <System.ART_RigModule.ART_RigModule.resetRigControls>`</span> +<span class="sd">| :func:`selectRigControls <System.ART_RigModule.ART_RigModule.selectRigControls>`</span> +<span class="sd">| :func:`selectionScriptJob_animUI <System.ART_RigModule.ART_RigModule.selectionScriptJob_animUI>`</span> +<span class="sd">|</span> +<span class="sd">| **Module Utility Functions**</span> +<span class="sd">| :func:`getAllModules <System.ART_RigModule.ART_RigModule.getAllModules>`</span> +<span class="sd">| :func:`getModules <System.ART_RigModule.ART_RigModule.getModules>`</span> +<span class="sd">| :func:`removeSkeletalConstraints <System.ART_RigModule.ART_RigModule.removeSkeletalConstraints>`</span> +<span class="sd">| :func:`returnCreatedJoints <System.ART_RigModule.ART_RigModule.returnCreatedJoints>`</span> +<span class="sd">| :func:`returnJointMovers <System.ART_RigModule.ART_RigModule.returnJointMovers>`</span> +<span class="sd">| :func:`returnMirrorModuleInst <System.ART_RigModule.ART_RigModule.returnMirrorModuleInst>`</span> +<span class="sd">| :func:`returnNetworkNode <System.ART_RigModule.ART_RigModule.returnNetworkNode>`</span> +<span class="sd">| :func:`returnPrefixSuffix <System.ART_RigModule.ART_RigModule.returnPrefixSuffix>`</span> +<span class="sd">| :func:`returnRigNetworkNode <System.ART_RigModule.ART_RigModule.returnRigNetworkNode>`</span> +<span class="sd">|</span> +<span class="sd">|</span> +<span class="sd">#########</span> +<span class="sd">Class</span> +<span class="sd">#########</span> +<span class="sd">"""</span> + +<span class="c1"># file imports</span> +<span class="kn">import</span> <span class="nn">json</span> +<span class="kn">import</span> <span class="nn">os</span> +<span class="kn">import</span> <span class="nn">traceback</span> +<span class="kn">from</span> <span class="nn">functools</span> <span class="k">import</span> <span class="n">partial</span> + +<span class="kn">import</span> <span class="nn">System.interfaceUtils</span> <span class="k">as</span> <span class="nn">interfaceUtils</span> +<span class="kn">import</span> <span class="nn">System.riggingUtils</span> <span class="k">as</span> <span class="nn">riggingUtils</span> +<span class="kn">import</span> <span class="nn">System.utils</span> <span class="k">as</span> <span class="nn">utils</span> +<span class="kn">import</span> <span class="nn">System.mathUtils</span> <span class="k">as</span> <span class="nn">mathUtils</span> +<span class="kn">import</span> <span class="nn">maya.cmds</span> <span class="k">as</span> <span class="nn">cmds</span> +<span class="kn">import</span> <span class="nn">maya.mel</span> <span class="k">as</span> <span class="nn">mel</span> +<span class="kn">from</span> <span class="nn">ThirdParty.Qt</span> <span class="k">import</span> <span class="n">QtGui</span><span class="p">,</span> <span class="n">QtCore</span><span class="p">,</span> <span class="n">QtWidgets</span> + +<span class="c1"># file attributes</span> +<span class="n">fbxImport</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"None"</span><span class="p">,</span> <span class="s2">"FK"</span><span class="p">]</span> +<span class="n">matchData</span> <span class="o">=</span> <span class="p">[</span><span class="kc">False</span><span class="p">,</span> <span class="kc">None</span><span class="p">]</span> + + +<div class="viewcode-block" id="ART_RigModule"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule">[docs]</a><span class="k">class</span> <span class="nc">ART_RigModule</span><span class="p">():</span> +<div class="viewcode-block" id="ART_RigModule.__init__"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.__init__">[docs]</a> <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">moduleName</span><span class="p">,</span> <span class="n">moduleType</span><span class="p">,</span> <span class="n">userCreatedName</span><span class="p">):</span> + <span class="sd">"""Initiate the class, taking in the instance to the interface and the user specified name.</span> + +<span class="sd"> :param moduleName: This is the base name of the module, specified in the rig module.</span> +<span class="sd"> :param moduleType: This is the name of the module to create (the module class).</span> +<span class="sd"> :param userCreatedName: This is the name specified by the user on module creation.</span> + +<span class="sd"> Instantiate the following class variables as well:</span> +<span class="sd"> * **self.modName:** Take the passed in moduleName and make it a class var</span> +<span class="sd"> * **self.moduleType:** Take the passed in moduleType and make it a class var</span> +<span class="sd"> * **self.rootMod:** The network node of the entire character asset</span> +<span class="sd"> * **self.name:** The user created name (prefix + baseName + suffix) passed in</span> +<span class="sd"> * **self.originalName:** Also the user created name, but we want to store what the original name</span> +<span class="sd"> was on creation, as the user can rename the module later. This will allow us to make the link between</span> +<span class="sd"> what the module's original name was and what the new name is.</span> +<span class="sd"> * **self.outlinerControls:** A list of the outliner controls created when adding module joint movers to</span> +<span class="sd"> the outliner.</span> + +<span class="sd"> Also, read the QSettings to find out where needed paths are.</span> +<span class="sd"> """</span> + + <span class="c1"># set class variables</span> + <span class="bp">self</span><span class="o">.</span><span class="n">modName</span> <span class="o">=</span> <span class="n">moduleName</span> + <span class="bp">self</span><span class="o">.</span><span class="n">moduleType</span> <span class="o">=</span> <span class="n">moduleType</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rootMod</span> <span class="o">=</span> <span class="kc">None</span> + <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">userCreatedName</span> + <span class="bp">self</span><span class="o">.</span><span class="n">originalName</span> <span class="o">=</span> <span class="n">userCreatedName</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outlinerControls</span> <span class="o">=</span> <span class="p">[]</span> + <span class="bp">self</span><span class="o">.</span><span class="n">controlTypes</span> <span class="o">=</span> <span class="p">[]</span> + + <span class="c1"># get the directory path of the tools</span> + <span class="n">settings</span> <span class="o">=</span> <span class="n">QtCore</span><span class="o">.</span><span class="n">QSettings</span><span class="p">(</span><span class="s2">"Epic Games"</span><span class="p">,</span> <span class="s2">"ARTv2"</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">toolsPath</span> <span class="o">=</span> <span class="n">settings</span><span class="o">.</span><span class="n">value</span><span class="p">(</span><span class="s2">"toolsPath"</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span> <span class="o">=</span> <span class="n">settings</span><span class="o">.</span><span class="n">value</span><span class="p">(</span><span class="s2">"iconPath"</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.buildNetwork"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.buildNetwork">[docs]</a> <span class="k">def</span> <span class="nf">buildNetwork</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Build the network node for the module which will store all information needed by the module.</span> +<span class="sd"> Then, call on addAttributes to add the required module attributes to the network node.</span> +<span class="sd"> """</span> + + <span class="c1"># create the network node for our module</span> + <span class="bp">self</span><span class="o">.</span><span class="n">networkNode</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">createNode</span><span class="p">(</span><span class="s2">"network"</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">modName</span><span class="p">)</span> + + <span class="c1"># create attributes</span> + <span class="bp">self</span><span class="o">.</span><span class="n">addAttributes</span><span class="p">()</span> + + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">networkNode</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.addAttributes"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.addAttributes">[docs]</a> <span class="k">def</span> <span class="nf">addAttributes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Add attributes to the network node that all modules need.</span> +<span class="sd"> """</span> + + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">moduleType</span> <span class="o">==</span> <span class="kc">None</span><span class="p">:</span> + <span class="c1"># add attributes specific to this module</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">networkNode</span><span class="p">,</span> <span class="n">sn</span><span class="o">=</span><span class="s2">"rigModules"</span><span class="p">,</span> <span class="n">at</span><span class="o">=</span><span class="s2">"message"</span><span class="p">)</span> + + <span class="k">else</span><span class="p">:</span> + <span class="c1"># add a rigging message attribute</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">networkNode</span><span class="p">,</span> <span class="n">sn</span><span class="o">=</span><span class="s2">"parent"</span><span class="p">,</span> <span class="n">at</span><span class="o">=</span><span class="s2">"message"</span><span class="p">)</span> + + <span class="c1"># add a module type attribute</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">networkNode</span><span class="p">,</span> <span class="n">sn</span><span class="o">=</span><span class="s2">"moduleType"</span><span class="p">,</span> <span class="n">dt</span><span class="o">=</span><span class="s2">"string"</span><span class="p">,</span> <span class="n">keyable</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".moduleType"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">moduleType</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s2">"string"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># and a module name attribute (used for skeleton settings UI groupbox label)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">networkNode</span><span class="p">,</span> <span class="n">sn</span><span class="o">=</span><span class="s2">"moduleName"</span><span class="p">,</span> <span class="n">dt</span><span class="o">=</span><span class="s2">"string"</span><span class="p">,</span> <span class="n">keyable</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".moduleName"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s2">"string"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># add attr for parent module that user specfies</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">networkNode</span><span class="p">,</span> <span class="n">sn</span><span class="o">=</span><span class="s2">"parentModuleBone"</span><span class="p">,</span> <span class="n">dt</span><span class="o">=</span><span class="s2">"string"</span><span class="p">,</span> <span class="n">keyable</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + + <span class="c1"># add attr for mirror module that user specfies</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">networkNode</span><span class="p">,</span> <span class="n">sn</span><span class="o">=</span><span class="s2">"mirrorModule"</span><span class="p">,</span> <span class="n">dt</span><span class="o">=</span><span class="s2">"string"</span><span class="p">,</span> <span class="n">keyable</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + + <span class="n">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">networkNode</span><span class="p">,</span> <span class="n">sn</span><span class="o">=</span><span class="s2">"pinned"</span><span class="p">,</span> <span class="n">at</span><span class="o">=</span><span class="s2">"bool"</span><span class="p">,</span> <span class="n">keyable</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".pinned"</span><span class="p">,</span> <span class="kc">False</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># connect rigModule to root module node</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rootMod</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getModules</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">rootMod</span> <span class="o">!=</span> <span class="kc">None</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">connectAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rootMod</span> <span class="o">+</span> <span class="s2">".rigModules"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".parent"</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.skeletonSettings_UI"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.skeletonSettings_UI">[docs]</a> <span class="k">def</span> <span class="nf">skeletonSettings_UI</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">width</span><span class="p">,</span> <span class="n">height</span><span class="p">,</span> <span class="n">checkable</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Build the framework for the skeleton settings that all modules need.</span> + +<span class="sd"> :param name: user given name of module (prefix + base_name + suffix)</span> +<span class="sd"> :param width: width of the skeleton settings groupBox. 335 usually</span> +<span class="sd"> :param height: height of the skeleton settings groupBox.</span> +<span class="sd"> :param checkable: Whether or not the groupBox can be collapsed.</span> +<span class="sd"> """</span> + + <span class="c1"># add the groupbox for this module with the module name and module settings</span> + <span class="bp">self</span><span class="o">.</span><span class="n">groupBox</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGroupBox</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">groupBox</span><span class="o">.</span><span class="n">setGeometry</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QRect</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">width</span><span class="p">,</span> <span class="n">height</span><span class="p">))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">groupBox</span><span class="o">.</span><span class="n">setSizePolicy</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QSizePolicy</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QSizePolicy</span><span class="o">.</span><span class="n">Fixed</span><span class="p">,</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QSizePolicy</span><span class="o">.</span><span class="n">Fixed</span><span class="p">))</span> + + <span class="k">if</span> <span class="ow">not</span> <span class="n">checkable</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">groupBox</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="n">width</span><span class="p">,</span> <span class="n">height</span><span class="p">))</span> + + <span class="k">if</span> <span class="n">checkable</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">groupBox</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="n">width</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">groupBox</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="n">width</span><span class="p">,</span> <span class="n">height</span><span class="p">))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">groupBox</span><span class="o">.</span><span class="n">setFlat</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">groupBox</span><span class="o">.</span><span class="n">setCheckable</span><span class="p">(</span><span class="n">checkable</span><span class="p">)</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">lockButton</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">lockButton</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">lockButton</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span> + + <span class="c1"># load style sheet file</span> + <span class="n">styleSheetFile</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">toolsPath</span><span class="p">,</span> + <span class="s2">"Core/Scripts/Interfaces/StyleSheets/skeletonSettings.qss"</span><span class="p">)</span> + <span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">styleSheetFile</span><span class="p">,</span> <span class="s2">"r"</span><span class="p">)</span> + <span class="n">style</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">()</span> + <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">groupBox</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="n">style</span><span class="p">)</span> + + <span class="c1"># set properties for filtering later</span> + <span class="bp">self</span><span class="o">.</span><span class="n">groupBox</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">groupBox</span><span class="o">.</span><span class="n">setProperty</span><span class="p">(</span><span class="s2">"name"</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> + + <span class="c1"># set context menu policy on groupbox</span> + <span class="bp">self</span><span class="o">.</span><span class="n">groupBox</span><span class="o">.</span><span class="n">setContextMenuPolicy</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">Qt</span><span class="o">.</span><span class="n">CustomContextMenu</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">groupBox</span><span class="o">.</span><span class="n">customContextMenuRequested</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">createContextMenu</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.changeModuleName"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.changeModuleName">[docs]</a> <span class="k">def</span> <span class="nf">changeModuleName</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">baseName</span><span class="p">,</span> <span class="n">moduleInst</span><span class="p">,</span> <span class="n">rigUiInst</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Launch the interface that allows users to change the module name.</span> + +<span class="sd"> :param baseName: The module base name (head, torso, leg, etc)</span> +<span class="sd"> :param moduleInst: The specific instance of the module</span> +<span class="sd"> :param rigUiInst: The instance of the rig creator interface.</span> + +<span class="sd"> This will call on a separate class in Core/Interfaces called ART_ChangeModuleNameUI.py</span> +<span class="sd"> """</span> + + <span class="c1"># get prefix/suffix</span> + <span class="n">name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">groupBox</span><span class="o">.</span><span class="n">title</span><span class="p">()</span> + <span class="n">prefix</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="n">baseName</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> + <span class="n">suffix</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="n">baseName</span><span class="p">)[</span><span class="mi">2</span><span class="p">]</span> + + <span class="c1"># when pressing the change name button on the skeleton settings UI (if it exists):</span> + + <span class="c1"># delete the UI if it already exists</span> + <span class="n">mayaWindow</span> <span class="o">=</span> <span class="n">interfaceUtils</span><span class="o">.</span><span class="n">getMainWindow</span><span class="p">()</span> + <span class="n">mayaWindow</span> <span class="o">=</span> <span class="n">mayaWindow</span><span class="o">.</span><span class="n">objectName</span><span class="p">()</span> + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">window</span><span class="p">(</span><span class="n">mayaWindow</span> <span class="o">+</span> <span class="s2">"|pyArtChangeModuleNameUi"</span><span class="p">,</span> <span class="n">q</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">exists</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">deleteUI</span><span class="p">(</span><span class="n">mayaWindow</span> <span class="o">+</span> <span class="s2">"|pyArtChangeModuleNameUi"</span><span class="p">)</span> + + <span class="c1"># launch a UI for prefix/suffix/preview again</span> + <span class="kn">import</span> <span class="nn">Interfaces.ART_ChangeModuleNameUI</span> <span class="k">as</span> <span class="nn">ART_ChangeModuleNameUI</span> + <span class="n">reload</span><span class="p">(</span><span class="n">ART_ChangeModuleNameUI</span><span class="p">)</span> + <span class="n">inst</span> <span class="o">=</span> <span class="n">ART_ChangeModuleNameUI</span><span class="o">.</span><span class="n">ART_ChangeModuleName_UI</span><span class="p">(</span><span class="n">baseName</span><span class="p">,</span> <span class="n">moduleInst</span><span class="p">,</span> <span class="n">rigUiInst</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">suffix</span><span class="p">,</span> + <span class="n">interfaceUtils</span><span class="o">.</span><span class="n">getMainWindow</span><span class="p">())</span> + <span class="n">inst</span><span class="o">.</span><span class="n">show</span><span class="p">()</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.changeModuleParent"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.changeModuleParent">[docs]</a> <span class="k">def</span> <span class="nf">changeModuleParent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">moduleInst</span><span class="p">,</span> <span class="n">rigUiInst</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Launch the interface that allows users to change the module's parent bone.</span> + +<span class="sd"> :param moduleInst: The specific instance of the module</span> +<span class="sd"> :param rigUiInst: The instance of the rig creator interface.</span> + +<span class="sd"> This will call on a separate class in Core/Interfaces called ART_ChangeModuleParentUI.py</span> +<span class="sd"> """</span> + + <span class="c1"># get current parent value</span> + <span class="n">currentParent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentParent</span><span class="o">.</span><span class="n">text</span><span class="p">()</span> + + <span class="c1"># when pressing the change parent button on the skeleton settings UI (if it exists):</span> + + <span class="c1"># delete the UI if it already exists</span> + <span class="n">mayaWindow</span> <span class="o">=</span> <span class="n">interfaceUtils</span><span class="o">.</span><span class="n">getMainWindow</span><span class="p">()</span> + <span class="n">mayaWindow</span> <span class="o">=</span> <span class="n">mayaWindow</span><span class="o">.</span><span class="n">objectName</span><span class="p">()</span> + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">window</span><span class="p">(</span><span class="n">mayaWindow</span> <span class="o">+</span> <span class="s2">"|pyArtChangeModuleParentUi"</span><span class="p">,</span> <span class="n">q</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">exists</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">deleteUI</span><span class="p">(</span><span class="n">mayaWindow</span> <span class="o">+</span> <span class="s2">"|pyArtChangeModuleParentUi"</span><span class="p">)</span> + + <span class="c1"># launch a UI for prefix/suffix/preview again</span> + <span class="kn">import</span> <span class="nn">Interfaces.ART_ChangeModuleParentUI</span> <span class="k">as</span> <span class="nn">ART_ChangeModuleParentUI</span> + <span class="n">reload</span><span class="p">(</span><span class="n">ART_ChangeModuleParentUI</span><span class="p">)</span> + <span class="n">inst</span> <span class="o">=</span> <span class="n">ART_ChangeModuleParentUI</span><span class="o">.</span><span class="n">ART_ChangeModuleParent_UI</span><span class="p">(</span><span class="n">currentParent</span><span class="p">,</span> <span class="n">moduleInst</span><span class="p">,</span> <span class="n">rigUiInst</span><span class="p">,</span> + <span class="n">interfaceUtils</span><span class="o">.</span><span class="n">getMainWindow</span><span class="p">())</span> + <span class="n">inst</span><span class="o">.</span><span class="n">show</span><span class="p">()</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.setMirrorModule"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.setMirrorModule">[docs]</a> <span class="k">def</span> <span class="nf">setMirrorModule</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">moduleInst</span><span class="p">,</span> <span class="n">rigUiInst</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Launch the interface that allows users to change the module's mirror module.</span> +<span class="sd"> Meaning, the module that is linked as a mirror of this module. Only modules of the same</span> +<span class="sd"> type can be linked as mirrors.</span> + +<span class="sd"> :param moduleInst: The specific instance of the module</span> +<span class="sd"> :param rigUiInst: The instance of the rig creator interface.</span> + +<span class="sd"> This will call on a separate class in Core/Interfaces called ART_SetMirrorModuleUI.py</span> +<span class="sd"> """</span> + + <span class="c1"># delete the UI if it already exists</span> + <span class="n">mayaWindow</span> <span class="o">=</span> <span class="n">interfaceUtils</span><span class="o">.</span><span class="n">getMainWindow</span><span class="p">()</span> + <span class="n">mayaWindow</span> <span class="o">=</span> <span class="n">mayaWindow</span><span class="o">.</span><span class="n">objectName</span><span class="p">()</span> + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">window</span><span class="p">(</span><span class="n">mayaWindow</span> <span class="o">+</span> <span class="s2">"|pyArtSetMirrorModuleUi"</span><span class="p">,</span> <span class="n">q</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">exists</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">deleteUI</span><span class="p">(</span><span class="n">mayaWindow</span> <span class="o">+</span> <span class="s2">"|pyArtSetMirrorModuleUi"</span><span class="p">)</span> + + <span class="c1"># launch a UI for prefix/suffix/preview again</span> + <span class="kn">import</span> <span class="nn">Interfaces.ART_SetMirrorModuleUI</span> <span class="k">as</span> <span class="nn">ART_SetMirrorModuleUI</span> + <span class="n">reload</span><span class="p">(</span><span class="n">ART_SetMirrorModuleUI</span><span class="p">)</span> + <span class="n">inst</span> <span class="o">=</span> <span class="n">ART_SetMirrorModuleUI</span><span class="o">.</span><span class="n">ART_SetMirrorModule_UI</span><span class="p">(</span><span class="n">moduleInst</span><span class="p">,</span> <span class="n">rigUiInst</span><span class="p">,</span> <span class="n">interfaceUtils</span><span class="o">.</span><span class="n">getMainWindow</span><span class="p">())</span> + <span class="n">inst</span><span class="o">.</span><span class="n">show</span><span class="p">()</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.jointMover_Build"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.jointMover_Build">[docs]</a> <span class="k">def</span> <span class="nf">jointMover_Build</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Import the joint mover file with the given path.</span> + +<span class="sd"> After importing the module's joint mover file, rename imported nodes to use module name.</span> +<span class="sd"> Then, assign existing matching materials to joint mover proxy geometry, deleting the imported</span> +<span class="sd"> materials if they were duplicates. Then parent into the main JointMover group. Lastly, hook up</span> +<span class="sd"> global scaling on the joint movers.</span> + + +<span class="sd"> :param path: Path of joint mover file to import</span> +<span class="sd"> """</span> + + <span class="c1"># get the full path for the joint mover file</span> + <span class="n">fullPath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">toolsPath</span><span class="p">,</span> <span class="n">path</span><span class="p">)</span> + + <span class="c1"># import the file</span> + <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">fullPath</span><span class="p">):</span> + <span class="n">nodes</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">file</span><span class="p">(</span><span class="n">fullPath</span><span class="p">,</span> <span class="n">i</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">iv</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s2">"mayaAscii"</span><span class="p">,</span> <span class="n">rnn</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">validTypes</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"transform"</span><span class="p">,</span> <span class="s2">"joint"</span><span class="p">,</span> <span class="s2">"ikHandle"</span><span class="p">]</span> + + <span class="c1"># loop through returned nodes from import, and find the mover_grp, renaming it and all</span> + <span class="c1"># children to have user specified name as prefix</span> + <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">nodes</span><span class="p">:</span> + <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">"|mover_grp"</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> + <span class="n">children</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listRelatives</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">allDescendents</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s2">"transform"</span><span class="p">)</span> + <span class="n">moverGrp</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="s2">"|"</span><span class="p">)[</span><span class="mi">2</span><span class="p">]</span> + <span class="n">movers</span> <span class="o">=</span> <span class="p">[</span><span class="n">moverGrp</span><span class="p">]</span> + + <span class="k">for</span> <span class="n">child</span> <span class="ow">in</span> <span class="n">children</span><span class="p">:</span> + <span class="k">try</span><span class="p">:</span> + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">nodeType</span><span class="p">(</span><span class="n">child</span><span class="p">)</span> <span class="ow">in</span> <span class="n">validTypes</span><span class="p">:</span> + <span class="n">movers</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">child</span><span class="p">)</span> + <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> + <span class="nb">print</span> <span class="n">e</span> + + <span class="k">for</span> <span class="n">mover</span> <span class="ow">in</span> <span class="n">movers</span><span class="p">:</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">rename</span><span class="p">(</span><span class="n">mover</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_"</span> <span class="o">+</span> <span class="n">mover</span><span class="p">)</span> + <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> + <span class="nb">print</span> <span class="n">mover</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_"</span> <span class="o">+</span> <span class="n">mover</span> + <span class="nb">print</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">)</span> + + <span class="c1"># exit loop</span> + <span class="k">break</span> + + <span class="c1"># assign materials if they exist, removing duplicate materials</span> + <span class="n">materials</span> <span class="o">=</span> <span class="p">[[</span><span class="s2">"*_blue_m"</span><span class="p">,</span> <span class="s2">"blue_m"</span><span class="p">],</span> <span class="p">[</span><span class="s2">"*_green_m"</span><span class="p">,</span> <span class="s2">"green_m"</span><span class="p">],</span> <span class="p">[</span><span class="s2">"*_red_m"</span><span class="p">,</span> <span class="s2">"red_m"</span><span class="p">],</span> + <span class="p">[</span><span class="s2">"*_white_m"</span><span class="p">,</span> <span class="s2">"white_m"</span><span class="p">],</span> <span class="p">[</span><span class="s2">"*_proxy_shader_tan"</span><span class="p">,</span> <span class="s2">"proxy_shader_tan"</span><span class="p">],</span> + <span class="p">[</span><span class="s2">"*_proxy_shader_black"</span><span class="p">,</span> <span class="s2">"proxy_shader_black"</span><span class="p">]]</span> + <span class="n">deleteMaterials</span> <span class="o">=</span> <span class="p">[]</span> + <span class="k">for</span> <span class="n">material</span> <span class="ow">in</span> <span class="n">materials</span><span class="p">:</span> + <span class="k">try</span><span class="p">:</span> + <span class="c1"># select materials for the joint mover</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">material</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> + <span class="n">foundMaterials</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="n">sl</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># loop through each color material (dupes)</span> + <span class="k">for</span> <span class="n">mat</span> <span class="ow">in</span> <span class="n">foundMaterials</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">hyperShade</span><span class="p">(</span><span class="n">objects</span><span class="o">=</span><span class="n">mat</span><span class="p">)</span> + <span class="n">assignedGeo</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="n">sl</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># select the geo and the original material, and assign</span> + <span class="n">originalMaterial</span> <span class="o">=</span> <span class="n">material</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> + <span class="k">for</span> <span class="n">geo</span> <span class="ow">in</span> <span class="n">assignedGeo</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">([</span><span class="n">geo</span><span class="p">,</span> <span class="n">originalMaterial</span><span class="p">])</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">hyperShade</span><span class="p">(</span><span class="n">assign</span><span class="o">=</span><span class="n">originalMaterial</span><span class="p">)</span> + + <span class="c1"># delete the material no longer needed</span> + <span class="n">deleteMaterials</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">mat</span><span class="p">)</span> + <span class="k">except</span><span class="p">:</span> + <span class="k">pass</span> + + <span class="c1"># delete all deleteMaterials</span> + <span class="k">for</span> <span class="n">mat</span> <span class="ow">in</span> <span class="n">deleteMaterials</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">mat</span><span class="p">)</span> + + <span class="c1"># add to JointMover grp</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">refresh</span><span class="p">(</span><span class="n">force</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="s2">"JointMover"</span><span class="p">):</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="n">empty</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">"JointMover"</span><span class="p">)</span> + + <span class="k">try</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">parent</span><span class="p">(</span><span class="s2">"|"</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_mover_grp"</span><span class="p">,</span> <span class="s2">"JointMover"</span><span class="p">)</span> + <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> + <span class="nb">print</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">)</span> + <span class="n">globalMover</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">findGlobalMoverFromName</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">globalMover</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setToolTo</span><span class="p">(</span><span class="s2">"moveSuperContext"</span><span class="p">)</span> + + <span class="c1"># obey visibility toggles</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigUiInst</span><span class="o">.</span><span class="n">setMoverVisibility</span><span class="p">()</span> + + <span class="c1"># 1/13/16 Change # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># hook up global scale on joint movers</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">movers</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnJointMovers</span> + + <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="p">[</span><span class="n">movers</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">movers</span><span class="p">[</span><span class="mi">1</span><span class="p">]]:</span> + <span class="k">for</span> <span class="n">mover</span> <span class="ow">in</span> <span class="n">each</span><span class="p">:</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">".globalScale"</span><span class="p">):</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">aliasAttr</span><span class="p">(</span><span class="s2">"globalScale"</span><span class="p">,</span> <span class="n">mover</span> <span class="o">+</span> <span class="s2">".scaleZ"</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">connectAttr</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">".globalScale"</span><span class="p">,</span> <span class="n">mover</span> <span class="o">+</span> <span class="s2">".scaleX"</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">connectAttr</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">".globalScale"</span><span class="p">,</span> <span class="n">mover</span> <span class="o">+</span> <span class="s2">".scaleY"</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">".scaleX"</span><span class="p">,</span> <span class="n">keyable</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">".scaleY"</span><span class="p">,</span> <span class="n">keyable</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="k">except</span><span class="p">:</span> + <span class="k">pass</span> + <span class="c1"># lock movers</span> + <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="n">movers</span><span class="p">:</span> + <span class="k">for</span> <span class="n">mover</span> <span class="ow">in</span> <span class="n">each</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">lockNode</span><span class="p">(</span><span class="n">mover</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="k">except</span><span class="p">:</span> + <span class="k">pass</span> + + <span class="c1"># 1/13/16 Change # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + + + <span class="k">else</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">confirmDialog</span><span class="p">(</span><span class="n">title</span><span class="o">=</span><span class="s2">"Joint Mover"</span><span class="p">,</span> <span class="n">message</span><span class="o">=</span><span class="s2">"Could not find associated joint mover file."</span><span class="p">,</span> + <span class="n">icon</span><span class="o">=</span><span class="s2">"critical"</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.selectScriptJob"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.selectScriptJob">[docs]</a> <span class="k">def</span> <span class="nf">selectScriptJob</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">info</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Change icon color of the given joint mover's button in the outliner to show selection status.</span> + +<span class="sd"> :param info: This list contains the button object, the joint mover control, and the original color icon.</span> + +<span class="sd"> If the control given is selected, the icon is switched to a white icon. If it is not selected, the icon</span> +<span class="sd"> is set back to the original passed in icon.</span> +<span class="sd"> """</span> + + <span class="n">pixmap</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QPixmap</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span> + <span class="n">pixmap</span><span class="o">.</span><span class="n">fill</span><span class="p">(</span><span class="n">QtGui</span><span class="o">.</span><span class="n">QColor</span><span class="p">(</span><span class="mi">255</span><span class="p">,</span> <span class="mi">255</span><span class="p">,</span> <span class="mi">255</span><span class="p">))</span> + <span class="n">whiteIcon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">pixmap</span><span class="p">)</span> + + <span class="c1"># for each item in the passed in info [outliner button, mover control, unselected stylesheet],check if</span> + <span class="c1"># the control is in the selection, and color the button appropriately</span> + <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">info</span><span class="p">:</span> + <span class="n">button</span> <span class="o">=</span> <span class="n">item</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> + <span class="n">control</span> <span class="o">=</span> <span class="n">item</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> + <span class="n">icon</span> <span class="o">=</span> <span class="n">item</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> + + <span class="n">selected</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="n">selection</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="k">if</span> <span class="n">control</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">selected</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">button</span><span class="p">]</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">icon</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">control</span> <span class="ow">in</span> <span class="n">selected</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">button</span><span class="p">]</span><span class="o">.</span><span class="n">setIcon</span><span class="p">(</span><span class="n">whiteIcon</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.createGlobalMoverButton"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.createGlobalMoverButton">[docs]</a> <span class="k">def</span> <span class="nf">createGlobalMoverButton</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">uiInstance</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Create the button in the outliner for the global mover control of a joint mover.</span> + +<span class="sd"> :param name: The name of the joint mover control.</span> +<span class="sd"> :param parent: The outliner widget the created button will be parented to.</span> +<span class="sd"> :param uiInstance: The Rig Creator interface instance.</span> +<span class="sd"> """</span> + + <span class="n">part</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)[</span><span class="mi">2</span><span class="p">]</span> + + <span class="c1"># create the icon</span> + <span class="n">pixmap</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QPixmap</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span> + <span class="n">pixmap</span><span class="o">.</span><span class="n">fill</span><span class="p">(</span><span class="n">QtGui</span><span class="o">.</span><span class="n">QColor</span><span class="p">(</span><span class="s2">"yellow"</span><span class="p">))</span> + <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">pixmap</span><span class="p">)</span> + + <span class="c1"># create the button</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_globalMoverBtn"</span><span class="p">]</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">(</span><span class="n">icon</span><span class="p">,</span> <span class="s2">""</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_globalMoverBtn"</span><span class="p">]</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">15</span><span class="p">))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_globalMoverBtn"</span><span class="p">]</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">15</span><span class="p">))</span> + <span class="n">uiInstance</span><span class="o">.</span><span class="n">treeWidget</span><span class="o">.</span><span class="n">setItemWidget</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_globalMoverBtn"</span><span class="p">])</span> + + <span class="c1"># connect and add to list</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_globalMoverBtn"</span><span class="p">]</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span> + <span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">selectMover</span><span class="p">,</span> <span class="n">part</span><span class="p">,</span> <span class="kc">True</span><span class="p">,</span> <span class="kc">False</span><span class="p">,</span> <span class="kc">False</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_globalMoverBtn"</span><span class="p">]))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outlinerControls</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_globalMoverBtn"</span><span class="p">,</span> <span class="n">name</span> <span class="o">+</span> <span class="s2">"_mover"</span><span class="p">,</span> <span class="n">icon</span><span class="p">])</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.createOffsetMoverButton"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.createOffsetMoverButton">[docs]</a> <span class="k">def</span> <span class="nf">createOffsetMoverButton</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">uiInstance</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Create the button in the outliner for the offset mover control of a joint mover.</span> + +<span class="sd"> :param name: The name of the joint mover control.</span> +<span class="sd"> :param parent: The outliner widget the created button will be parented to.</span> +<span class="sd"> :param uiInstance: The Rig Creator interface instance.</span> +<span class="sd"> """</span> + <span class="n">part</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)[</span><span class="mi">2</span><span class="p">]</span> + + <span class="c1"># create the icon</span> + <span class="n">pixmap</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QPixmap</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span> + <span class="n">pixmap</span><span class="o">.</span><span class="n">fill</span><span class="p">(</span><span class="n">QtGui</span><span class="o">.</span><span class="n">QColor</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span> <span class="mi">200</span><span class="p">,</span> <span class="mi">255</span><span class="p">))</span> + <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">pixmap</span><span class="p">)</span> + + <span class="c1"># create the button</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_offsetMoverBtn"</span><span class="p">]</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">(</span><span class="n">icon</span><span class="p">,</span> <span class="s2">""</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_offsetMoverBtn"</span><span class="p">]</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">15</span><span class="p">))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_offsetMoverBtn"</span><span class="p">]</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">15</span><span class="p">))</span> + <span class="n">uiInstance</span><span class="o">.</span><span class="n">treeWidget</span><span class="o">.</span><span class="n">setItemWidget</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_offsetMoverBtn"</span><span class="p">])</span> + + <span class="c1"># connect and add to list</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_offsetMoverBtn"</span><span class="p">]</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span> + <span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">selectMover</span><span class="p">,</span> <span class="n">part</span><span class="p">,</span> <span class="kc">False</span><span class="p">,</span> <span class="kc">True</span><span class="p">,</span> <span class="kc">False</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_offsetMoverBtn"</span><span class="p">]))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outlinerControls</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_offsetMoverBtn"</span><span class="p">,</span> <span class="n">name</span> <span class="o">+</span> <span class="s2">"_mover_offset"</span><span class="p">,</span> <span class="n">icon</span><span class="p">])</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.createMeshMoverButton"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.createMeshMoverButton">[docs]</a> <span class="k">def</span> <span class="nf">createMeshMoverButton</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">uiInstance</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Create the button in the outliner for the geometry mover control of a joint mover.</span> + +<span class="sd"> :param name: The name of the joint mover control.</span> +<span class="sd"> :param parent: The outliner widget the created button will be parented to.</span> +<span class="sd"> :param uiInstance: The Rig Creator interface instance.</span> + +<span class="sd"> Note: The geometry mover is purely for aesthetics and does not affect the rigging.</span> +<span class="sd"> """</span> + + <span class="n">part</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)[</span><span class="mi">2</span><span class="p">]</span> + + <span class="c1"># create the icon</span> + <span class="n">pixmap</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QPixmap</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span> + <span class="n">pixmap</span><span class="o">.</span><span class="n">fill</span><span class="p">(</span><span class="n">QtGui</span><span class="o">.</span><span class="n">QColor</span><span class="p">(</span><span class="mi">255</span><span class="p">,</span> <span class="mi">176</span><span class="p">,</span> <span class="mi">176</span><span class="p">))</span> + <span class="n">icon</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">pixmap</span><span class="p">)</span> + + <span class="c1"># create the button</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_geoMoverBtn"</span><span class="p">]</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">(</span><span class="n">icon</span><span class="p">,</span> <span class="s2">""</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_geoMoverBtn"</span><span class="p">]</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">15</span><span class="p">))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_geoMoverBtn"</span><span class="p">]</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">15</span><span class="p">))</span> + <span class="n">uiInstance</span><span class="o">.</span><span class="n">treeWidget</span><span class="o">.</span><span class="n">setItemWidget</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_geoMoverBtn"</span><span class="p">])</span> + + <span class="c1"># connect and add to list</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_geoMoverBtn"</span><span class="p">]</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span> + <span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">selectMover</span><span class="p">,</span> <span class="n">part</span><span class="p">,</span> <span class="kc">False</span><span class="p">,</span> <span class="kc">False</span><span class="p">,</span> <span class="kc">True</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_geoMoverBtn"</span><span class="p">]))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outlinerControls</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_geoMoverBtn"</span><span class="p">,</span> <span class="n">name</span> <span class="o">+</span> <span class="s2">"_mover_geo"</span><span class="p">,</span> <span class="n">icon</span><span class="p">])</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.createScriptJob"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.createScriptJob">[docs]</a> <span class="k">def</span> <span class="nf">createScriptJob</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Create the selection script job for the outliner buttons and their associated joint mover controls.</span> + +<span class="sd"> This function purely creates the script job. The script job function that is run is called self.selectScriptJob.</span> +<span class="sd"> """</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">scriptJob</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">scriptJob</span><span class="p">(</span> + <span class="n">event</span><span class="o">=</span><span class="p">[</span><span class="s2">"SelectionChanged"</span><span class="p">,</span> <span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">selectScriptJob</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">outlinerControls</span><span class="p">)],</span> <span class="n">runOnce</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> + <span class="n">parent</span><span class="o">=</span><span class="s2">"pyArtRigCreatorUi"</span><span class="p">,</span> <span class="n">kws</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">per</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigUiInst</span><span class="o">.</span><span class="n">scriptJobs</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">scriptJob</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.selectMover"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.selectMover">[docs]</a> <span class="k">def</span> <span class="nf">selectMover</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">part</span><span class="p">,</span> <span class="n">globalMover</span><span class="p">,</span> <span class="n">offsetMover</span><span class="p">,</span> <span class="n">geoMover</span><span class="p">,</span> <span class="n">button</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Select the appropriate joint mover control based on the args passed in. Color the associated button white</span> +<span class="sd"> to show selection status.</span> + +<span class="sd"> :param part: The name of the joint mover control.</span> +<span class="sd"> :param globalMover: Boolean of whether or not given control is a global mover.</span> +<span class="sd"> :param offsetMover: Boolean of whether or not given control is an offset mover.</span> +<span class="sd"> :param geoMover: Boolean of whether or not given control is a mesh mover.</span> +<span class="sd"> :param button: The button in the outliner associated with the given mover.</span> +<span class="sd"> """</span> + + <span class="c1"># select mover and color button</span> + <span class="n">name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="n">part</span> + + <span class="c1"># get modifiers</span> + <span class="n">toggle</span> <span class="o">=</span> <span class="kc">False</span> + <span class="n">mods</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getModifiers</span><span class="p">()</span> + <span class="k">if</span> <span class="p">(</span><span class="n">mods</span> <span class="o">&</span> <span class="mi">1</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> + <span class="n">toggle</span> <span class="o">=</span> <span class="kc">True</span> + + <span class="k">if</span> <span class="n">globalMover</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_mover"</span><span class="p">,</span> <span class="n">tgl</span><span class="o">=</span><span class="n">toggle</span><span class="p">)</span> + + <span class="n">selected</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="n">sl</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="k">if</span> <span class="n">name</span> <span class="o">+</span> <span class="s2">"_mover"</span> <span class="ow">in</span> <span class="n">selected</span><span class="p">:</span> + <span class="n">button</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="s1">'background-color: rgb(255, 255, 255);'</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">button</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="s1">'background-color: rgb(255, 255, 0);'</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">offsetMover</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_mover_offset"</span><span class="p">,</span> <span class="n">tgl</span><span class="o">=</span><span class="n">toggle</span><span class="p">)</span> + + <span class="n">selected</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="n">sl</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="k">if</span> <span class="n">name</span> <span class="o">+</span> <span class="s2">"_mover_offset"</span> <span class="ow">in</span> <span class="n">selected</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_offsetMoverBtn"</span><span class="p">]</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="s1">'background-color: rgb(255, 255, 255);'</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_offsetMoverBtn"</span><span class="p">]</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="s1">'background-color: rgb(100, 220, 255);'</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">geoMover</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_mover_geo"</span><span class="p">,</span> <span class="n">tgl</span><span class="o">=</span><span class="n">toggle</span><span class="p">)</span> + + <span class="n">selected</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="n">sl</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="k">if</span> <span class="n">name</span> <span class="o">+</span> <span class="s2">"_mover_geo"</span> <span class="ow">in</span> <span class="n">selected</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_geoMoverBtn"</span><span class="p">]</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="s1">'background-color: rgb(255, 255, 255);'</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_geoMoverBtn"</span><span class="p">]</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="s1">'background-color: rgb(255, 176, 176);'</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.createContextMenu"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.createContextMenu">[docs]</a> <span class="k">def</span> <span class="nf">createContextMenu</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">point</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Create the right-click menu for the module.</span> + +<span class="sd"> :param point: Point on monitor to spawn the right-click menu.</span> + +<span class="sd"> Default menu actions created:</span> +<span class="sd"> * Copy Settings</span> +<span class="sd"> * Paste Settings</span> +<span class="sd"> * Reset Settings</span> +<span class="sd"> * Delete Module</span> +<span class="sd"> * Create Mirror of this Module</span> +<span class="sd"> * Mirror Transformations (only if a mirror is linked)</span> +<span class="sd"> """</span> + + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + <span class="n">mirror</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".mirrorModule"</span><span class="p">)</span> + + <span class="c1"># icons</span> + <span class="n">icon_copy</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">"System/copy.png"</span><span class="p">))</span> + <span class="n">icon_paste</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">"System/paste.png"</span><span class="p">))</span> + <span class="n">icon_reset</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">"System/reset.png"</span><span class="p">))</span> + <span class="n">icon_delete</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">"System/delete.png"</span><span class="p">))</span> + <span class="n">icon_mirror</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">"System/mirrorXforms.png"</span><span class="p">))</span> + <span class="n">icon_createMirror</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QIcon</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">"System/createMirror.png"</span><span class="p">))</span> + + <span class="c1"># create the context menu</span> + <span class="k">if</span> <span class="n">networkNode</span> <span class="o">!=</span> <span class="s2">"ART_Root_Module"</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">contextMenu</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QMenu</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">contextMenu</span><span class="o">.</span><span class="n">addAction</span><span class="p">(</span><span class="n">icon_copy</span><span class="p">,</span> <span class="s2">"Copy Settings"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">copySettings</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">contextMenu</span><span class="o">.</span><span class="n">addAction</span><span class="p">(</span><span class="n">icon_paste</span><span class="p">,</span> <span class="s2">"Paste Settings"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">pasteSettings</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">contextMenu</span><span class="o">.</span><span class="n">addAction</span><span class="p">(</span><span class="n">icon_reset</span><span class="p">,</span> <span class="s2">"Reset Settings"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">resetSettings</span><span class="p">)</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">contextMenu</span><span class="o">.</span><span class="n">addSeparator</span><span class="p">()</span> + <span class="k">if</span> <span class="n">mirror</span> <span class="o">!=</span> <span class="kc">None</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">contextMenu</span><span class="o">.</span><span class="n">addAction</span><span class="p">(</span><span class="n">icon_mirror</span><span class="p">,</span> <span class="s2">"Mirror Transformations to "</span> <span class="o">+</span> <span class="n">mirror</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mirrorTransformations</span><span class="p">)</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">contextMenu</span><span class="o">.</span><span class="n">addAction</span><span class="p">(</span><span class="n">icon_createMirror</span><span class="p">,</span> <span class="s2">"Create Mirror of this Module"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">createMirrorOfModule_UI</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">contextMenu</span><span class="o">.</span><span class="n">addSeparator</span><span class="p">()</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">contextMenu</span><span class="o">.</span><span class="n">addAction</span><span class="p">(</span><span class="n">icon_delete</span><span class="p">,</span> <span class="s2">"Delete Module"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">deleteModule</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">contextMenu</span><span class="o">.</span><span class="n">exec_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">groupBox</span><span class="o">.</span><span class="n">mapToGlobal</span><span class="p">(</span><span class="n">point</span><span class="p">))</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.copySettings"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.copySettings">[docs]</a> <span class="k">def</span> <span class="nf">copySettings</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Copy the values from the network node of the module and store them in a temp file on disk.</span> + +<span class="sd"> This function is used in the right-click menu of the module on the skeleton settings interface.</span> +<span class="sd"> Occasionally, it is called outside of the menu. For example, when creating a mirror of the module,</span> +<span class="sd"> the settings are copied for the source module to then be later pasted on the mirror.</span> +<span class="sd"> """</span> + + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + <span class="n">attrs</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listAttr</span><span class="p">(</span><span class="n">networkNode</span><span class="p">,</span> <span class="n">ud</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">hd</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="n">attrData</span> <span class="o">=</span> <span class="p">[]</span> + <span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="n">attrs</span><span class="p">:</span> + <span class="n">value</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">attr</span><span class="p">)</span> + <span class="n">attrData</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">attr</span><span class="p">,</span> <span class="n">value</span><span class="p">])</span> + + <span class="c1"># write out attrData to a temp file</span> + <span class="n">tempDir</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">internalVar</span><span class="p">(</span><span class="n">userTmpDir</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">clipboardFile</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">normcase</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">tempDir</span><span class="p">,</span> <span class="s2">"ART_clipboard.txt"</span><span class="p">))</span> + + <span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">clipboardFile</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span> + + <span class="c1"># dump the data with json</span> + <span class="n">json</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">attrData</span><span class="p">,</span> <span class="n">f</span><span class="p">)</span> + <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.pasteSettings"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.pasteSettings">[docs]</a> <span class="k">def</span> <span class="nf">pasteSettings</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Paste the settings from the temp file on disk to the module's network node.</span> + +<span class="sd"> This function is used in the right-click menu of the module on the skeleton settings interface.</span> +<span class="sd"> Occasionally, it is called outside of the menu. For example, when creating a mirror of the module,</span> +<span class="sd"> the settings are copied for the source module to then be later pasted on the mirror.</span> + +<span class="sd"> After settings are pasted, applyModuleChanges is called to update the joint mover in the scene with</span> +<span class="sd"> the latest values. updateSettingsUI is also called to update the outliner.</span> +<span class="sd"> """</span> + + <span class="c1"># it does this 4 times because for some reason it would not grab everything one time through. Investigate</span> + <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">4</span><span class="p">):</span> + + <span class="n">tempDir</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">internalVar</span><span class="p">(</span><span class="n">userTmpDir</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">clipboardFile</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">normcase</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">tempDir</span><span class="p">,</span> <span class="s2">"ART_clipboard.txt"</span><span class="p">))</span> + + <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">clipboardFile</span><span class="p">):</span> + <span class="c1"># load the data</span> + <span class="n">json_file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">clipboardFile</span><span class="p">)</span> + <span class="n">data</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">json_file</span><span class="p">)</span> + <span class="n">json_file</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> + + <span class="c1"># attempt to paste data if module type is the same</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + <span class="n">moduleType</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".moduleType"</span><span class="p">)</span> + <span class="k">if</span> <span class="n">moduleType</span> <span class="o">==</span> <span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]:</span> + + <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span> + <span class="n">attr</span> <span class="o">=</span> <span class="n">each</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> + <span class="n">value</span> <span class="o">=</span> <span class="n">each</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> + + <span class="k">try</span><span class="p">:</span> + <span class="n">attrType</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">attr</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> + + <span class="k">if</span> <span class="n">attrType</span> <span class="o">!=</span> <span class="s2">"string"</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">attr</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">attr</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="k">except</span><span class="p">:</span> + <span class="k">pass</span> + + <span class="k">else</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">"No data in clipboard"</span><span class="p">)</span> + + <span class="c1"># relaunch the UI</span> + <span class="bp">self</span><span class="o">.</span><span class="n">updateSettingsUI</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">applyModuleChanges</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.resetSettings"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.resetSettings">[docs]</a> <span class="k">def</span> <span class="nf">resetSettings</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Reset the settings of the module's network node.</span> + +<span class="sd"> This function is used in the right-click menu of the module on the skeleton settings interface.</span> +<span class="sd"> Occasionally, it is called outside of the menu.</span> + +<span class="sd"> After settings are reset, applyModuleChanges is called to update the joint mover in the scene with</span> +<span class="sd"> the latest values. updateSettingsUI is also called to update the outliner.</span> +<span class="sd"> """</span> + + <span class="c1"># it does this 4 times because for some reason it would not grab everything one time through. Investigate</span> + <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">4</span><span class="p">):</span> + + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + <span class="n">attrs</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listAttr</span><span class="p">(</span><span class="n">networkNode</span><span class="p">,</span> <span class="n">ud</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="n">attrs</span><span class="p">:</span> + <span class="n">attrType</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">attr</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> + + <span class="k">if</span> <span class="n">attrType</span> <span class="o">==</span> <span class="s2">"double"</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">attr</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">attr</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">attrType</span> <span class="o">==</span> <span class="s2">"bool"</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">attr</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">attr</span><span class="p">,</span> <span class="kc">True</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">attrType</span> <span class="o">==</span> <span class="s2">"enum"</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">attr</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">attr</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># relaunch the UI</span> + <span class="bp">self</span><span class="o">.</span><span class="n">updateSettingsUI</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">applyModuleChanges</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.resetTransforms"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.resetTransforms">[docs]</a> <span class="k">def</span> <span class="nf">resetTransforms</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">translate</span><span class="p">,</span> <span class="n">rotate</span><span class="p">,</span> <span class="n">scale</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Reset the given attributes of all movers in the module.</span> + +<span class="sd"> :param translate: Boolean of whether or not to reset translation values.</span> +<span class="sd"> :param rotate: Boolean of whether or not to reset the rotation values.</span> +<span class="sd"> :param scale: Boolean of whether or not to reset the scale values.</span> +<span class="sd"> :param name: The module name. (prefix + basename + suffix)</span> + +<span class="sd"> This function is mainly called from ART_ResetModeUI.</span> + +<span class="sd"> """</span> + + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_mover_grp"</span><span class="p">,</span> <span class="n">hi</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">selection</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="n">sl</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="n">globalMovers</span> <span class="o">=</span> <span class="p">[]</span> + <span class="n">offsetMovers</span> <span class="o">=</span> <span class="p">[]</span> + <span class="n">geoMovers</span> <span class="o">=</span> <span class="p">[]</span> + + <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="n">selection</span><span class="p">:</span> + <span class="k">if</span> <span class="n">each</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">"_mover"</span><span class="p">)</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span> + <span class="k">if</span> <span class="n">each</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="s2">"_mover"</span><span class="p">)[</span><span class="mi">2</span><span class="p">]</span> <span class="o">==</span> <span class="s2">""</span><span class="p">:</span> + <span class="n">globalMovers</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">each</span><span class="p">)</span> + <span class="k">if</span> <span class="n">each</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">"_mover_offset"</span><span class="p">)</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span> + <span class="k">if</span> <span class="n">each</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="s2">"_mover_offset"</span><span class="p">)[</span><span class="mi">2</span><span class="p">]</span> <span class="o">==</span> <span class="s2">""</span><span class="p">:</span> + <span class="n">offsetMovers</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">each</span><span class="p">)</span> + <span class="k">if</span> <span class="n">each</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">"_mover_geo"</span><span class="p">)</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span> + <span class="k">if</span> <span class="n">each</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="s2">"_mover_geo"</span><span class="p">)[</span><span class="mi">2</span><span class="p">]</span> <span class="o">==</span> <span class="s2">""</span><span class="p">:</span> + <span class="n">geoMovers</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">each</span><span class="p">)</span> + + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">clear</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="k">for</span> <span class="n">moverList</span> <span class="ow">in</span> <span class="p">[</span><span class="n">globalMovers</span><span class="p">,</span> <span class="n">offsetMovers</span><span class="p">,</span> <span class="n">geoMovers</span><span class="p">]:</span> + <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="n">moverList</span><span class="p">:</span> + <span class="k">if</span> <span class="n">translate</span><span class="p">:</span> + <span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">".tx"</span><span class="p">,</span> <span class="s2">".ty"</span><span class="p">,</span> <span class="s2">".tz"</span><span class="p">]:</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">each</span> <span class="o">+</span> <span class="n">attr</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> + <span class="k">except</span><span class="p">:</span> + <span class="k">pass</span> + <span class="k">if</span> <span class="n">rotate</span><span class="p">:</span> + <span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">".rx"</span><span class="p">,</span> <span class="s2">".ry"</span><span class="p">,</span> <span class="s2">".rz"</span><span class="p">]:</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">each</span> <span class="o">+</span> <span class="n">attr</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> + <span class="k">except</span><span class="p">:</span> + <span class="k">pass</span> + <span class="k">if</span> <span class="n">scale</span><span class="p">:</span> + <span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">".sx"</span><span class="p">,</span> <span class="s2">".sy"</span><span class="p">,</span> <span class="s2">".sz"</span><span class="p">]:</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">each</span> <span class="o">+</span> <span class="n">attr</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> + <span class="k">except</span><span class="p">:</span> + <span class="k">pass</span> + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">window</span><span class="p">(</span><span class="s2">"ART_ResetXformsModeWin"</span><span class="p">,</span> <span class="n">exists</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">deleteUI</span><span class="p">(</span><span class="s2">"ART_ResetXformsModeWin"</span><span class="p">,</span> <span class="n">wnd</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.deleteModule"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.deleteModule">[docs]</a> <span class="k">def</span> <span class="nf">deleteModule</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Delete the module and all associated nodes and interfaces.</span> + +<span class="sd"> First, this will delete the joint mover, remove the entry from the outliner and the skeleton settings UI.</span> +<span class="sd"> Then, it has to deal with any connected modules or mirror modules and resolve any issues there.</span> + +<span class="sd"> """</span> + + <span class="c1"># delete the joint mover</span> + <span class="n">movers</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnJointMovers</span> + + <span class="k">for</span> <span class="n">moverGrp</span> <span class="ow">in</span> <span class="n">movers</span><span class="p">:</span> + <span class="k">for</span> <span class="n">mover</span> <span class="ow">in</span> <span class="n">moverGrp</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">lockNode</span><span class="p">(</span><span class="n">mover</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + + <span class="n">cmds</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_mover_grp"</span><span class="p">)</span> + + <span class="c1"># remove the entry from the outliner</span> + <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">rigUiInst</span><span class="o">.</span><span class="n">treeWidget</span><span class="o">.</span><span class="n">indexOfTopLevelItem</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">outlinerWidgets</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_treeModule"</span><span class="p">])</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigUiInst</span><span class="o">.</span><span class="n">treeWidget</span><span class="o">.</span><span class="n">takeTopLevelItem</span><span class="p">(</span><span class="n">index</span><span class="p">)</span> + + <span class="c1"># remove the groupbox</span> + <span class="bp">self</span><span class="o">.</span><span class="n">groupBox</span><span class="o">.</span><span class="n">setParent</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span> + + <span class="c1"># deal with mirror module</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + <span class="n">mirrorModule</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".mirrorModule"</span><span class="p">)</span> + <span class="k">if</span> <span class="n">mirrorModule</span> <span class="o">!=</span> <span class="kc">None</span><span class="p">:</span> + <span class="k">if</span> <span class="n">mirrorModule</span> <span class="o">!=</span> <span class="s2">"None"</span><span class="p">:</span> + <span class="n">modules</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">returnRigModules</span><span class="p">()</span> + <span class="k">for</span> <span class="n">mod</span> <span class="ow">in</span> <span class="n">modules</span><span class="p">:</span> + <span class="n">modName</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">mod</span> <span class="o">+</span> <span class="s2">".moduleName"</span><span class="p">)</span> + <span class="k">if</span> <span class="n">modName</span> <span class="o">==</span> <span class="n">mirrorModule</span><span class="p">:</span> + + <span class="c1"># set the mirrored version</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">mod</span> <span class="o">+</span> <span class="s2">".mirrorModule"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">mod</span> <span class="o">+</span> <span class="s2">".mirrorModule"</span><span class="p">,</span> <span class="s2">"None"</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s2">"string"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># get instance of mirror module's class</span> + <span class="n">modType</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">mod</span> <span class="o">+</span> <span class="s2">".moduleType"</span><span class="p">)</span> + <span class="n">modName</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">mod</span> <span class="o">+</span> <span class="s2">".moduleName"</span><span class="p">)</span> + <span class="n">module</span> <span class="o">=</span> <span class="nb">__import__</span><span class="p">(</span><span class="s2">"RigModules."</span> <span class="o">+</span> <span class="n">modType</span><span class="p">,</span> <span class="p">{},</span> <span class="p">{},</span> <span class="p">[</span><span class="n">modType</span><span class="p">])</span> + + <span class="c1"># get the class name from that module file (returns Modules.ART_Root.ART_Root for example)</span> + <span class="n">moduleClass</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">module</span><span class="p">,</span> <span class="n">module</span><span class="o">.</span><span class="n">className</span><span class="p">)</span> + + <span class="c1"># find the instance of that module and call on the skeletonSettings_UI function</span> + <span class="n">moduleInst</span> <span class="o">=</span> <span class="n">moduleClass</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rigUiInst</span><span class="p">,</span> <span class="n">modName</span><span class="p">)</span> + + <span class="c1"># find the current groupBox for this module</span> + <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rigUiInst</span><span class="o">.</span><span class="n">moduleSettingsLayout</span><span class="o">.</span><span class="n">count</span><span class="p">()):</span> + <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rigUiInst</span><span class="o">.</span><span class="n">moduleSettingsLayout</span><span class="o">.</span><span class="n">itemAt</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">.</span><span class="n">widget</span><span class="p">())</span> <span class="o">==</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGroupBox</span><span class="p">:</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">rigUiInst</span><span class="o">.</span><span class="n">moduleSettingsLayout</span><span class="o">.</span><span class="n">itemAt</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">.</span><span class="n">widget</span><span class="p">()</span><span class="o">.</span><span class="n">title</span><span class="p">()</span> <span class="o">==</span> <span class="n">modName</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigUiInst</span><span class="o">.</span><span class="n">moduleSettingsLayout</span><span class="o">.</span><span class="n">itemAt</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">.</span><span class="n">widget</span><span class="p">()</span><span class="o">.</span><span class="n">setParent</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span> + + <span class="c1"># relaunch the skeleton settings UI with new info</span> + <span class="n">moduleInst</span><span class="o">.</span><span class="n">skeletonSettings_UI</span><span class="p">(</span><span class="n">modName</span><span class="p">)</span> + + <span class="c1"># check for any attached modules</span> + <span class="n">attachedModules</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">checkForDependencies</span><span class="p">()</span> + <span class="n">elementList</span> <span class="o">=</span> <span class="p">[]</span> + <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">attachedModules</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> + + <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="n">attachedModules</span><span class="p">:</span> + <span class="n">elementList</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">each</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="s2">" -> parent changed from: "</span><span class="p">,</span> <span class="n">each</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="s2">" to: "</span><span class="p">,</span> <span class="s2">"root</span><span class="se">\n</span><span class="s2">"</span><span class="p">])</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">parent</span><span class="p">(</span><span class="n">each</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">+</span> <span class="s2">"_mover_grp"</span><span class="p">,</span> <span class="s2">"root_mover"</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">each</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s2">".parentModuleBone"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">each</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s2">".parentModuleBone"</span><span class="p">,</span> <span class="s2">"root"</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s2">"string"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">each</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span><span class="o">.</span><span class="n">currentParent</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="s2">"root"</span><span class="p">)</span> + <span class="n">mover</span> <span class="o">=</span> <span class="s2">"root_mover"</span> + + <span class="c1"># create the connection geo between the two</span> + <span class="n">childMover</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">findOffsetMoverFromName</span><span class="p">(</span><span class="n">each</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> + <span class="n">riggingUtils</span><span class="o">.</span><span class="n">createBoneConnection</span><span class="p">(</span><span class="n">mover</span><span class="p">,</span> <span class="n">childMover</span><span class="p">,</span> <span class="n">each</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> + <span class="n">each</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span><span class="o">.</span><span class="n">applyModuleChanges</span><span class="p">(</span><span class="n">each</span><span class="p">[</span><span class="mi">3</span><span class="p">])</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">clear</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># remove the network node</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">networkNode</span><span class="p">)</span> + + <span class="c1"># delete scriptJob</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">scriptJob</span><span class="p">(</span><span class="n">kill</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">scriptJob</span><span class="p">,</span> <span class="n">force</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">updateBoneCount</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigUiInst</span><span class="o">.</span><span class="n">moduleInstances</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> + + <span class="c1"># warn user about changes</span> + <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">attachedModules</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> + <span class="n">winParent</span> <span class="o">=</span> <span class="n">interfaceUtils</span><span class="o">.</span><span class="n">getMainWindow</span><span class="p">()</span> + <span class="n">win</span> <span class="o">=</span> <span class="n">interfaceUtils</span><span class="o">.</span><span class="n">DialogMessage</span><span class="p">(</span><span class="s2">"Attention!"</span><span class="p">,</span> + <span class="s2">"The following modules have had their parent changed</span><span class="se">\</span> +<span class="s2"> due to the change in this module's structure:"</span><span class="p">,</span> + <span class="n">elementList</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="n">winParent</span><span class="p">)</span> + <span class="n">win</span><span class="o">.</span><span class="n">show</span><span class="p">()</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.checkForDependencies"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.checkForDependencies">[docs]</a> <span class="k">def</span> <span class="nf">checkForDependencies</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method will check modules for any attached modules or children modules.</span> + +<span class="sd"> This method is generally called when deleting a module or when changing a module name</span> +<span class="sd"> so that any connected modules are updated accordingly.</span> + +<span class="sd"> :return: attached modules</span> + +<span class="sd"> """</span> + + <span class="c1"># This method will check our module for any attached modules</span> + <span class="n">modules</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getAllModules</span> + <span class="n">joints</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnCreatedJoints</span> + + <span class="n">attachedMods</span> <span class="o">=</span> <span class="p">[]</span> + <span class="n">instances</span> <span class="o">=</span> <span class="p">{}</span> + + <span class="k">for</span> <span class="n">inst</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">rigUiInst</span><span class="o">.</span><span class="n">moduleInstances</span><span class="p">:</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="n">inst</span><span class="o">.</span><span class="n">returnNetworkNode</span> + <span class="n">instances</span><span class="p">[</span><span class="n">networkNode</span><span class="p">]</span> <span class="o">=</span> <span class="n">inst</span> + + <span class="k">for</span> <span class="n">module</span> <span class="ow">in</span> <span class="n">modules</span><span class="p">:</span> + <span class="n">parentJoint</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">module</span> <span class="o">+</span> <span class="s2">".parentModuleBone"</span><span class="p">)</span> + <span class="n">moduleName</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">module</span> <span class="o">+</span> <span class="s2">".moduleName"</span><span class="p">)</span> + <span class="k">if</span> <span class="n">parentJoint</span> <span class="ow">in</span> <span class="n">joints</span><span class="p">:</span> + <span class="n">instance</span> <span class="o">=</span> <span class="n">instances</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">module</span><span class="p">)</span> + <span class="n">attachedMods</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">module</span><span class="p">,</span> <span class="n">parentJoint</span><span class="p">,</span> <span class="n">moduleName</span><span class="p">,</span> <span class="n">instance</span><span class="p">])</span> + + <span class="k">return</span> <span class="n">attachedMods</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.createMirrorOfModule_UI"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.createMirrorOfModule_UI">[docs]</a> <span class="k">def</span> <span class="nf">createMirrorOfModule_UI</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method builds the interface for creating a mirror of a module.</span> + +<span class="sd"> .. image:: /images/mirrorModule.png</span> + +<span class="sd"> """</span> + + <span class="c1"># copy the settings of the module</span> + <span class="bp">self</span><span class="o">.</span><span class="n">copySettings</span><span class="p">()</span> + + <span class="c1"># get basename and classname</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + <span class="n">baseName</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".baseName"</span><span class="p">)</span> + <span class="n">className</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".moduleType"</span><span class="p">)</span> + + <span class="c1"># launch a UI to get the name information</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mirrorWindow</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QMainWindow</span><span class="p">()</span> + + <span class="c1"># load stylesheet</span> + <span class="n">styleSheetFile</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">toolsPath</span><span class="p">,</span> <span class="s2">"Core/Scripts/Interfaces/StyleSheets/mainScheme.qss"</span><span class="p">)</span> + <span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">styleSheetFile</span><span class="p">,</span> <span class="s2">"r"</span><span class="p">)</span> + <span class="n">style</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">()</span> + <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">mirrorWindow</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="n">style</span><span class="p">)</span> + + <span class="c1"># size policies</span> + <span class="n">mainSizePolicy</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QSizePolicy</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QSizePolicy</span><span class="o">.</span><span class="n">Fixed</span><span class="p">,</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QSizePolicy</span><span class="o">.</span><span class="n">Fixed</span><span class="p">)</span> + + <span class="c1"># create the main widget</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mainWidget</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QWidget</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mirrorWindow</span><span class="o">.</span><span class="n">setCentralWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">mainWidget</span><span class="p">)</span> + + <span class="c1"># set qt object name</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mirrorWindow</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">"ART_createMirrorModuleUI"</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mirrorWindow</span><span class="o">.</span><span class="n">setWindowTitle</span><span class="p">(</span><span class="s2">"Create Mirror Module"</span><span class="p">)</span> + + <span class="c1"># create the mainLayout for the rig creator UI</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mainLayout</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QVBoxLayout</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">mainWidget</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mainLayout</span><span class="o">.</span><span class="n">setContentsMargins</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">mirrorWindow</span><span class="o">.</span><span class="n">resize</span><span class="p">(</span><span class="mi">300</span><span class="p">,</span> <span class="mi">150</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mirrorWindow</span><span class="o">.</span><span class="n">setSizePolicy</span><span class="p">(</span><span class="n">mainSizePolicy</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mirrorWindow</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">300</span><span class="p">,</span> <span class="mi">150</span><span class="p">))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mirrorWindow</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">300</span><span class="p">,</span> <span class="mi">150</span><span class="p">))</span> + + <span class="c1"># create the background image</span> + <span class="bp">self</span><span class="o">.</span><span class="n">frame</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QFrame</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mainLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">frame</span><span class="p">)</span> + + <span class="c1"># create the layout for the widgets</span> + <span class="bp">self</span><span class="o">.</span><span class="n">widgetLayout</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QVBoxLayout</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">frame</span><span class="p">)</span> + + <span class="c1"># create the prefix pair of fields</span> + <span class="bp">self</span><span class="o">.</span><span class="n">prefixForm</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QFormLayout</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">widgetLayout</span><span class="o">.</span><span class="n">addLayout</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">prefixForm</span><span class="p">)</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">prefixLabel</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QLabel</span><span class="p">(</span><span class="s2">"Prefix: "</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">prefixForm</span><span class="o">.</span><span class="n">setWidget</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QFormLayout</span><span class="o">.</span><span class="n">LabelRole</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">prefixLabel</span><span class="p">)</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">prefix</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QLineEdit</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">prefixForm</span><span class="o">.</span><span class="n">setWidget</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QFormLayout</span><span class="o">.</span><span class="n">FieldRole</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">prefix</span><span class="p">)</span> + + <span class="c1"># hookup signal/slot connection</span> + <span class="bp">self</span><span class="o">.</span><span class="n">prefix</span><span class="o">.</span><span class="n">textChanged</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">updatePreview</span><span class="p">,</span> <span class="n">baseName</span><span class="p">))</span> + + <span class="c1"># create the suffix pair of fields</span> + <span class="bp">self</span><span class="o">.</span><span class="n">suffixForm</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QFormLayout</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">widgetLayout</span><span class="o">.</span><span class="n">addLayout</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">suffixForm</span><span class="p">)</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">suffixLabel</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QLabel</span><span class="p">(</span><span class="s2">"Suffix: "</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">suffixForm</span><span class="o">.</span><span class="n">setWidget</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QFormLayout</span><span class="o">.</span><span class="n">LabelRole</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">suffixLabel</span><span class="p">)</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">suffix</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QLineEdit</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">suffixForm</span><span class="o">.</span><span class="n">setWidget</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QFormLayout</span><span class="o">.</span><span class="n">FieldRole</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">suffix</span><span class="p">)</span> + + <span class="c1"># hookup signal/slot connection</span> + <span class="bp">self</span><span class="o">.</span><span class="n">suffix</span><span class="o">.</span><span class="n">textChanged</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">updatePreview</span><span class="p">,</span> <span class="n">baseName</span><span class="p">))</span> + + <span class="c1"># spacer</span> + <span class="n">spacerItem</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QSpacerItem</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">40</span><span class="p">,</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QSizePolicy</span><span class="o">.</span><span class="n">Minimum</span><span class="p">,</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QSizePolicy</span><span class="o">.</span><span class="n">Expanding</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">widgetLayout</span><span class="o">.</span><span class="n">addItem</span><span class="p">(</span><span class="n">spacerItem</span><span class="p">)</span> + + <span class="c1"># realtime preview of final module name</span> + <span class="bp">self</span><span class="o">.</span><span class="n">previewForm</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QFormLayout</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">widgetLayout</span><span class="o">.</span><span class="n">addLayout</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">previewForm</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">previewLabel</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QLabel</span><span class="p">(</span><span class="s2">"Preview: "</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">previewName</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QLabel</span><span class="p">(</span><span class="n">baseName</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">previewName</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">previewName</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">previewName</span><span class="o">.</span><span class="n">setAlignment</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">Qt</span><span class="o">.</span><span class="n">AlignHCenter</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">previewForm</span><span class="o">.</span><span class="n">setWidget</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QFormLayout</span><span class="o">.</span><span class="n">LabelRole</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">previewLabel</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">previewForm</span><span class="o">.</span><span class="n">setWidget</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QFormLayout</span><span class="o">.</span><span class="n">FieldRole</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">previewName</span><span class="p">)</span> + + <span class="c1"># set preview font</span> + <span class="n">font</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QFont</span><span class="p">()</span> + <span class="n">font</span><span class="o">.</span><span class="n">setPointSize</span><span class="p">(</span><span class="mi">12</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">previewName</span><span class="o">.</span><span class="n">setFont</span><span class="p">(</span><span class="n">font</span><span class="p">)</span> + + <span class="n">spacerItem1</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QSpacerItem</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">40</span><span class="p">,</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QSizePolicy</span><span class="o">.</span><span class="n">Minimum</span><span class="p">,</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QSizePolicy</span><span class="o">.</span><span class="n">Expanding</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">widgetLayout</span><span class="o">.</span><span class="n">addItem</span><span class="p">(</span><span class="n">spacerItem1</span><span class="p">)</span> + + <span class="c1"># create button</span> + <span class="bp">self</span><span class="o">.</span><span class="n">createButton</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">(</span><span class="s2">"CREATE"</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">createButton</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">"blueButton"</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">widgetLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">createButton</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">createButton</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">285</span><span class="p">,</span> <span class="mi">40</span><span class="p">))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">createButton</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">QSize</span><span class="p">(</span><span class="mi">285</span><span class="p">,</span> <span class="mi">40</span><span class="p">))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">createButton</span><span class="o">.</span><span class="n">setSizePolicy</span><span class="p">(</span><span class="n">mainSizePolicy</span><span class="p">)</span> + <span class="n">font</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QFont</span><span class="p">()</span> + <span class="n">font</span><span class="o">.</span><span class="n">setPointSize</span><span class="p">(</span><span class="mi">12</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">createButton</span><span class="o">.</span><span class="n">setFont</span><span class="p">(</span><span class="n">font</span><span class="p">)</span> + + <span class="c1"># hookup signal/slot on create button</span> + <span class="bp">self</span><span class="o">.</span><span class="n">createButton</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">createMirrorModule</span><span class="p">)</span> + + <span class="c1"># show the window</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mirrorWindow</span><span class="o">.</span><span class="n">show</span><span class="p">()</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.updatePreview"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.updatePreview">[docs]</a> <span class="k">def</span> <span class="nf">updatePreview</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">baseName</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This simple method updates the module preview field(QLineEdit) with the entered prefix and suffix.</span> + +<span class="sd"> :param baseName: base name of the module (example: arm)</span> + +<span class="sd"> """</span> + + <span class="n">prefix</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">prefix</span><span class="o">.</span><span class="n">text</span><span class="p">())</span> + <span class="n">suffix</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">suffix</span><span class="o">.</span><span class="n">text</span><span class="p">())</span> + + <span class="n">string</span> <span class="o">=</span> <span class="s2">""</span> + <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">prefix</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> + <span class="n">string</span> <span class="o">+=</span> <span class="n">prefix</span> <span class="o">+</span> <span class="s2">"_"</span> + + <span class="n">string</span> <span class="o">+=</span> <span class="n">baseName</span> + + <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">suffix</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> + <span class="n">string</span> <span class="o">+=</span> <span class="s2">"_"</span> <span class="o">+</span> <span class="n">suffix</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">previewName</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="n">string</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.createMirrorModule"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.createMirrorModule">[docs]</a> <span class="k">def</span> <span class="nf">createMirrorModule</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method creates the mirror of a module and is called from createMirrorOfModule_UI.</span> + +<span class="sd"> To create the mirror of a module, after a few checks are done, a module of the same type is created first.</span> +<span class="sd"> If that module type has a left/right version of a joint mover file, the opposite version is brought in.</span> +<span class="sd"> All the normal steps of module creation are then gone through and lastly, mirrorTransformations is called.</span> + +<span class="sd"> """</span> + + <span class="n">userSpecName</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">previewName</span><span class="o">.</span><span class="n">text</span><span class="p">())</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + <span class="n">parent</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".parentModuleBone"</span><span class="p">)</span> + <span class="n">className</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".moduleType"</span><span class="p">)</span> + + <span class="c1"># check to see if a module already has that name</span> + <span class="n">modules</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">returnRigModules</span><span class="p">()</span> + <span class="n">mirrorModule</span> <span class="o">=</span> <span class="kc">None</span> + <span class="n">moduleName</span> <span class="o">=</span> <span class="kc">None</span> + + <span class="k">for</span> <span class="n">module</span> <span class="ow">in</span> <span class="n">modules</span><span class="p">:</span> + <span class="n">name</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">module</span> <span class="o">+</span> <span class="s2">".moduleName"</span><span class="p">)</span> + <span class="k">if</span> <span class="n">name</span> <span class="o">==</span> <span class="n">userSpecName</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">confirmDialog</span><span class="p">(</span><span class="n">title</span><span class="o">=</span><span class="s2">"Name Exists"</span><span class="p">,</span> + <span class="n">message</span><span class="o">=</span><span class="s2">"A module with that name already exists. Please enter a unique name </span><span class="se">\</span> +<span class="s2"> for the module"</span><span class="p">,</span> + <span class="n">icon</span><span class="o">=</span><span class="s2">"critical"</span><span class="p">)</span> + <span class="k">return</span> + + <span class="c1"># now check the modules that contain the parent bone</span> + <span class="k">for</span> <span class="n">module</span> <span class="ow">in</span> <span class="n">modules</span><span class="p">:</span> + <span class="n">bones</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">module</span> <span class="o">+</span> <span class="s2">".Created_Bones"</span><span class="p">)</span> + <span class="n">splitJoints</span> <span class="o">=</span> <span class="n">bones</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"::"</span><span class="p">)</span> + <span class="n">createdJoints</span> <span class="o">=</span> <span class="p">[]</span> + + <span class="c1"># create a list of the created bones</span> + <span class="k">for</span> <span class="n">bone</span> <span class="ow">in</span> <span class="n">splitJoints</span><span class="p">:</span> + <span class="k">if</span> <span class="n">bone</span> <span class="o">!=</span> <span class="s2">""</span><span class="p">:</span> + <span class="n">createdJoints</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">bone</span><span class="p">)</span> + + <span class="c1"># see if the parent bone is in that list</span> + <span class="k">if</span> <span class="n">parent</span> <span class="ow">in</span> <span class="n">createdJoints</span><span class="p">:</span> + <span class="n">mirrorModule</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">module</span> <span class="o">+</span> <span class="s2">".mirrorModule"</span><span class="p">)</span> + <span class="n">moduleName</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">module</span> <span class="o">+</span> <span class="s2">".moduleName"</span><span class="p">)</span> + + <span class="c1"># if our parent bone's module, has a mirror module, we need to create this new mirror module under that</span> + <span class="c1"># parent instead (if parent = l_thigh, mirror parent should be r_thigh)</span> + <span class="k">if</span> <span class="n">mirrorModule</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> + <span class="k">for</span> <span class="n">module</span> <span class="ow">in</span> <span class="n">modules</span><span class="p">:</span> + <span class="n">modName</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">module</span> <span class="o">+</span> <span class="s2">".moduleName"</span><span class="p">)</span> + <span class="k">if</span> <span class="n">modName</span> <span class="o">==</span> <span class="n">mirrorModule</span><span class="p">:</span> + + <span class="c1"># find the parent's mover (if parent is l_thigh, mover would be l_leg_thigh_mover)</span> + <span class="n">networkNodes</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">returnRigModules</span><span class="p">()</span> + <span class="n">mover</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">findMoverNodeFromJointName</span><span class="p">(</span><span class="n">networkNodes</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="kc">False</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span> + + <span class="c1"># find mirror mover</span> + <span class="n">mirrorMover</span> <span class="o">=</span> <span class="n">mover</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">moduleName</span><span class="p">,</span> <span class="n">mirrorModule</span><span class="p">)</span> + <span class="n">baseName</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">module</span> <span class="o">+</span> <span class="s2">".baseName"</span><span class="p">)</span> + <span class="n">boneList</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">module</span> <span class="o">+</span> <span class="s2">".Created_Bones"</span><span class="p">)</span> + + <span class="c1"># now, we need to find the joint from the mirror mover, and once there is a match, the parent\</span> + <span class="c1"># var now becomes that joint</span> + <span class="k">if</span> <span class="n">mirrorMover</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">"_mover"</span><span class="p">)</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span> + <span class="n">jointName</span> <span class="o">=</span> <span class="n">mirrorMover</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="s2">"_mover"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> + + <span class="k">if</span> <span class="n">jointName</span> <span class="ow">in</span> <span class="n">boneList</span><span class="p">:</span> + <span class="n">parent</span> <span class="o">=</span> <span class="n">jointName</span> + + <span class="k">else</span><span class="p">:</span> + <span class="c1"># if removing _mover didn't yield a matching joint name, take out the baseName from\</span> + <span class="c1"># the mover name, and then remove the _mover</span> + <span class="n">jointName</span> <span class="o">=</span> <span class="n">jointName</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">baseName</span> <span class="o">+</span> <span class="s2">"_"</span><span class="p">,</span> <span class="s2">""</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">jointName</span> <span class="ow">in</span> <span class="n">boneList</span><span class="p">:</span> + <span class="n">parent</span> <span class="o">=</span> <span class="n">jointName</span> + + <span class="c1"># arms and leg exception</span> + <span class="n">mirrorSide</span> <span class="o">=</span> <span class="kc">None</span> + <span class="n">specialCaseModules</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"ART_Leg_Standard"</span><span class="p">,</span> <span class="s2">"ART_Arm_Standard"</span><span class="p">]</span> + <span class="k">if</span> <span class="n">className</span> <span class="ow">in</span> <span class="n">specialCaseModules</span><span class="p">:</span> + <span class="n">side</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".side"</span><span class="p">)</span> + <span class="k">if</span> <span class="n">side</span> <span class="o">==</span> <span class="s2">"Left"</span><span class="p">:</span> + <span class="n">mirrorSide</span> <span class="o">=</span> <span class="s2">"Right"</span> + <span class="k">if</span> <span class="n">side</span> <span class="o">==</span> <span class="s2">"Right"</span><span class="p">:</span> + <span class="n">mirrorSide</span> <span class="o">=</span> <span class="s2">"Left"</span> + + <span class="c1"># create an instance of the module</span> + <span class="n">mod</span> <span class="o">=</span> <span class="nb">__import__</span><span class="p">(</span><span class="s2">"RigModules."</span> <span class="o">+</span> <span class="n">className</span><span class="p">,</span> <span class="p">{},</span> <span class="p">{},</span> <span class="p">[</span><span class="n">className</span><span class="p">])</span> + + <span class="c1"># get the class name from that module file (returns Modules.ART_Root.ART_Root for example)</span> + <span class="n">moduleClass</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">mod</span><span class="p">,</span> <span class="n">mod</span><span class="o">.</span><span class="n">className</span><span class="p">)</span> + <span class="n">jmPath</span> <span class="o">=</span> <span class="n">mod</span><span class="o">.</span><span class="n">jointMover</span> + + <span class="c1"># call functions to create network node, skeleton settings UI</span> + <span class="n">moduleInst</span> <span class="o">=</span> <span class="n">moduleClass</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rigUiInst</span><span class="p">,</span> <span class="n">userSpecName</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigUiInst</span><span class="o">.</span><span class="n">moduleInstances</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">moduleInst</span><span class="p">)</span> + <span class="n">networkNodeInst</span> <span class="o">=</span> <span class="n">moduleInst</span><span class="o">.</span><span class="n">buildNetwork</span><span class="p">()</span> + + <span class="c1"># if mirrorSide exists</span> + <span class="k">if</span> <span class="n">mirrorSide</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> + <span class="n">jmPath</span> <span class="o">=</span> <span class="n">jmPath</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="s2">".ma"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s2">"_"</span> <span class="o">+</span> <span class="n">mirrorSide</span> <span class="o">+</span> <span class="s2">".ma"</span> + <span class="k">if</span> <span class="n">mirrorSide</span> <span class="o">==</span> <span class="s2">"Left"</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNodeInst</span> <span class="o">+</span> <span class="s2">".side"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNodeInst</span> <span class="o">+</span> <span class="s2">".side"</span><span class="p">,</span> <span class="s2">"Left"</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s2">"string"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="k">if</span> <span class="n">mirrorSide</span> <span class="o">==</span> <span class="s2">"Right"</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNodeInst</span> <span class="o">+</span> <span class="s2">".side"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNodeInst</span> <span class="o">+</span> <span class="s2">".side"</span><span class="p">,</span> <span class="s2">"Right"</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s2">"string"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># build the settings UI/joint mover/add to outliner</span> + <span class="n">moduleInst</span><span class="o">.</span><span class="n">skeletonSettings_UI</span><span class="p">(</span><span class="n">userSpecName</span><span class="p">)</span> + <span class="n">moduleInst</span><span class="o">.</span><span class="n">jointMover_Build</span><span class="p">(</span><span class="n">jmPath</span><span class="p">)</span> + <span class="n">moduleInst</span><span class="o">.</span><span class="n">addJointMoverToOutliner</span><span class="p">()</span> + + <span class="c1"># update the created joints attribute on the network node with the new names</span> + <span class="n">prefix</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">prefix</span><span class="o">.</span><span class="n">text</span><span class="p">())</span> + <span class="n">suffix</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">suffix</span><span class="o">.</span><span class="n">text</span><span class="p">())</span> + + <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">prefix</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> + <span class="k">if</span> <span class="n">prefix</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">"_"</span><span class="p">)</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span> + <span class="n">prefix</span> <span class="o">=</span> <span class="n">prefix</span> <span class="o">+</span> <span class="s2">"_"</span> + <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">suffix</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> + <span class="k">if</span> <span class="n">suffix</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">"_"</span><span class="p">)</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span> + <span class="n">suffix</span> <span class="o">=</span> <span class="s2">"_"</span> <span class="o">+</span> <span class="n">suffix</span> + + <span class="n">createdBones</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNodeInst</span> <span class="o">+</span> <span class="s2">".Created_Bones"</span><span class="p">)</span> + <span class="n">createdBones</span> <span class="o">=</span> <span class="n">createdBones</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"::"</span><span class="p">)</span> + + <span class="n">attrString</span> <span class="o">=</span> <span class="s2">""</span> + <span class="k">for</span> <span class="n">bone</span> <span class="ow">in</span> <span class="n">createdBones</span><span class="p">:</span> + <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">bone</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> + <span class="n">attrString</span> <span class="o">+=</span> <span class="n">prefix</span> <span class="o">+</span> <span class="n">bone</span> <span class="o">+</span> <span class="n">suffix</span> <span class="o">+</span> <span class="s2">"::"</span> + + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNodeInst</span> <span class="o">+</span> <span class="s2">".Created_Bones"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNodeInst</span> <span class="o">+</span> <span class="s2">".Created_Bones"</span><span class="p">,</span> <span class="n">attrString</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s2">"string"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># update the self.currentParent label and the parentModuleBone attr on the network node</span> + <span class="n">moduleInst</span><span class="o">.</span><span class="n">currentParent</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="n">parent</span><span class="p">)</span> + + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNodeInst</span> <span class="o">+</span> <span class="s2">".parentModuleBone"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNodeInst</span> <span class="o">+</span> <span class="s2">".parentModuleBone"</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s2">"string"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># find the current parent mover and its scale</span> + <span class="k">if</span> <span class="n">parent</span> <span class="o">==</span> <span class="s2">"root"</span><span class="p">:</span> + <span class="n">mover</span> <span class="o">=</span> <span class="s2">"root_mover"</span> + <span class="n">offsetMover</span> <span class="o">=</span> <span class="s2">"root_mover"</span> + + <span class="k">else</span><span class="p">:</span> + <span class="c1"># find the parent mover name to parent to</span> + <span class="n">networkNodes</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">returnRigModules</span><span class="p">()</span> + <span class="n">mover</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">findMoverNodeFromJointName</span><span class="p">(</span><span class="n">networkNodes</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="kc">False</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span> + <span class="n">offsetMover</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">findMoverNodeFromJointName</span><span class="p">(</span><span class="n">networkNodes</span><span class="p">,</span> <span class="n">parent</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">mover</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">parentConstraint</span><span class="p">(</span><span class="n">mover</span><span class="p">,</span> <span class="n">userSpecName</span> <span class="o">+</span> <span class="s2">"_mover_grp"</span><span class="p">,</span> <span class="n">mo</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">scaleConstraint</span><span class="p">(</span><span class="n">mover</span><span class="p">,</span> <span class="n">userSpecName</span> <span class="o">+</span> <span class="s2">"_mover_grp"</span><span class="p">)</span> + + <span class="c1"># create the connection geo between the two</span> + <span class="n">childMover</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">findOffsetMoverFromName</span><span class="p">(</span><span class="n">userSpecName</span><span class="p">)</span> + <span class="n">riggingUtils</span><span class="o">.</span><span class="n">createBoneConnection</span><span class="p">(</span><span class="n">offsetMover</span><span class="p">,</span> <span class="n">childMover</span><span class="p">,</span> <span class="n">userSpecName</span><span class="p">)</span> + + <span class="n">globalMover</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">findGlobalMoverFromName</span><span class="p">(</span><span class="n">userSpecName</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">globalMover</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setToolTo</span><span class="p">(</span><span class="s2">"moveSuperContext"</span><span class="p">)</span> + + <span class="n">utils</span><span class="o">.</span><span class="n">fitViewAndShade</span><span class="p">()</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">refresh</span><span class="p">(</span><span class="n">force</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">moduleInst</span><span class="o">.</span><span class="n">pasteSettings</span><span class="p">()</span> + <span class="n">moduleInst</span><span class="o">.</span><span class="n">aimMode</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># delete UI</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">deleteUI</span><span class="p">(</span><span class="s2">"ART_createMirrorModuleUI"</span><span class="p">,</span> <span class="n">wnd</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># update the mirrorModule setting</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mirrorMod</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="n">userSpecName</span><span class="p">)</span> + <span class="n">name</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".moduleName"</span><span class="p">)</span> + <span class="n">moduleInst</span><span class="o">.</span><span class="n">mirrorMod</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> + + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".mirrorModule"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".mirrorModule"</span><span class="p">,</span> <span class="n">userSpecName</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s2">"string"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNodeInst</span> <span class="o">+</span> <span class="s2">".mirrorModule"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNodeInst</span> <span class="o">+</span> <span class="s2">".mirrorModule"</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s2">"string"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># mirror transformations</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mirrorTransformations</span><span class="p">()</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">rigUiInst</span><span class="o">.</span><span class="n">populateNetworkList</span><span class="p">()</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.mirrorTransformations_RigPose"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.mirrorTransformations_RigPose">[docs]</a> <span class="k">def</span> <span class="nf">mirrorTransformations_RigPose</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method is used when creating rig poses for modules. If a module has a mirror, this method will mirror the</span> +<span class="sd"> rig pose transformations to that mirror module.</span> + +<span class="sd"> """</span> + + <span class="c1"># reset mirror module's rig pose</span> + <span class="n">mirrorModInst</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnMirrorModuleInst</span> + + <span class="c1"># ensure the mirrorModInst has a UI and is setup for rig pose creation</span> + <span class="n">mirrorModInst</span><span class="o">.</span><span class="n">setupForRigPose</span><span class="p">()</span> + <span class="c1"># if not cmds.objExists(mirrorModInst.name + "_rigPose"):</span> + <span class="c1"># mirrorModInst.getReferencePose("rigPose")</span> + + <span class="c1"># call on base mirror transformations method</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mirrorTransformations</span><span class="p">()</span> + <span class="n">mirrorModInst</span><span class="o">.</span><span class="n">getReferencePose</span><span class="p">(</span><span class="s2">"rigPose"</span><span class="p">)</span> + + <span class="c1"># update the rig pose of the mirrorModInst</span> + <span class="n">mirrorModInst</span><span class="o">.</span><span class="n">updateRigPose</span><span class="p">(</span><span class="n">mirrorModInst</span><span class="o">.</span><span class="n">overallSlider</span><span class="p">)</span> + <span class="n">mirrorModInst</span><span class="o">.</span><span class="n">cleanUpRigPose</span><span class="p">()</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.mirrorTransformations"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.mirrorTransformations">[docs]</a> <span class="k">def</span> <span class="nf">mirrorTransformations</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method mirrors transformations for the module's mirror module.</span> + +<span class="sd"> """</span> + + <span class="n">currentSelection</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="n">sl</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># get the mirror module</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + <span class="n">mirrorModule</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".mirrorModule"</span><span class="p">)</span> + <span class="n">moduleName</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".moduleName"</span><span class="p">)</span> + <span class="n">parent</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".parentModuleBone"</span><span class="p">)</span> + + <span class="c1"># get mirror module instance and information</span> + <span class="n">mirrorInst</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnMirrorModuleInst</span> + + <span class="c1"># turn off aim mode</span> + <span class="n">mirrorInst</span><span class="o">.</span><span class="n">aimMode_Setup</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span> + + <span class="c1"># turn off coplanar mode IF it exists on the module</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">state</span> <span class="o">=</span> <span class="n">mirrorInst</span><span class="o">.</span><span class="n">coplanarBtn</span><span class="o">.</span><span class="n">isChecked</span><span class="p">()</span> + <span class="k">if</span> <span class="n">state</span><span class="p">:</span> + <span class="n">mirrorInst</span><span class="o">.</span><span class="n">coplanarBtn</span><span class="o">.</span><span class="n">setChecked</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span> + <span class="n">mirrorInst</span><span class="o">.</span><span class="n">coplanarMode</span><span class="p">()</span> + <span class="k">except</span><span class="p">:</span> + <span class="k">pass</span> + + <span class="n">moverTypes</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnJointMovers</span> + <span class="k">for</span> <span class="n">moverType</span> <span class="ow">in</span> <span class="n">moverTypes</span><span class="p">:</span> + <span class="k">for</span> <span class="n">jointMover</span> <span class="ow">in</span> <span class="n">moverType</span><span class="p">:</span> + <span class="n">attrs</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listAttr</span><span class="p">(</span><span class="n">jointMover</span><span class="p">,</span> <span class="n">keyable</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="n">attrs</span><span class="p">:</span> + <span class="n">value</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">jointMover</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">attr</span><span class="p">)</span> + + <span class="n">mirrorMover</span> <span class="o">=</span> <span class="n">jointMover</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="n">moduleName</span><span class="p">)[</span><span class="mi">2</span><span class="p">]</span> + <span class="n">mirrorMover</span> <span class="o">=</span> <span class="n">mirrorModule</span> <span class="o">+</span> <span class="n">mirrorMover</span> + <span class="n">mirrorAttrs</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"translateX"</span><span class="p">,</span> <span class="s2">"translateY"</span><span class="p">,</span> <span class="s2">"translateZ"</span><span class="p">]</span> + + <span class="k">if</span> <span class="n">attr</span> <span class="ow">in</span> <span class="n">mirrorAttrs</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">mirrorMover</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">attr</span><span class="p">,</span> <span class="n">value</span> <span class="o">*</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">mirrorMover</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">attr</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span> + + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">clear</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">currentSelection</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">currentSelection</span><span class="p">)</span> + + <span class="c1"># turn aim mode on</span> + <span class="n">mirrorInst</span><span class="o">.</span><span class="n">aimMode_Setup</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># extend functionality</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mirrorTransformations_Custom</span><span class="p">()</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.rigPose_UI"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.rigPose_UI">[docs]</a> <span class="k">def</span> <span class="nf">rigPose_UI</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parentWidget</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method creates the UI widget that gets parented into the publish UI that handles rig pose creation.</span> + +<span class="sd"> A slider gets created for the overall module that goes from current pose to ideal rig pose. Then a slider</span> +<span class="sd"> gets created for each joint in the module to allow for finer control over the rig pose creation.</span> + +<span class="sd"> :param parentWidget: the widget the rig pose UI (QFrame) will get parented to</span> + +<span class="sd"> """</span> + + <span class="c1"># Add a QFrame for the widget</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseFrame</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QFrame</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseFrame</span><span class="o">.</span><span class="n">setAttribute</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">Qt</span><span class="o">.</span><span class="n">WA_DeleteOnClose</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseFrame</span><span class="o">.</span><span class="n">setMinimumWidth</span><span class="p">(</span><span class="mi">310</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseFrame</span><span class="o">.</span><span class="n">setMaximumWidth</span><span class="p">(</span><span class="mi">310</span><span class="p">)</span> + + <span class="c1"># load stylesheet</span> + <span class="n">styleSheetFile</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">toolsPath</span><span class="p">,</span> <span class="s2">"Core/Scripts/Interfaces/StyleSheets/mainScheme.qss"</span><span class="p">)</span> + <span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">styleSheetFile</span><span class="p">,</span> <span class="s2">"r"</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">style</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">()</span> + <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> + + <span class="c1"># add the rig pose frame to the stackWidget</span> + <span class="n">parentWidget</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rigPoseFrame</span><span class="p">)</span> + <span class="n">numWidgetsInStack</span> <span class="o">=</span> <span class="n">parentWidget</span><span class="o">.</span><span class="n">count</span><span class="p">()</span> + <span class="n">parentWidget</span><span class="o">.</span><span class="n">setCurrentIndex</span><span class="p">(</span><span class="n">numWidgetsInStack</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> + + <span class="c1"># frame styling</span> + <span class="n">backgroundImg</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">returnFriendlyPath</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">"System/field_background.png"</span><span class="p">))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseFrame</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="s2">"background-image: url("</span> <span class="o">+</span> <span class="n">backgroundImg</span> <span class="o">+</span> <span class="s2">");"</span><span class="p">)</span> + + <span class="c1"># create an overall layout</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseLayout</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QVBoxLayout</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rigPoseFrame</span><span class="p">)</span> + <span class="n">label</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QLabel</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="n">label</span><span class="p">)</span> + + <span class="c1"># create a slider for the overall module rig pose</span> + <span class="n">hboxLayout</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QHBoxLayout</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseLayout</span><span class="o">.</span><span class="n">addLayout</span><span class="p">(</span><span class="n">hboxLayout</span><span class="p">)</span> + + <span class="n">image1</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QFrame</span><span class="p">()</span> + <span class="n">image1</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">)</span> + <span class="n">image1</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">)</span> + <span class="n">modelPoseImg</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">returnFriendlyPath</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">"System/modelPose.png"</span><span class="p">))</span> + <span class="n">image1</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="s2">"background-image: url("</span> <span class="o">+</span> <span class="n">modelPoseImg</span> <span class="o">+</span> <span class="s2">");"</span><span class="p">)</span> + <span class="n">hboxLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="n">image1</span><span class="p">)</span> + <span class="n">image1</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span><span class="s2">"Model Pose"</span><span class="p">)</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">overallSlider</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QSlider</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">overallSlider</span><span class="o">.</span><span class="n">setProperty</span><span class="p">(</span><span class="s2">"name"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> + <span class="n">hboxLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">overallSlider</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">overallSlider</span><span class="o">.</span><span class="n">setOrientation</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">Qt</span><span class="o">.</span><span class="n">Horizontal</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">overallSlider</span><span class="o">.</span><span class="n">setRange</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">100</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">overallSlider</span><span class="o">.</span><span class="n">setSingleStep</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">overallSlider</span><span class="o">.</span><span class="n">setTracking</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span> + + <span class="n">image2</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QFrame</span><span class="p">()</span> + <span class="n">image2</span><span class="o">.</span><span class="n">setMinimumSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">)</span> + <span class="n">image2</span><span class="o">.</span><span class="n">setMaximumSize</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">30</span><span class="p">)</span> + <span class="n">rigPoseImg</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">returnFriendlyPath</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iconsPath</span><span class="p">,</span> <span class="s2">"System/rigPose.png"</span><span class="p">))</span> + <span class="n">image2</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="s2">"background-image: url("</span> <span class="o">+</span> <span class="n">rigPoseImg</span> <span class="o">+</span> <span class="s2">");"</span><span class="p">)</span> + <span class="n">hboxLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="n">image2</span><span class="p">)</span> + <span class="n">image2</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span><span class="s2">"Rig Pose"</span><span class="p">)</span> + + <span class="c1"># create hboxlayout for resetAll and update Rig Pose buttons</span> + <span class="n">buttonLayout</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QHBoxLayout</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseLayout</span><span class="o">.</span><span class="n">addLayout</span><span class="p">(</span><span class="n">buttonLayout</span><span class="p">)</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseResetAllBtn</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">(</span><span class="s2">"Reset Rig Pose"</span><span class="p">)</span> + <span class="n">buttonLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rigPoseResetAllBtn</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseResetAllBtn</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">resetRigPose</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseResetAllBtn</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span><span class="s2">"Reset the module to it's initial ideal rig pose."</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseResetAllBtn</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">"blueButton"</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseResetAllBtn</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">style</span><span class="p">)</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseUpdateAllBtn</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">(</span><span class="s2">"Update Rig Pose"</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseUpdateAllBtn</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">style</span><span class="p">)</span> + <span class="n">buttonLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rigPoseUpdateAllBtn</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseUpdateAllBtn</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">updateRigPose</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">overallSlider</span><span class="p">))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseUpdateAllBtn</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span> + <span class="s2">"Update the rig pose if you've done any custom manipulations to the controls."</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseUpdateAllBtn</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">"blueButton"</span><span class="p">)</span> + + <span class="c1"># create a frame for the advanced controls</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPose_advancedGroup</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QGroupBox</span><span class="p">(</span><span class="s2">"Advanced"</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rigPose_advancedGroup</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPose_advancedLayout</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QVBoxLayout</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rigPose_advancedGroup</span><span class="p">)</span> + + <span class="c1"># create a slider for each created joint</span> + <span class="n">joints</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnCreatedJoints</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + <span class="n">baseName</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".baseName"</span><span class="p">)</span> + + <span class="k">for</span> <span class="n">joint</span> <span class="ow">in</span> <span class="n">joints</span><span class="p">:</span> + + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="n">joint</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">createRigPoseSliderForJoint</span><span class="p">(</span><span class="n">joint</span><span class="p">)</span> + + <span class="k">else</span><span class="p">:</span> + <span class="n">jointBaseName</span> <span class="o">=</span> <span class="n">joint</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">!=</span> <span class="n">baseName</span><span class="p">:</span> + <span class="n">nameData</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">baseName</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">nameData</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">""</span><span class="p">:</span> + <span class="n">jointBaseName</span> <span class="o">=</span> <span class="n">jointBaseName</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="n">nameData</span><span class="p">[</span><span class="mi">0</span><span class="p">])[</span><span class="mi">2</span><span class="p">]</span> + <span class="k">if</span> <span class="n">nameData</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">""</span><span class="p">:</span> + <span class="n">jointBaseName</span> <span class="o">=</span> <span class="n">jointBaseName</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="n">nameData</span><span class="p">[</span><span class="mi">1</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span> + + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_"</span> <span class="o">+</span> <span class="n">jointBaseName</span> <span class="o">+</span> <span class="s2">"_mover"</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">createRigPoseSliderForJoint</span><span class="p">(</span><span class="n">joint</span><span class="p">)</span> + + <span class="c1"># create mirror button if applicable</span> + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".mirrorModule"</span><span class="p">)</span> <span class="o">!=</span> <span class="s2">""</span><span class="p">:</span> + <span class="n">mirrorMod</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".mirrorModule"</span><span class="p">)</span> + <span class="k">if</span> <span class="n">mirrorMod</span> <span class="o">!=</span> <span class="kc">None</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseMirrorBtn</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">(</span><span class="s2">"Mirror to: "</span> <span class="o">+</span> <span class="n">mirrorMod</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rigPoseMirrorBtn</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseMirrorBtn</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">mirrorTransformations_RigPose</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseMirrorBtn</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">"blueButton"</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseMirrorBtn</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">style</span><span class="p">)</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">rigPoseLayout</span><span class="o">.</span><span class="n">addSpacerItem</span><span class="p">(</span> + <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QSpacerItem</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QSizePolicy</span><span class="o">.</span><span class="n">Fixed</span><span class="p">,</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QSizePolicy</span><span class="o">.</span><span class="n">Expanding</span><span class="p">))</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.buildRig"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.buildRig">[docs]</a> <span class="k">def</span> <span class="nf">buildRig</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">textEdit</span><span class="p">,</span> <span class="n">uiInst</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method starts building the rig for a module. It will then call on buildRigCustom, which is implemented</span> +<span class="sd"> in each derived module class as an override function.</span> + +<span class="sd"> :param textEdit: The text edit in the buildProgressUI that we output information to.</span> +<span class="sd"> :param uiInst: passed in instance of the buildProgressUI</span> + +<span class="sd"> """</span> + + <span class="c1"># get current nodes in scene</span> + <span class="n">currentNodes</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="s2">"*"</span><span class="p">,</span> <span class="n">long</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">successfulBuild</span> <span class="o">=</span> <span class="kc">True</span> + <span class="n">errorMessage</span> <span class="o">=</span> <span class="s2">""</span> + + <span class="c1"># run the instance build function</span> + <span class="k">try</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">buildRigCustom</span><span class="p">(</span><span class="n">textEdit</span><span class="p">,</span> <span class="n">uiInst</span><span class="p">)</span> + + <span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> + <span class="n">successfulBuild</span> <span class="o">=</span> <span class="kc">False</span> + <span class="n">errorMessage</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">traceback</span><span class="o">.</span><span class="n">format_exc</span><span class="p">())</span> + + <span class="c1"># get all nodes in scene and compare to original list</span> + <span class="n">allNodes</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="s2">"*"</span><span class="p">,</span> <span class="n">long</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="n">newNodes</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">allNodes</span><span class="p">)</span><span class="o">.</span><span class="n">difference</span><span class="p">(</span><span class="n">currentNodes</span><span class="p">))</span> + + <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">newNodes</span><span class="p">:</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="n">node</span> <span class="o">+</span> <span class="s2">".sourceModule"</span><span class="p">):</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">"sourceModule"</span><span class="p">,</span> <span class="n">dt</span><span class="o">=</span><span class="s2">"string"</span><span class="p">)</span> + + <span class="k">try</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">node</span> <span class="o">+</span> <span class="s2">".sourceModule"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s2">"string"</span><span class="p">)</span> + <span class="k">except</span><span class="p">:</span> + <span class="nb">print</span> <span class="n">node</span> + + <span class="k">if</span> <span class="ow">not</span> <span class="n">successfulBuild</span><span class="p">:</span> + <span class="nb">print</span> <span class="s2">"Build Rig Failed: "</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">)</span> + <span class="nb">print</span> <span class="n">errorMessage</span></div> + <span class="c1"># self.deleteRig()</span> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.buildRigCustom"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.buildRigCustom">[docs]</a> <span class="k">def</span> <span class="nf">buildRigCustom</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">textEdit</span><span class="p">,</span> <span class="n">uiInst</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method is what truly builds the rig for each module. It is implemented in the derived module class.</span> + +<span class="sd"> :param textEdit: The text edit in the buildProgressUI that we output information to.</span> +<span class="sd"> :param uiInst: passed in instance of the buildProgressUI</span> + +<span class="sd"> """</span> + <span class="k">pass</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.deleteRig"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.deleteRig">[docs]</a> <span class="k">def</span> <span class="nf">deleteRig</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method deletes all rigging for the module.</span> + +<span class="sd"> """</span> + + <span class="n">allNodes</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="s2">"*"</span><span class="p">)</span> + <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">allNodes</span><span class="p">:</span> + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="n">node</span> <span class="o">+</span> <span class="s2">".sourceModule"</span><span class="p">):</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">lockNode</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">source</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">node</span> <span class="o">+</span> <span class="s2">".sourceModule"</span><span class="p">)</span> + <span class="k">if</span> <span class="n">source</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">:</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> + <span class="k">except</span><span class="p">:</span> + <span class="k">pass</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.mirrorTransformations_Custom"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.mirrorTransformations_Custom">[docs]</a> <span class="k">def</span> <span class="nf">mirrorTransformations_Custom</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method is implemented in the derived module class.</span> +<span class="sd"> """</span> + + <span class="k">pass</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.updateSettingsUI"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.updateSettingsUI">[docs]</a> <span class="k">def</span> <span class="nf">updateSettingsUI</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method is implemented in the derived module class.</span> +<span class="sd"> """</span> + + <span class="k">pass</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.applyModuleChanges"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.applyModuleChanges">[docs]</a> <span class="k">def</span> <span class="nf">applyModuleChanges</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">moduleInst</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method is implemented in the derived module class.</span> +<span class="sd"> """</span> + + <span class="k">pass</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.addJointMoverToOutliner"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.addJointMoverToOutliner">[docs]</a> <span class="k">def</span> <span class="nf">addJointMoverToOutliner</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method is implemented in the derived module class.</span> +<span class="sd"> """</span> + + <span class="k">pass</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.updateOutliner"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.updateOutliner">[docs]</a> <span class="k">def</span> <span class="nf">updateOutliner</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method is implemented in the derived module class.</span> +<span class="sd"> """</span> + + <span class="k">pass</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.skinProxyGeo"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.skinProxyGeo">[docs]</a> <span class="k">def</span> <span class="nf">skinProxyGeo</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method is implemented in the derived module class.</span> +<span class="sd"> """</span> + + <span class="k">pass</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.aimMode"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.aimMode">[docs]</a> <span class="k">def</span> <span class="nf">aimMode</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">state</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method toggles the aim mode state if the module can have aim mode.</span> + +<span class="sd"> It then calls on each derived module's aimMode_Setup which defines how to setup aim mode for the module.</span> + +<span class="sd"> """</span> + + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".aimMode"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".aimMode"</span><span class="p">,</span> <span class="n">state</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">aimMode_Setup</span><span class="p">(</span><span class="n">state</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.aimMode_Setup"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.aimMode_Setup">[docs]</a> <span class="k">def</span> <span class="nf">aimMode_Setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">state</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method is implemented in the derived module class.</span> +<span class="sd"> """</span> + + <span class="k">pass</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.setupModelPoseForRig"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.setupModelPoseForRig">[docs]</a> <span class="k">def</span> <span class="nf">setupModelPoseForRig</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method is implemented in the derived module class.</span> +<span class="sd"> """</span> + + <span class="k">pass</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.matchModelPose"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.matchModelPose">[docs]</a> <span class="k">def</span> <span class="nf">matchModelPose</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method is implemented in the derived module class.</span> + +<span class="sd"> """</span> + + <span class="k">pass</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.pinModule"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.pinModule">[docs]</a> <span class="k">def</span> <span class="nf">pinModule</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">state</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method is implemented in the derived module class.</span> + +<span class="sd"> """</span> + + <span class="k">pass</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.bakeOffsets"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.bakeOffsets">[docs]</a> <span class="k">def</span> <span class="nf">bakeOffsets</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method bakes any transforms on the offset movers up to the global movers, and then zeroes out the offset</span> +<span class="sd"> movers.</span> + +<span class="sd"> """</span> + + <span class="c1"># get movers</span> + <span class="n">jointMovers</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnJointMovers</span> + + <span class="c1"># separate mover lists</span> + <span class="n">globalMovers</span> <span class="o">=</span> <span class="n">jointMovers</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> + <span class="n">offsetMovers</span> <span class="o">=</span> <span class="n">jointMovers</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> + <span class="n">constraints</span> <span class="o">=</span> <span class="p">[]</span> + <span class="n">locators</span> <span class="o">=</span> <span class="p">[]</span> + + <span class="c1"># create locators for the offsetMovers, then zero out offset mover</span> + <span class="k">for</span> <span class="n">mover</span> <span class="ow">in</span> <span class="n">offsetMovers</span><span class="p">:</span> + <span class="n">locatorName</span> <span class="o">=</span> <span class="n">mover</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="s2">"_offset"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s2">"_loc"</span> + <span class="n">loc</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">spaceLocator</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">locatorName</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> + + <span class="c1"># constrain locator</span> + <span class="n">constraint</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">parentConstraint</span><span class="p">(</span><span class="n">mover</span><span class="p">,</span> <span class="n">loc</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">constraint</span><span class="p">)</span> + + <span class="c1"># parent locator under a copy of the locatorName</span> + <span class="n">parentLoc</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">duplicate</span><span class="p">(</span><span class="n">loc</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">parent</span><span class="p">(</span><span class="n">loc</span><span class="p">,</span> <span class="n">parentLoc</span><span class="p">)</span> + <span class="n">locators</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">parentLoc</span><span class="p">)</span> + + <span class="k">for</span> <span class="n">mover</span> <span class="ow">in</span> <span class="n">offsetMovers</span><span class="p">:</span> + <span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">".tx"</span><span class="p">,</span> <span class="s2">".ty"</span><span class="p">,</span> <span class="s2">".tz"</span><span class="p">,</span> <span class="s2">".rx"</span><span class="p">,</span> <span class="s2">".ry"</span><span class="p">,</span> <span class="s2">".rz"</span><span class="p">]:</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="n">attr</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> + <span class="k">except</span><span class="p">:</span> + <span class="k">pass</span> + + <span class="c1"># snap global movers to locators</span> + <span class="k">for</span> <span class="n">mover</span> <span class="ow">in</span> <span class="n">globalMovers</span><span class="p">:</span> + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">"_loc"</span><span class="p">):</span> + <span class="n">constraint</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">parentConstraint</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">"_loc"</span><span class="p">,</span> <span class="n">mover</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> + <span class="n">constraints</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">constraint</span><span class="p">)</span> + + <span class="c1"># remove locs</span> + <span class="k">for</span> <span class="n">const</span> <span class="ow">in</span> <span class="n">constraints</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">const</span><span class="p">)</span> + + <span class="k">for</span> <span class="n">loc</span> <span class="ow">in</span> <span class="n">locators</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">loc</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.setupForRigPose"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.setupForRigPose">[docs]</a> <span class="k">def</span> <span class="nf">setupForRigPose</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method unhides the movers and constrains the joints to the movers for creating the rig pose.</span> + +<span class="sd"> If the user wants to create a custom rig pose (instead of using the sliders), this method sets the module</span> +<span class="sd"> up for that functionality.</span> + +<span class="sd"> """</span> + + <span class="c1"># unlock joint movers</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">"JointMover"</span><span class="p">,</span> <span class="n">hi</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">jmNodes</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="n">sl</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">jmNodes</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">lockNode</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + + <span class="c1"># find the mover shapes and set their visibility</span> + <span class="n">movers</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnJointMovers</span> + <span class="n">globalMovers</span> <span class="o">=</span> <span class="n">movers</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> + <span class="n">shapes</span> <span class="o">=</span> <span class="p">[]</span> + + <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="n">movers</span><span class="p">:</span> + <span class="k">for</span> <span class="n">mover</span> <span class="ow">in</span> <span class="n">each</span><span class="p">:</span> + <span class="n">child</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listRelatives</span><span class="p">(</span><span class="n">mover</span><span class="p">,</span> <span class="n">children</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">shapes</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">child</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> + <span class="n">shapes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">"|"</span> <span class="o">+</span> <span class="n">child</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> + + <span class="k">for</span> <span class="n">shape</span> <span class="ow">in</span> <span class="n">shapes</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">shape</span> <span class="o">+</span> <span class="s2">".v"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">shape</span> <span class="o">+</span> <span class="s2">".v"</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># show global movers</span> + <span class="n">shapes</span> <span class="o">=</span> <span class="p">[]</span> + <span class="k">for</span> <span class="n">mover</span> <span class="ow">in</span> <span class="n">globalMovers</span><span class="p">:</span> + <span class="n">child</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listRelatives</span><span class="p">(</span><span class="n">mover</span><span class="p">,</span> <span class="n">children</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">shapes</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">child</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> + <span class="n">shapes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">"|"</span> <span class="o">+</span> <span class="n">child</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> + + <span class="k">for</span> <span class="n">shape</span> <span class="ow">in</span> <span class="n">shapes</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">shape</span> <span class="o">+</span> <span class="s2">".v"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">shape</span> <span class="o">+</span> <span class="s2">".v"</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># unlock mover group for this module and make visible</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">lockNode</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_mover_grp"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_mover_grp.v"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_mover_grp.v"</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> + + <span class="c1"># hide the proxy geo</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_mover_grp"</span><span class="p">,</span> <span class="n">hi</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">allNodes</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="n">sl</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">allNodes</span><span class="p">:</span> + <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">"_proxy_geo"</span><span class="p">)</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span> + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">nodeType</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> <span class="o">==</span> <span class="s2">"mesh"</span><span class="p">:</span> + <span class="n">parent</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listRelatives</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">True</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">lockNode</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">parent</span> <span class="o">+</span> <span class="s2">".v"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">parent</span> <span class="o">+</span> <span class="s2">".v"</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">lockNode</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># get the joints created by this module</span> + <span class="n">joints</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnCreatedJoints</span> + + <span class="c1"># create mover name</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + <span class="n">baseName</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".baseName"</span><span class="p">)</span> + + <span class="k">for</span> <span class="n">joint</span> <span class="ow">in</span> <span class="n">joints</span><span class="p">:</span> + + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="n">joint</span> <span class="o">+</span> <span class="s2">"_mover_offset"</span><span class="p">):</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">parentConstraint</span><span class="p">(</span><span class="n">joint</span> <span class="o">+</span> <span class="s2">"_mover_offset"</span><span class="p">,</span> <span class="n">joint</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">jointBaseName</span> <span class="o">=</span> <span class="n">joint</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">!=</span> <span class="n">baseName</span><span class="p">:</span> + <span class="n">nameData</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">baseName</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">nameData</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">""</span><span class="p">:</span> + <span class="n">jointBaseName</span> <span class="o">=</span> <span class="n">jointBaseName</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="n">nameData</span><span class="p">[</span><span class="mi">0</span><span class="p">])[</span><span class="mi">2</span><span class="p">]</span> + <span class="k">if</span> <span class="n">nameData</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">""</span><span class="p">:</span> + <span class="n">jointBaseName</span> <span class="o">=</span> <span class="n">jointBaseName</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="n">nameData</span><span class="p">[</span><span class="mi">1</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span> + + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_"</span> <span class="o">+</span> <span class="n">jointBaseName</span> <span class="o">+</span> <span class="s2">"_mover_offset"</span><span class="p">):</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">parentConstraint</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_"</span> <span class="o">+</span> <span class="n">jointBaseName</span> <span class="o">+</span> <span class="s2">"_mover_offset"</span><span class="p">,</span> <span class="n">joint</span><span class="p">)</span> + + <span class="c1"># lock joint movers</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">"JointMover"</span><span class="p">,</span> <span class="n">hi</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">jmNodes</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="n">sl</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">jmNodes</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">lockNode</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.setSkeletonPose"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.setSkeletonPose">[docs]</a> <span class="k">def</span> <span class="nf">setSkeletonPose</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">poseType</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method constrains the joints to the movers and then stores that pose data for those joints.</span> + +<span class="sd"> This could be the model pose or the rig pose.</span> + +<span class="sd"> :param poseType: whether to set the model pose or rig pose for the joints.</span> + +<span class="sd"> """</span> + <span class="c1"># get the joints created by this module</span> + <span class="n">joints</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnCreatedJoints</span> + + <span class="c1"># create mover name</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + <span class="n">baseName</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".baseName"</span><span class="p">)</span> + + <span class="k">for</span> <span class="n">joint</span> <span class="ow">in</span> <span class="n">joints</span><span class="p">:</span> + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="n">joint</span> <span class="o">+</span> <span class="s2">"_mover_offset"</span><span class="p">):</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">parentConstraint</span><span class="p">(</span><span class="n">joint</span> <span class="o">+</span> <span class="s2">"_mover_offset"</span><span class="p">,</span> <span class="n">joint</span><span class="p">)</span> + + <span class="k">else</span><span class="p">:</span> + <span class="n">jointBaseName</span> <span class="o">=</span> <span class="n">joint</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">!=</span> <span class="n">baseName</span><span class="p">:</span> + <span class="n">nameData</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">baseName</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">nameData</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">""</span><span class="p">:</span> + <span class="n">jointBaseName</span> <span class="o">=</span> <span class="n">jointBaseName</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="n">nameData</span><span class="p">[</span><span class="mi">0</span><span class="p">])[</span><span class="mi">2</span><span class="p">]</span> + <span class="k">if</span> <span class="n">nameData</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">""</span><span class="p">:</span> + <span class="n">jointBaseName</span> <span class="o">=</span> <span class="n">jointBaseName</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="n">nameData</span><span class="p">[</span><span class="mi">1</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span> + + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_"</span> <span class="o">+</span> <span class="n">jointBaseName</span> <span class="o">+</span> <span class="s2">"_mover_offset"</span><span class="p">):</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">parentConstraint</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_"</span> <span class="o">+</span> <span class="n">jointBaseName</span> <span class="o">+</span> <span class="s2">"_mover_offset"</span><span class="p">,</span> <span class="n">joint</span><span class="p">)</span> + + <span class="c1"># set pose</span> + <span class="bp">self</span><span class="o">.</span><span class="n">setReferencePose</span><span class="p">(</span><span class="n">poseType</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.removeSkeletalConstraints"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.removeSkeletalConstraints">[docs]</a> <span class="k">def</span> <span class="nf">removeSkeletalConstraints</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method removes any constraints on the joints. This tends to get called by removing rigging.</span> + +<span class="sd"> """</span> + + <span class="c1"># get the joints created by this module and remove the constraints</span> + <span class="n">joints</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnCreatedJoints</span> + + <span class="c1"># create mover name</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + <span class="n">baseName</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".baseName"</span><span class="p">)</span> + + <span class="k">for</span> <span class="n">joint</span> <span class="ow">in</span> <span class="n">joints</span><span class="p">:</span> + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="n">joint</span> <span class="o">+</span> <span class="s2">"_mover_offset"</span><span class="p">):</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">joint</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">constraints</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="k">else</span><span class="p">:</span> + <span class="n">jointBaseName</span> <span class="o">=</span> <span class="n">joint</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">!=</span> <span class="n">baseName</span><span class="p">:</span> + <span class="n">nameData</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">baseName</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">nameData</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">""</span><span class="p">:</span> + <span class="n">jointBaseName</span> <span class="o">=</span> <span class="n">jointBaseName</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="n">nameData</span><span class="p">[</span><span class="mi">0</span><span class="p">])[</span><span class="mi">2</span><span class="p">]</span> + <span class="k">if</span> <span class="n">nameData</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">""</span><span class="p">:</span> + <span class="n">jointBaseName</span> <span class="o">=</span> <span class="n">jointBaseName</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="n">nameData</span><span class="p">[</span><span class="mi">1</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span> + + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_"</span> <span class="o">+</span> <span class="n">jointBaseName</span> <span class="o">+</span> <span class="s2">"_mover_offset"</span><span class="p">):</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">joint</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">constraints</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.cleanUpRigPose"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.cleanUpRigPose">[docs]</a> <span class="k">def</span> <span class="nf">cleanUpRigPose</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method hides the joint movers and unconstrains the joints from the movers after setting a rig pose.</span> + +<span class="sd"> """</span> + + <span class="c1"># show the proxy geo</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_mover_grp"</span><span class="p">,</span> <span class="n">hi</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">allNodes</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="n">sl</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">allNodes</span><span class="p">:</span> + <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">"_proxy_geo"</span><span class="p">)</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span> + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">nodeType</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> <span class="o">==</span> <span class="s2">"mesh"</span><span class="p">:</span> + <span class="n">parent</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listRelatives</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">True</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">lockNode</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">parent</span> <span class="o">+</span> <span class="s2">".v"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">parent</span> <span class="o">+</span> <span class="s2">".v"</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">lockNode</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># unlock mover group for this module and make invisible</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">lockNode</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_mover_grp"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_mover_grp.v"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_mover_grp.v"</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> + + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_mover_grp.v"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">lockNode</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_mover_grp"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># get the joints created by this module and remove the constraints</span> + <span class="n">joints</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnCreatedJoints</span> + + <span class="c1"># create mover name</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + <span class="n">baseName</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".baseName"</span><span class="p">)</span> + + <span class="k">for</span> <span class="n">joint</span> <span class="ow">in</span> <span class="n">joints</span><span class="p">:</span> + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="n">joint</span> <span class="o">+</span> <span class="s2">"_mover_offset"</span><span class="p">):</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">joint</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">constraints</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="k">else</span><span class="p">:</span> + <span class="n">jointBaseName</span> <span class="o">=</span> <span class="n">joint</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">!=</span> <span class="n">baseName</span><span class="p">:</span> + <span class="n">nameData</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">baseName</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">nameData</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">""</span><span class="p">:</span> + <span class="n">jointBaseName</span> <span class="o">=</span> <span class="n">jointBaseName</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="n">nameData</span><span class="p">[</span><span class="mi">0</span><span class="p">])[</span><span class="mi">2</span><span class="p">]</span> + <span class="k">if</span> <span class="n">nameData</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">""</span><span class="p">:</span> + <span class="n">jointBaseName</span> <span class="o">=</span> <span class="n">jointBaseName</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="n">nameData</span><span class="p">[</span><span class="mi">1</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span> + + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_"</span> <span class="o">+</span> <span class="n">jointBaseName</span> <span class="o">+</span> <span class="s2">"_mover_offset"</span><span class="p">):</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">joint</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">constraints</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.updateRigPose"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.updateRigPose">[docs]</a> <span class="k">def</span> <span class="nf">updateRigPose</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">slider</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method updates what the stored rig pose is for a module. The default rig pose tends to be zeroed out</span> +<span class="sd"> rotations, but this function can essentially update what the max value on the rig pose slider sets the pose to.</span> + +<span class="sd"> :param slider: The rig pose slider where the min is the current model pose and the max is the rig pose.</span> + +<span class="sd"> """</span> + + <span class="c1"># get network node</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + + <span class="c1"># get pose data off networkNode</span> + <span class="n">originalData</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".rigPose"</span><span class="p">))</span> + <span class="n">newPose</span> <span class="o">=</span> <span class="p">[]</span> + + <span class="k">for</span> <span class="n">data</span> <span class="ow">in</span> <span class="n">originalData</span><span class="p">:</span> + <span class="n">moverData</span> <span class="o">=</span> <span class="p">{}</span> + <span class="n">mover</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"mover"</span><span class="p">)</span> + <span class="n">moverData</span><span class="p">[</span><span class="s2">"mover"</span><span class="p">]</span> <span class="o">=</span> <span class="n">mover</span> + + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="n">mover</span><span class="p">):</span> + <span class="n">translate</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">".translate"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> + <span class="n">rotate</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">".rotate"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> + + <span class="n">moverData</span><span class="p">[</span><span class="s2">"translate"</span><span class="p">]</span> <span class="o">=</span> <span class="n">translate</span> + <span class="n">moverData</span><span class="p">[</span><span class="s2">"rotate"</span><span class="p">]</span> <span class="o">=</span> <span class="n">rotate</span> + <span class="n">newPose</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">moverData</span><span class="p">)</span> + + <span class="n">jsonString</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">newPose</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".rigPose"</span><span class="p">,</span> <span class="n">jsonString</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s2">"string"</span><span class="p">)</span> + <span class="n">slider</span><span class="o">.</span><span class="n">setValue</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> + <span class="n">slider</span><span class="o">.</span><span class="n">setValue</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.resetRigPose"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.resetRigPose">[docs]</a> <span class="k">def</span> <span class="nf">resetRigPose</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method resets the module rig pose to be the default (zeroed rotations).</span> + +<span class="sd"> """</span> + + <span class="c1"># get the network node</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + + <span class="c1"># remove the rigPose attribute on the networkNode</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">deleteAttr</span><span class="p">(</span><span class="n">networkNode</span><span class="p">,</span> <span class="n">at</span><span class="o">=</span><span class="s2">"rigPose"</span><span class="p">)</span> + + <span class="c1"># recreate rig pose node with defaults</span> + <span class="bp">self</span><span class="o">.</span><span class="n">getReferencePose</span><span class="p">(</span><span class="s2">"rigPose"</span><span class="p">)</span> + + <span class="c1"># set slider</span> + <span class="bp">self</span><span class="o">.</span><span class="n">overallSlider</span><span class="o">.</span><span class="n">setValue</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">overallSlider</span><span class="o">.</span><span class="n">setValue</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.resetRigPose_Part"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.resetRigPose_Part">[docs]</a> <span class="k">def</span> <span class="nf">resetRigPose_Part</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">part</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method resets the given joint (part) rig pose to be zeroed rotations. This is for the part slider on</span> +<span class="sd"> the rig pose UI in the advanced section.</span> + +<span class="sd"> :param part: The given joint name slider.</span> + +<span class="sd"> """</span> + + <span class="c1"># get the networkNode</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + + <span class="c1"># get the poseData</span> + <span class="n">poseData</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".rigPose"</span><span class="p">))</span> + + <span class="c1"># find our part in the pose data</span> + <span class="k">for</span> <span class="n">data</span> <span class="ow">in</span> <span class="n">poseData</span><span class="p">:</span> + <span class="n">mover</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"mover"</span><span class="p">)</span> + <span class="k">if</span> <span class="n">mover</span> <span class="o">==</span> <span class="n">part</span><span class="p">:</span> + <span class="n">rotate</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"rotate"</span><span class="p">)</span> + + <span class="k">try</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">".rotate"</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s2">"double3"</span><span class="p">)</span> + <span class="n">data</span><span class="p">[</span><span class="s2">"rotate"</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="mf">0.0</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">)</span> + <span class="k">except</span><span class="p">:</span> + <span class="k">pass</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.getReferencePose"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.getReferencePose">[docs]</a> <span class="k">def</span> <span class="nf">getReferencePose</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">poseType</span><span class="p">,</span> <span class="n">zeroPose</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method gets the model pose or the rig pose (depending on poseType) and stores that data for the movers.</span> + +<span class="sd"> :param poseType: Whether or not to get the model pose or rig pose.</span> +<span class="sd"> :param zeroPose: Whether or not the default rig pose should be set to zeroed rotations.</span> + +<span class="sd"> """</span> + + <span class="c1"># get movers</span> + <span class="n">jointMovers</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnJointMovers</span> + + <span class="c1"># separate mover lists</span> + <span class="n">globalMovers</span> <span class="o">=</span> <span class="n">jointMovers</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> + <span class="n">offsetMovers</span> <span class="o">=</span> <span class="n">jointMovers</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> + + <span class="c1"># get the network node</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + + <span class="c1"># if rigPose already exists, then do not set values</span> + <span class="k">if</span> <span class="n">poseType</span> <span class="o">==</span> <span class="s2">"rigPose"</span><span class="p">:</span> + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">poseType</span><span class="p">):</span> + <span class="k">return</span> + + <span class="c1"># create the pose data attr if needed</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">poseType</span><span class="p">):</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="n">networkNode</span><span class="p">,</span> <span class="n">sn</span><span class="o">=</span><span class="n">poseType</span><span class="p">,</span> <span class="n">dt</span><span class="o">=</span><span class="s2">"string"</span><span class="p">)</span> + + <span class="c1"># create reference pose data dict</span> + <span class="n">poseData</span> <span class="o">=</span> <span class="p">[]</span> + + <span class="c1"># loop through each mover, getting the translate and rotate values, creating an attribute on the network node</span> + <span class="c1"># to store those values</span> + <span class="k">for</span> <span class="n">moverList</span> <span class="ow">in</span> <span class="p">[</span><span class="n">globalMovers</span><span class="p">,</span> <span class="n">offsetMovers</span><span class="p">]:</span> + <span class="k">for</span> <span class="n">mover</span> <span class="ow">in</span> <span class="n">moverList</span><span class="p">:</span> + <span class="n">moverData</span> <span class="o">=</span> <span class="p">{}</span> + <span class="n">moverData</span><span class="p">[</span><span class="s2">"mover"</span><span class="p">]</span> <span class="o">=</span> <span class="n">mover</span> + + <span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">"translate"</span><span class="p">,</span> <span class="s2">"rotate"</span><span class="p">]:</span> + <span class="n">value</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">attr</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> + + <span class="k">if</span> <span class="n">zeroPose</span><span class="p">:</span> + <span class="k">if</span> <span class="n">poseType</span> <span class="o">==</span> <span class="s2">"rigPose"</span><span class="p">:</span> + <span class="k">if</span> <span class="n">attr</span> <span class="o">==</span> <span class="s2">"rotate"</span><span class="p">:</span> + <span class="n">value</span> <span class="o">=</span> <span class="p">(</span><span class="mf">0.0</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">)</span> + + <span class="c1"># add the data to the list</span> + <span class="n">moverData</span><span class="p">[</span><span class="n">attr</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span> + + <span class="c1"># add mover data to the pose data list</span> + <span class="n">poseData</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">moverData</span><span class="p">)</span> + + <span class="c1"># dump the pose data list onto the poseType attribute</span> + <span class="n">jsonString</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">poseData</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">poseType</span><span class="p">,</span> <span class="n">jsonString</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s2">"string"</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.setReferencePose"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.setReferencePose">[docs]</a> <span class="k">def</span> <span class="nf">setReferencePose</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">poseType</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method gets the data for the given pose type (rig or model) and sets the movers with those values.</span> + +<span class="sd"> :param poseType: Whether to set the model pose or the rig pose on the movers.</span> + +<span class="sd"> """</span> + + <span class="c1"># get the network node</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + + <span class="c1"># get the pose data from the attribute</span> + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">poseType</span><span class="p">):</span> + <span class="n">poseData</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">poseType</span><span class="p">))</span> + + <span class="k">for</span> <span class="n">data</span> <span class="ow">in</span> <span class="n">poseData</span><span class="p">:</span> + <span class="n">mover</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"mover"</span><span class="p">)</span> + <span class="n">translate</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"translate"</span><span class="p">)</span> + <span class="n">rotate</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"rotate"</span><span class="p">)</span> + + <span class="c1"># if the mover exists, set the values</span> + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="n">mover</span><span class="p">):</span> + + <span class="c1"># set translations</span> + <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">translate</span><span class="p">)):</span> + <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">".translateX"</span><span class="p">,</span> <span class="n">translate</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> + <span class="k">except</span><span class="p">:</span> + <span class="k">pass</span> + <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">".translateY"</span><span class="p">,</span> <span class="n">translate</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> + <span class="k">except</span><span class="p">:</span> + <span class="k">pass</span> + <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">".translateZ"</span><span class="p">,</span> <span class="n">translate</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> + <span class="k">except</span><span class="p">:</span> + <span class="k">pass</span> + + <span class="c1"># set rotations</span> + <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">rotate</span><span class="p">)):</span> + <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">".rotateX"</span><span class="p">,</span> <span class="n">rotate</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> + <span class="k">except</span><span class="p">:</span> + <span class="k">pass</span> + <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">".rotateY"</span><span class="p">,</span> <span class="n">rotate</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> + <span class="k">except</span><span class="p">:</span> + <span class="k">pass</span> + <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">".rotateZ"</span><span class="p">,</span> <span class="n">rotate</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> + <span class="k">except</span><span class="p">:</span> + <span class="k">pass</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.setReferencePoseSlider"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.setReferencePoseSlider">[docs]</a> <span class="k">def</span> <span class="nf">setReferencePoseSlider</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">part</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method takes the slider value of a given part and then calls on setPosePercentage, which will then find</span> +<span class="sd"> the values of the model pose and the rig pose and figure out based on the slider percentage what values to</span> +<span class="sd"> set on the mover.</span> + +<span class="sd"> :param part: the joint mover which the slider is controlling.</span> +<span class="sd"> :param args: the values from the slider</span> + +<span class="sd"> """</span> + + <span class="n">percent</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">*</span> <span class="o">.</span><span class="mi">01</span> + <span class="bp">self</span><span class="o">.</span><span class="n">setPosePercentage</span><span class="p">(</span><span class="n">percent</span><span class="p">,</span> <span class="n">part</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.setPosePercentage"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.setPosePercentage">[docs]</a> <span class="k">def</span> <span class="nf">setPosePercentage</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">percent</span><span class="p">,</span> <span class="n">part</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method takes the percent from setReferencePoseSlider, gets the values of the model pose and rig pose</span> +<span class="sd"> for the given part, then calls on setPosePercentage_Part to find and set the values on the mover that is</span> +<span class="sd"> the percentage between model and rig pose.</span> + +<span class="sd"> Example: If the model pose is a value of 10 and the rig pose is a value of 0, and the slider is at .5, then</span> +<span class="sd"> the value to set is 5. (But this is done and found per attribute)</span> + +<span class="sd"> :param percent: What percent of model and rig pose to set.</span> +<span class="sd"> :param part: What joint mover to set the values on.</span> + +<span class="sd"> """</span> + + <span class="c1"># get network node</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + + <span class="c1"># get reference pose attributes</span> + <span class="n">modelPoseData</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".modelPose"</span><span class="p">))</span> + <span class="n">rigPoseData</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".rigPose"</span><span class="p">))</span> + + <span class="c1"># get the data for each mover</span> + <span class="k">for</span> <span class="n">poseData</span> <span class="ow">in</span> <span class="n">modelPoseData</span><span class="p">:</span> + + <span class="n">mover</span> <span class="o">=</span> <span class="n">poseData</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"mover"</span><span class="p">)</span> + <span class="n">translate</span> <span class="o">=</span> <span class="n">poseData</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"translate"</span><span class="p">)</span> + <span class="n">rotate</span> <span class="o">=</span> <span class="n">poseData</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"rotate"</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">part</span> <span class="o">!=</span> <span class="kc">None</span><span class="p">:</span> + <span class="k">if</span> <span class="n">part</span> <span class="o">==</span> <span class="n">mover</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">setPosePercentage_Part</span><span class="p">(</span><span class="n">percent</span><span class="p">,</span> <span class="n">mover</span><span class="p">,</span> <span class="n">modelPoseData</span><span class="p">,</span> <span class="n">rigPoseData</span><span class="p">,</span> <span class="n">poseData</span><span class="p">,</span> <span class="n">translate</span><span class="p">,</span> <span class="n">rotate</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">setPosePercentage_Part</span><span class="p">(</span><span class="n">percent</span><span class="p">,</span> <span class="n">mover</span><span class="p">,</span> <span class="n">modelPoseData</span><span class="p">,</span> <span class="n">rigPoseData</span><span class="p">,</span> <span class="n">poseData</span><span class="p">,</span> <span class="n">translate</span><span class="p">,</span> <span class="n">rotate</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.setPosePercentage_Part"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.setPosePercentage_Part">[docs]</a> <span class="k">def</span> <span class="nf">setPosePercentage_Part</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">percent</span><span class="p">,</span> <span class="n">mover</span><span class="p">,</span> <span class="n">modelPoseData</span><span class="p">,</span> <span class="n">rigPoseData</span><span class="p">,</span> <span class="n">poseData</span><span class="p">,</span> <span class="n">translate</span><span class="p">,</span> <span class="n">rotate</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method takes the data from setPosePercentage and figures out what values to set on the given part (mover).</span> + +<span class="sd"> Example: If the model pose is a value of 10 and the rig pose is a value of 0, and the slider is at .5, then</span> +<span class="sd"> the value to set is 5. (But this is done and found per attribute)</span> + +<span class="sd"> :param percent: the percent value of the slider. What percentage of the model and rig pose to use.</span> +<span class="sd"> :param mover: the mover to set the values on.</span> +<span class="sd"> :param modelPoseData: all of the data for the model pose for this mover.</span> +<span class="sd"> :param rigPoseData: all of the data for the rig pose for this mover.</span> +<span class="sd"> :param poseData: a list which includes the mover and its translate and rotate values.</span> +<span class="sd"> :param translate: the translate values for the model pose</span> +<span class="sd"> :param rotate: the rotate values for the model pose</span> + +<span class="sd"> """</span> + + <span class="c1"># get the index of this entry in the rigPoseData list</span> + <span class="n">index</span> <span class="o">=</span> <span class="n">modelPoseData</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">poseData</span><span class="p">)</span> + + <span class="c1"># get the corresponding rig pose data</span> + <span class="n">rigData</span> <span class="o">=</span> <span class="n">rigPoseData</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> + <span class="n">rigTranslate</span> <span class="o">=</span> <span class="n">rigData</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"translate"</span><span class="p">)</span> + <span class="n">rigRotate</span> <span class="o">=</span> <span class="n">rigData</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"rotate"</span><span class="p">)</span> + + <span class="c1"># find percentile between model and rig pose to set on each attribute</span> + <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">translate</span><span class="p">)):</span> + <span class="n">valueToSet</span> <span class="o">=</span> <span class="n">mathUtils</span><span class="o">.</span><span class="n">returnPercentile</span><span class="p">([</span><span class="n">translate</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">rigTranslate</span><span class="p">[</span><span class="n">i</span><span class="p">]],</span> <span class="n">percent</span><span class="p">)</span> + <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">".translateX"</span><span class="p">,</span> <span class="n">valueToSet</span><span class="p">)</span> + <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">".translateY"</span><span class="p">,</span> <span class="n">valueToSet</span><span class="p">)</span> + <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">".translateZ"</span><span class="p">,</span> <span class="n">valueToSet</span><span class="p">)</span> + + <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">rotate</span><span class="p">)):</span> + <span class="n">valueToSet</span> <span class="o">=</span> <span class="n">mathUtils</span><span class="o">.</span><span class="n">returnPercentile</span><span class="p">([</span><span class="n">rotate</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">rigRotate</span><span class="p">[</span><span class="n">i</span><span class="p">]],</span> <span class="n">percent</span><span class="p">)</span> + <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">".rotateX"</span><span class="p">,</span> <span class="n">valueToSet</span><span class="p">)</span> + <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">".rotateY"</span><span class="p">,</span> <span class="n">valueToSet</span><span class="p">)</span> + <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">mover</span> <span class="o">+</span> <span class="s2">".rotateZ"</span><span class="p">,</span> <span class="n">valueToSet</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.createRigPoseSliderForJoint"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.createRigPoseSliderForJoint">[docs]</a> <span class="k">def</span> <span class="nf">createRigPoseSliderForJoint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">joint</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method creates the rig pose slider widget for the given joint. (This shows up in the advanced section of</span> +<span class="sd"> the rig pose UI)</span> + +<span class="sd"> :param joint: The joint that the slider will control.</span> + +<span class="sd"> """</span> + + <span class="c1"># load stylesheet</span> + <span class="n">styleSheetFile</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">returnNicePath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">toolsPath</span><span class="p">,</span> <span class="s2">"Core/Scripts/Interfaces/StyleSheets/mainScheme.qss"</span><span class="p">)</span> + <span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">styleSheetFile</span><span class="p">,</span> <span class="s2">"r"</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">style</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">()</span> + <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> + + <span class="c1"># create mover name</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + <span class="n">baseName</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".baseName"</span><span class="p">)</span> + + <span class="n">jointName</span> <span class="o">=</span> <span class="n">joint</span> + + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="n">joint</span> <span class="o">+</span> <span class="s2">"_mover"</span><span class="p">):</span> + <span class="n">jointName</span> <span class="o">=</span> <span class="n">joint</span> + + <span class="k">else</span><span class="p">:</span> + + <span class="n">jointBaseName</span> <span class="o">=</span> <span class="n">joint</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">!=</span> <span class="n">baseName</span><span class="p">:</span> + <span class="n">nameData</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">baseName</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">nameData</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">""</span><span class="p">:</span> + <span class="n">jointName</span> <span class="o">=</span> <span class="n">jointBaseName</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="n">nameData</span><span class="p">[</span><span class="mi">0</span><span class="p">])[</span><span class="mi">2</span><span class="p">]</span> + <span class="k">if</span> <span class="n">nameData</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">""</span><span class="p">:</span> + <span class="n">jointName</span> <span class="o">=</span> <span class="n">jointName</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="n">nameData</span><span class="p">[</span><span class="mi">1</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span> + + <span class="n">jointName</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_"</span> <span class="o">+</span> <span class="n">jointName</span> + + <span class="k">else</span><span class="p">:</span> + <span class="n">jointName</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"_"</span> <span class="o">+</span> <span class="n">jointName</span> + + <span class="c1"># create a master vertical layout</span> + <span class="n">mainLayout</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QVBoxLayout</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigPose_advancedLayout</span><span class="o">.</span><span class="n">addLayout</span><span class="p">(</span><span class="n">mainLayout</span><span class="p">)</span> + + <span class="c1"># create a label for the joint</span> + <span class="n">font</span> <span class="o">=</span> <span class="n">QtGui</span><span class="o">.</span><span class="n">QFont</span><span class="p">()</span> + <span class="n">font</span><span class="o">.</span><span class="n">setPointSize</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> + <span class="n">font</span><span class="o">.</span><span class="n">setBold</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span> + <span class="n">jointLabel</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QLabel</span><span class="p">(</span><span class="n">joint</span> <span class="o">+</span> <span class="s2">":"</span><span class="p">)</span> + <span class="n">jointLabel</span><span class="o">.</span><span class="n">setFont</span><span class="p">(</span><span class="n">font</span><span class="p">)</span> + <span class="n">mainLayout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="n">jointLabel</span><span class="p">)</span> + + <span class="c1"># create layout for slider/button</span> + <span class="n">layout</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QHBoxLayout</span><span class="p">()</span> + <span class="n">mainLayout</span><span class="o">.</span><span class="n">addLayout</span><span class="p">(</span><span class="n">layout</span><span class="p">)</span> + + <span class="c1"># create slider for joint</span> + <span class="n">slider</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QSlider</span><span class="p">()</span> + <span class="n">layout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="n">slider</span><span class="p">)</span> + <span class="n">slider</span><span class="o">.</span><span class="n">setProperty</span><span class="p">(</span><span class="s2">"name"</span><span class="p">,</span> <span class="n">joint</span><span class="p">)</span> + <span class="n">slider</span><span class="o">.</span><span class="n">setOrientation</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">Qt</span><span class="o">.</span><span class="n">Horizontal</span><span class="p">)</span> + <span class="n">slider</span><span class="o">.</span><span class="n">setRange</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">100</span><span class="p">)</span> + <span class="n">slider</span><span class="o">.</span><span class="n">setSingleStep</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> + <span class="n">slider</span><span class="o">.</span><span class="n">valueChanged</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">setReferencePoseSlider</span><span class="p">,</span> <span class="n">jointName</span> <span class="o">+</span> <span class="s2">"_mover"</span><span class="p">))</span> + <span class="n">slider</span><span class="o">.</span><span class="n">setTracking</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">overallSlider</span><span class="o">.</span><span class="n">valueChanged</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">slider</span><span class="o">.</span><span class="n">setValue</span><span class="p">)</span> + + <span class="c1"># create reset button</span> + <span class="n">button</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QPushButton</span><span class="p">(</span><span class="s2">"Reset"</span><span class="p">)</span> + <span class="n">button</span><span class="o">.</span><span class="n">setMinimumWidth</span><span class="p">(</span><span class="mi">70</span><span class="p">)</span> + <span class="n">button</span><span class="o">.</span><span class="n">setMaximumWidth</span><span class="p">(</span><span class="mi">70</span><span class="p">)</span> + <span class="n">layout</span><span class="o">.</span><span class="n">addWidget</span><span class="p">(</span><span class="n">button</span><span class="p">)</span> + <span class="n">button</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">"blueButton"</span><span class="p">)</span> + <span class="n">button</span><span class="o">.</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">style</span><span class="p">)</span> + + <span class="n">button</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">resetRigPose_Part</span><span class="p">,</span> <span class="n">jointName</span> <span class="o">+</span> <span class="s2">"_mover"</span><span class="p">))</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.updateBoneCount"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.updateBoneCount">[docs]</a> <span class="k">def</span> <span class="nf">updateBoneCount</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method looks at the create bones attribute of the module and gets the number of bones in that list</span> +<span class="sd"> and appends it onto the total bone count for the bone counter interface.</span> + +<span class="sd"> """</span> + + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">window</span><span class="p">(</span><span class="s2">"ART_BoneCounterWin"</span><span class="p">,</span> <span class="n">exists</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">rigUiInst</span><span class="o">.</span><span class="n">boneCounterInst</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">rigUiInst</span><span class="o">.</span><span class="n">boneCounterInst</span><span class="o">.</span><span class="n">updateBoneCount</span><span class="p">()</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.toggleShapeVis"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.toggleShapeVis">[docs]</a> <span class="k">def</span> <span class="nf">toggleShapeVis</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">transform</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method finds the shapes for the passed in transform and toggles the visibility based on the value.</span> + +<span class="sd"> :param transform: the transform to get the shape nodes from.</span> +<span class="sd"> :param value: whether to show or hide the shape nodes.</span> + +<span class="sd"> """</span> + + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="n">transform</span><span class="p">):</span> + <span class="n">shape</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listRelatives</span><span class="p">(</span><span class="n">transform</span><span class="p">,</span> <span class="n">shapes</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="k">if</span> <span class="n">shape</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s2">".v"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s2">".v"</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s2">".v"</span><span class="p">,</span> <span class="n">lock</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.selectionScriptJob_animUI"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.selectionScriptJob_animUI">[docs]</a> <span class="k">def</span> <span class="nf">selectionScriptJob_animUI</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">buttonData</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method is called from a scriptjob anytime a selection is changed. It's sole purpose it to update the button</span> +<span class="sd"> color on the anim picker to show if a control is selected or not.</span> + +<span class="sd"> :param buttonData: pairings of button/control/brush. brush is the original color of the button.</span> + +<span class="sd"> """</span> + + <span class="n">selection</span> <span class="o">=</span> <span class="n">mel</span><span class="o">.</span><span class="n">eval</span><span class="p">(</span><span class="s2">"ls -sl;"</span><span class="p">)</span> + <span class="k">if</span> <span class="n">selection</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> + <span class="n">selection</span> <span class="o">=</span> <span class="p">[]</span> + + <span class="k">for</span> <span class="n">data</span> <span class="ow">in</span> <span class="n">buttonData</span><span class="p">:</span> + <span class="n">control</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> + <span class="n">button</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> + <span class="n">brushColor</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> + + <span class="k">if</span> <span class="n">control</span> <span class="ow">in</span> <span class="n">selection</span><span class="p">:</span> + <span class="n">button</span><span class="o">.</span><span class="n">brush</span><span class="o">.</span><span class="n">setColor</span><span class="p">(</span><span class="n">QtCore</span><span class="o">.</span><span class="n">Qt</span><span class="o">.</span><span class="n">white</span><span class="p">)</span> + <span class="n">button</span><span class="o">.</span><span class="n">update</span><span class="p">()</span> + + <span class="k">else</span><span class="p">:</span> + <span class="n">button</span><span class="o">.</span><span class="n">brush</span><span class="o">.</span><span class="n">setColor</span><span class="p">(</span><span class="n">brushColor</span><span class="p">)</span> + <span class="n">button</span><span class="o">.</span><span class="n">update</span><span class="p">()</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.importFBX_pre"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.importFBX_pre">[docs]</a> <span class="k">def</span> <span class="nf">importFBX_pre</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">importMethod</span><span class="p">,</span> <span class="n">character</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method runs before an fbx is imported onto the control rig. It cuts any keys on the controls and zeroes</span> +<span class="sd"> the controls out before importing the fbx (which is called in the derived module class)</span> + +<span class="sd"> :param importMethod: Whether or not the FBX is getting imported as FK, IK, Both, or None</span> +<span class="sd"> :param character: The namespace of the rig.</span> + +<span class="sd"> """</span> + + <span class="k">if</span> <span class="n">importMethod</span> <span class="o">!=</span> <span class="s2">"None"</span><span class="p">:</span> + <span class="n">controls</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getControls</span><span class="p">()</span> + + <span class="k">for</span> <span class="n">control</span> <span class="ow">in</span> <span class="n">controls</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">cutKey</span><span class="p">(</span><span class="n">character</span> <span class="o">+</span> <span class="s2">":"</span> <span class="o">+</span> <span class="n">control</span><span class="p">)</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">resetRigControls</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.importFBX"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.importFBX">[docs]</a> <span class="k">def</span> <span class="nf">importFBX</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">importMethod</span><span class="p">,</span> <span class="n">character</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method is implemented in the derived module class and defines how mocap is imported onto the rig controls.</span> + +<span class="sd"> :param importMethod: Whether or not the FBX is getting imported as FK, IK, Both, or None</span> +<span class="sd"> :param character: The namespace of the rig.</span> + +<span class="sd"> """</span> + + <span class="k">pass</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.resetRigControls"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.resetRigControls">[docs]</a> <span class="k">def</span> <span class="nf">resetRigControls</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">resetAll</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method zeroes out control attributes. If resetAll is true, then it will zero out all rig controls for</span> +<span class="sd"> the module. Otherwise, it will only zero out the selected controls of the module.</span> + +<span class="sd"> :param resetAll: Whether or not to reset only the selected controls or all controls of the module.</span> + +<span class="sd"> """</span> + + <span class="c1"># get namespace</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnRigNetworkNode</span> + <span class="n">characterNode</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listConnections</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".parent"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> + <span class="n">namespace</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">characterNode</span> <span class="o">+</span> <span class="s2">".namespace"</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">resetAll</span><span class="p">:</span> + + <span class="c1"># list any attributes on the network node that contain "controls"</span> + <span class="n">controls</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listAttr</span><span class="p">(</span><span class="n">networkNode</span><span class="p">,</span> <span class="n">st</span><span class="o">=</span><span class="s2">"*Controls"</span><span class="p">)</span> + <span class="c1"># get that data on that attr</span> + <span class="k">for</span> <span class="n">control</span> <span class="ow">in</span> <span class="n">controls</span><span class="p">:</span> + <span class="n">data</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">control</span><span class="p">))</span> + + <span class="c1"># reset the attr on each control</span> + <span class="n">nonZeroAttrs</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"scale"</span><span class="p">,</span> <span class="s2">"globalScale"</span><span class="p">,</span> <span class="s2">"scaleX"</span><span class="p">,</span> <span class="s2">"scaleY"</span><span class="p">,</span> <span class="s2">"scaleZ"</span><span class="p">]</span> + + <span class="k">try</span><span class="p">:</span> + <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span> + <span class="n">attrs</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listAttr</span><span class="p">(</span><span class="n">namespace</span> <span class="o">+</span> <span class="s2">":"</span> <span class="o">+</span> <span class="n">each</span><span class="p">,</span> <span class="n">keyable</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="n">attrs</span><span class="p">:</span> + <span class="k">if</span> <span class="n">attr</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">nonZeroAttrs</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">namespace</span> <span class="o">+</span> <span class="s2">":"</span> <span class="o">+</span> <span class="n">each</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">attr</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">namespace</span> <span class="o">+</span> <span class="s2">":"</span> <span class="o">+</span> <span class="n">each</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">attr</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> + <span class="k">except</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">"skipped "</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">control</span><span class="p">)</span> <span class="o">+</span> <span class="s2">". No valid controls found to reset."</span><span class="p">)</span> + + <span class="k">if</span> <span class="ow">not</span> <span class="n">resetAll</span><span class="p">:</span> + <span class="n">nonZeroAttrs</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"scale"</span><span class="p">,</span> <span class="s2">"globalScale"</span><span class="p">,</span> <span class="s2">"scaleX"</span><span class="p">,</span> <span class="s2">"scaleY"</span><span class="p">,</span> <span class="s2">"scaleZ"</span><span class="p">]</span> + <span class="n">selection</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="n">sl</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="n">selection</span><span class="p">:</span> + <span class="n">attrs</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listAttr</span><span class="p">(</span><span class="n">each</span><span class="p">,</span> <span class="n">keyable</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="n">attrs</span><span class="p">:</span> + <span class="k">if</span> <span class="n">attr</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">nonZeroAttrs</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">each</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">attr</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">each</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">attr</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.getControls"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.getControls">[docs]</a> <span class="k">def</span> <span class="nf">getControls</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method returns a list of all the rig controls of the module.</span> + +<span class="sd"> :return: List of all rig controls in the module.</span> + +<span class="sd"> """</span> + + <span class="c1"># get namespace</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnRigNetworkNode</span> + <span class="k">if</span> <span class="n">networkNode</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> + <span class="n">winParent</span> <span class="o">=</span> <span class="n">interfaceUtils</span><span class="o">.</span><span class="n">getMainWindow</span><span class="p">()</span> + <span class="n">win</span> <span class="o">=</span> <span class="n">interfaceUtils</span><span class="o">.</span><span class="n">DialogMessage</span><span class="p">(</span><span class="s2">"Error"</span><span class="p">,</span> <span class="s2">"This function does not work without a namespace."</span><span class="p">,</span> <span class="p">[],</span> <span class="mi">0</span><span class="p">,</span> + <span class="n">winParent</span><span class="p">)</span> + <span class="n">win</span><span class="o">.</span><span class="n">show</span><span class="p">()</span> + <span class="k">return</span> <span class="kc">None</span> + + <span class="c1"># list any attributes on the network node that contain "controls"</span> + <span class="n">controls</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listAttr</span><span class="p">(</span><span class="n">networkNode</span><span class="p">,</span> <span class="n">st</span><span class="o">=</span><span class="s2">"*Controls"</span><span class="p">)</span> + + <span class="n">returnControls</span> <span class="o">=</span> <span class="p">[]</span> + + <span class="c1"># get that data on that attr</span> + <span class="k">for</span> <span class="n">control</span> <span class="ow">in</span> <span class="n">controls</span><span class="p">:</span> + <span class="n">data</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">control</span><span class="p">))</span> + + <span class="c1"># reset the attr on each control</span> + <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> + <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span> + <span class="n">returnControls</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">each</span><span class="p">)</span> + + <span class="k">return</span> <span class="n">returnControls</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> +<div class="viewcode-block" id="ART_RigModule.selectRigControls"><a class="viewcode-back" href="../../baseclass.html#System.ART_RigModule.ART_RigModule.selectRigControls">[docs]</a> <span class="k">def</span> <span class="nf">selectRigControls</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method calls on getControls to return a list of the controls and the selects them.</span> + +<span class="sd"> """</span> + + <span class="n">controls</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getControls</span><span class="p">()</span> + + <span class="c1"># get namespace</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnRigNetworkNode</span> + <span class="n">characterNode</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listConnections</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".parent"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> + <span class="n">namespace</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">characterNode</span> <span class="o">+</span> <span class="s2">".namespace"</span><span class="p">)</span> + + <span class="k">for</span> <span class="n">control</span> <span class="ow">in</span> <span class="n">controls</span><span class="p">:</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">namespace</span> <span class="o">+</span> <span class="s2">":"</span> <span class="o">+</span> <span class="n">control</span><span class="p">,</span> <span class="n">add</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span></div> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># PROPERTIES</span> + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">getModules</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method finds the main "character" module that has connections to all of the rig modules</span> + +<span class="sd"> :return: returns the character node.</span> + +<span class="sd"> """</span> + + <span class="n">modules</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="nb">type</span><span class="o">=</span><span class="s2">"network"</span><span class="p">)</span> + <span class="k">for</span> <span class="n">module</span> <span class="ow">in</span> <span class="n">modules</span><span class="p">:</span> + <span class="n">attrs</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listAttr</span><span class="p">(</span><span class="n">module</span><span class="p">)</span> + <span class="k">if</span> <span class="s2">"rigModules"</span> <span class="ow">in</span> <span class="n">attrs</span><span class="p">:</span> + <span class="k">return</span> <span class="n">module</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">getAllModules</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method finds all connected rig modules to the main character network node.</span> + +<span class="sd"> :return: returns a list of the rig modules</span> + +<span class="sd"> """</span> + + <span class="n">modules</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="nb">type</span><span class="o">=</span><span class="s2">"network"</span><span class="p">)</span> + <span class="n">returnMods</span> <span class="o">=</span> <span class="p">[]</span> + <span class="k">for</span> <span class="n">module</span> <span class="ow">in</span> <span class="n">modules</span><span class="p">:</span> + <span class="n">attrs</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listAttr</span><span class="p">(</span><span class="n">module</span><span class="p">)</span> + <span class="k">if</span> <span class="s2">"parent"</span> <span class="ow">in</span> <span class="n">attrs</span><span class="p">:</span> + <span class="n">returnMods</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">module</span><span class="p">)</span> + + <span class="k">return</span> <span class="n">returnMods</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">returnNetworkNode</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method returns the module's own network node.</span> + +<span class="sd"> :return: the modules network node</span> + +<span class="sd"> """</span> + + <span class="n">networkNodes</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="nb">type</span><span class="o">=</span><span class="s2">"network"</span><span class="p">)</span> + <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">networkNodes</span><span class="p">:</span> + <span class="n">attrs</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listAttr</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> + <span class="k">if</span> <span class="s2">"moduleName"</span> <span class="ow">in</span> <span class="n">attrs</span><span class="p">:</span> + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">node</span> <span class="o">+</span> <span class="s2">".moduleName"</span><span class="p">)</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">:</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="n">node</span> + + <span class="k">return</span> <span class="n">networkNode</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">returnRigNetworkNode</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method returns the module's own network node using the namespace on the main character</span> +<span class="sd"> network node. This is so that if there are multiple characters in a scene, we know which</span> +<span class="sd"> network node for which character we are trying to return.</span> + +<span class="sd"> :return: returns this module's network node in a scene with references.</span> + +<span class="sd"> """</span> + <span class="n">modules</span> <span class="o">=</span> <span class="p">[]</span> + <span class="n">networkNodes</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="nb">type</span><span class="o">=</span><span class="s2">"network"</span><span class="p">)</span> + <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">networkNodes</span><span class="p">:</span> + <span class="n">attrs</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listAttr</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> + <span class="k">if</span> <span class="s2">"moduleName"</span> <span class="ow">in</span> <span class="n">attrs</span><span class="p">:</span> + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">node</span> <span class="o">+</span> <span class="s2">".moduleName"</span><span class="p">)</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">:</span> + <span class="n">characterNode</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">listConnections</span><span class="p">(</span><span class="n">node</span> <span class="o">+</span> <span class="s2">".parent"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">objExists</span><span class="p">(</span><span class="n">characterNode</span> <span class="o">+</span> <span class="s2">".namespace"</span><span class="p">):</span> + <span class="k">if</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">characterNode</span> <span class="o">+</span> <span class="s2">".namespace"</span><span class="p">)</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">namespace</span><span class="o">.</span><span class="n">partition</span><span class="p">(</span><span class="s2">":"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]:</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="n">node</span> + <span class="k">return</span> <span class="n">networkNode</span> + <span class="k">else</span><span class="p">:</span> + <span class="k">return</span> <span class="kc">None</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">returnClassObject</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="k">return</span> <span class="bp">self</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">returnCreatedJoints</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method loops through the Created Bones attribute on its network node and returns a list of the</span> +<span class="sd"> joints it will create given the current module settings.</span> + +<span class="sd"> :return: A list of the created bones of the module.</span> + +<span class="sd"> """</span> + + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + <span class="n">joints</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".Created_Bones"</span><span class="p">)</span> + + <span class="n">splitJoints</span> <span class="o">=</span> <span class="n">joints</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"::"</span><span class="p">)</span> + <span class="n">createdJoints</span> <span class="o">=</span> <span class="p">[]</span> + + <span class="k">for</span> <span class="n">bone</span> <span class="ow">in</span> <span class="n">splitJoints</span><span class="p">:</span> + <span class="k">if</span> <span class="n">bone</span> <span class="o">!=</span> <span class="s2">""</span><span class="p">:</span> + <span class="n">createdJoints</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">bone</span><span class="p">)</span> + + <span class="k">return</span> <span class="n">createdJoints</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">returnJointMovers</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method finds and returns all joint movers for the module.</span> + +<span class="sd"> :return: a list of all global movers, offset movers, and geo movers for the module.</span> + +<span class="sd"> """</span> + + <span class="n">name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">groupBox</span><span class="o">.</span><span class="n">title</span><span class="p">()</span> + + <span class="c1"># select global movers</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"*_mover"</span><span class="p">)</span> + <span class="n">globalMovers</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="n">sl</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># select offset movers</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"*_mover_offset"</span><span class="p">)</span> + <span class="n">offsetMovers</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="n">sl</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="c1"># mesh movers</span> + <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">name</span> <span class="o">+</span> <span class="s2">"*_mover_geo"</span><span class="p">)</span> + <span class="n">geoMovers</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">ls</span><span class="p">(</span><span class="n">sl</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="k">return</span> <span class="p">[</span><span class="n">globalMovers</span><span class="p">,</span> <span class="n">offsetMovers</span><span class="p">,</span> <span class="n">geoMovers</span><span class="p">]</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">returnMirrorModuleInst</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method finds and returns the instance of a module's mirror module.</span> + +<span class="sd"> :return: a pointer in memory to the instance of the mirror module.</span> + +<span class="sd"> """</span> + + <span class="c1"># get network node</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + <span class="n">mirrorModule</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".mirrorModule"</span><span class="p">)</span> + + <span class="c1"># find instance through rig UI inst</span> + <span class="k">for</span> <span class="n">inst</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">rigUiInst</span><span class="o">.</span><span class="n">moduleInstances</span><span class="p">:</span> + <span class="n">networkNode</span> <span class="o">=</span> <span class="n">inst</span><span class="o">.</span><span class="n">returnNetworkNode</span> + <span class="n">moduleName</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".moduleName"</span><span class="p">)</span> + <span class="k">if</span> <span class="n">moduleName</span> <span class="o">==</span> <span class="n">mirrorModule</span><span class="p">:</span> + <span class="k">return</span> <span class="n">inst</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">returnPrefixSuffix</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This method splits our module name by the base name and returns the prefix and suffix.</span> + +<span class="sd"> :return: the user-defined prefix and suffix found by splitting the module name by the base name.</span> + +<span class="sd"> """</span> + + <span class="n">prefix</span> <span class="o">=</span> <span class="kc">None</span> + <span class="n">suffix</span> <span class="o">=</span> <span class="kc">None</span> + + <span class="n">networkNode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">returnNetworkNode</span> + <span class="n">baseName</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="n">networkNode</span> <span class="o">+</span> <span class="s2">".baseName"</span><span class="p">)</span> + <span class="n">splitName</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">baseName</span><span class="p">)</span> + <span class="k">if</span> <span class="n">splitName</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="s1">''</span><span class="p">:</span> + <span class="n">prefix</span> <span class="o">=</span> <span class="n">splitName</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> + <span class="k">if</span> <span class="n">splitName</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">!=</span> <span class="s1">''</span><span class="p">:</span> + <span class="n">suffix</span> <span class="o">=</span> <span class="n">splitName</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> + <span class="k">return</span> <span class="p">[</span><span class="n">prefix</span><span class="p">,</span> <span class="n">suffix</span><span class="p">]</span></div> +</pre></div> + + </div> + </div> + </div> + <div class="clearer"></div> + </div> + <div class="related" role="navigation" aria-label="related navigation"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="../../genindex.html" title="General Index" + >index</a></li> + <li class="right" > + <a href="../../py-modindex.html" title="Python Module Index" + >modules</a> |</li> + <li class="nav-item nav-item-0"><a href="../../index.html">ARTv2 1.0 documentation</a> »</li> + <li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> »</li> + </ul> + </div> + <div class="footer" role="contentinfo"> + © Copyright 2017, Jeremy Ernst. + Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.5.2. + </div> + </body> +</html>
\ No newline at end of file |