aboutsummaryrefslogtreecommitdiff
path: root/Documentation/build/_modules/Interfaces/ART_BakeOffsetsUI.html
diff options
context:
space:
mode:
authorMobileMachine\jeremy <[email protected]>2017-06-06 22:59:03 -0400
committerMobileMachine\jeremy <[email protected]>2017-06-06 22:59:03 -0400
commit24725fa8681f906ab44d80687c09fecc171a2896 (patch)
tree312a601df29aca7f8db9f44082d96ebc7a679138 /Documentation/build/_modules/Interfaces/ART_BakeOffsetsUI.html
parentInitial commit (diff)
downloadartv2-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/Interfaces/ART_BakeOffsetsUI.html')
-rw-r--r--Documentation/build/_modules/Interfaces/ART_BakeOffsetsUI.html369
1 files changed, 369 insertions, 0 deletions
diff --git a/Documentation/build/_modules/Interfaces/ART_BakeOffsetsUI.html b/Documentation/build/_modules/Interfaces/ART_BakeOffsetsUI.html
new file mode 100644
index 0000000..5297b1e
--- /dev/null
+++ b/Documentation/build/_modules/Interfaces/ART_BakeOffsetsUI.html
@@ -0,0 +1,369 @@
+
+
+<!doctype html>
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Interfaces.ART_BakeOffsetsUI &#8212; 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> &#187;</li>
+ <li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Module code</a> &#187;</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 Interfaces.ART_BakeOffsetsUI</h1><div class="highlight"><pre>
+<span></span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">Author: Jeremy Ernst</span>
+<span class="sd">&quot;&quot;&quot;</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">maya.cmds</span> <span class="k">as</span> <span class="nn">cmds</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">from</span> <span class="nn">ThirdParty.Qt</span> <span class="k">import</span> <span class="n">QtCore</span><span class="p">,</span> <span class="n">QtWidgets</span>
+
+
+<div class="viewcode-block" id="ART_BakeOffsets"><a class="viewcode-back" href="../../bakeOffsets.html#Interfaces.ART_BakeOffsetsUI.ART_BakeOffsets">[docs]</a><span class="k">class</span> <span class="nc">ART_BakeOffsets</span><span class="p">():</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> This clas builds a UI that allows the rigger to select modules to bake offset mover values up to the global mover</span>
+<span class="sd"> controls, making the offset movers no longer offset from their global mover parents. It can be found on the rig</span>
+<span class="sd"> creator toolbar with the following icon:</span>
+<span class="sd"> .. image:: /images/bakeOffsetsButton.png</span>
+
+<span class="sd"> The full interface looks like this, listing found modules in the scene to select and bake offsets down to.</span>
+<span class="sd"> .. image:: /images/bakeOffsets.png</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+<div class="viewcode-block" id="ART_BakeOffsets.__init__"><a class="viewcode-back" href="../../bakeOffsets.html#Interfaces.ART_BakeOffsetsUI.ART_BakeOffsets.__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">mainUI</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Instantiates the class, getting the QSettings and then calling on ART_BakeOffsetsUI.buildBakeOffsetsUI to</span>
+<span class="sd"> create the interface.</span>
+
+<span class="sd"> :param mainUI: The instance of the Rig Creator UI where this class was called from.</span>
+
+<span class="sd"> .. seealso:: ART_BakeOffsetsUI.buildBakeOffsetsUI</span>
+
+<span class="sd"> &quot;&quot;&quot;</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">&quot;Epic Games&quot;</span><span class="p">,</span> <span class="s2">&quot;ARTv2&quot;</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">&quot;toolsPath&quot;</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">&quot;iconPath&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">mainUI</span> <span class="o">=</span> <span class="n">mainUI</span>
+
+ <span class="c1"># build the UI</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">buildBakeOffsetsUI</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_BakeOffsets.buildBakeOffsetsUI"><a class="viewcode-back" href="../../bakeOffsets.html#Interfaces.ART_BakeOffsetsUI.ART_BakeOffsets.buildBakeOffsetsUI">[docs]</a> <span class="k">def</span> <span class="nf">buildBakeOffsetsUI</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Builds the interface, finding all modules and listing them for selection.</span>
+
+<span class="sd"> &quot;&quot;&quot;</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">&quot;ART_BakeOffsetsWin&quot;</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">&quot;ART_BakeOffsetsWin&quot;</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"># launch a UI to get the name information</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin</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="bp">self</span><span class="o">.</span><span class="n">mainUI</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">&quot;Core/Scripts/Interfaces/StyleSheets/mainScheme.qss&quot;</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">&quot;r&quot;</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="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin</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="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">bakeOffsetsWin_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">bakeOffsetsWin</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">bakeOffsetsWin_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">bakeOffsetsWin</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;ART_BakeOffsetsWin&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin</span><span class="o">.</span><span class="n">setWindowTitle</span><span class="p">(</span><span class="s2">&quot;Bake Offsets&quot;</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">bakeOffsetsWin_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">bakeOffsetsWin_mainWidget</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_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">bakeOffsetsWin</span><span class="o">.</span><span class="n">resize</span><span class="p">(</span><span class="mi">400</span><span class="p">,</span> <span class="mi">250</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin</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">bakeOffsetsWin</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">400</span><span class="p">,</span> <span class="mi">250</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin</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">400</span><span class="p">,</span> <span class="mi">250</span><span class="p">))</span>
+
+ <span class="c1"># create the background</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_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">bakeOffsetsWin_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">bakeOffsetsWin_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">bakeOffsetsWin_widgetLayout</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">bakeOffsetsWin_frame</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_widgetLayout</span><span class="o">.</span><span class="n">setContentsMargins</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
+
+ <span class="c1"># add the QListWidget Frame</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_moduleListFrame</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">bakeOffsetsWin_moduleListFrame</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">265</span><span class="p">,</span> <span class="mi">200</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_moduleListFrame</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">265</span><span class="p">,</span> <span class="mi">200</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_moduleListFrame</span><span class="o">.</span><span class="n">setContentsMargins</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
+
+ <span class="c1"># create the list widget</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_moduleList</span> <span class="o">=</span> <span class="n">QtWidgets</span><span class="o">.</span><span class="n">QListWidget</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_moduleListFrame</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_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">bakeOffsetsWin_moduleListFrame</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_moduleList</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">265</span><span class="p">,</span> <span class="mi">200</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_moduleList</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">265</span><span class="p">,</span> <span class="mi">200</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_moduleList</span><span class="o">.</span><span class="n">setSelectionMode</span><span class="p">(</span><span class="n">QtWidgets</span><span class="o">.</span><span class="n">QAbstractItemView</span><span class="o">.</span><span class="n">MultiSelection</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_moduleList</span><span class="o">.</span><span class="n">setSpacing</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
+
+ <span class="c1"># add the layout for the buttons</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_buttonLayoutAll</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">bakeOffsetsWin_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">bakeOffsetsWin_buttonLayoutAll</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_buttonLayoutAll</span><span class="o">.</span><span class="n">setContentsMargins</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">20</span><span class="p">)</span>
+
+ <span class="c1"># add the selection buttons</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_selectionButtonLayout</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">bakeOffsetsWin_buttonLayoutAll</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">bakeOffsetsWin_selectionButtonLayout</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_selectAllButton</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">&quot;Select All&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_selectAllButton</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">115</span><span class="p">,</span> <span class="mi">25</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_selectAllButton</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">115</span><span class="p">,</span> <span class="mi">25</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_selectionButtonLayout</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">bakeOffsetsWin_selectAllButton</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_selectAllButton</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">bakeOffsetsWin_moduleList</span><span class="o">.</span><span class="n">selectAll</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_selectAllButton</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;blueButton&quot;</span><span class="p">)</span>
+
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_selectNoneButton</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">&quot;Clear Selection&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_selectNoneButton</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">115</span><span class="p">,</span> <span class="mi">25</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_selectNoneButton</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">115</span><span class="p">,</span> <span class="mi">25</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_selectionButtonLayout</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">bakeOffsetsWin_selectNoneButton</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_selectNoneButton</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">bakeOffsetsWin_moduleList</span><span class="o">.</span><span class="n">clearSelection</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_selectNoneButton</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;blueButton&quot;</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">80</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">bakeOffsetsWin_selectionButtonLayout</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"># add the buttons for reset settings and reset transforms</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_bakeOFfsetsBtn</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">&quot;Bake Offsets&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_bakeOFfsetsBtn</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">115</span><span class="p">,</span> <span class="mi">25</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_bakeOFfsetsBtn</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">115</span><span class="p">,</span> <span class="mi">25</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_selectionButtonLayout</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">bakeOffsetsWin_bakeOFfsetsBtn</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_bakeOFfsetsBtn</span><span class="o">.</span><span class="n">setToolTip</span><span class="p">(</span><span class="s2">&quot;Turn on Aim Mode for selected modules.&quot;</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_bakeOFfsetsBtn</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">bakeOffsets</span><span class="p">))</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_bakeOFfsetsBtn</span><span class="o">.</span><span class="n">setObjectName</span><span class="p">(</span><span class="s2">&quot;blueButton&quot;</span><span class="p">)</span>
+
+ <span class="c1"># populate the list widget</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">module</span> <span class="ow">in</span> <span class="n">modules</span><span class="p">:</span>
+ <span class="c1"># get module name</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">&quot;.moduleName&quot;</span><span class="p">)</span>
+ <span class="k">if</span> <span class="n">moduleName</span> <span class="o">!=</span> <span class="s2">&quot;root&quot;</span><span class="p">:</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_moduleList</span><span class="o">.</span><span class="n">addItem</span><span class="p">(</span><span class="n">moduleName</span><span class="p">)</span>
+
+ <span class="c1"># show the window</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin</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_BakeOffsets.bakeOffsets"><a class="viewcode-back" href="../../bakeOffsets.html#Interfaces.ART_BakeOffsetsUI.ART_BakeOffsets.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">&quot;&quot;&quot;</span>
+<span class="sd"> Tales selected modules listed in the QListWidget and bakes the offset mover values up to the global mover</span>
+<span class="sd"> parent. This is achieved by creating a locator in the space of the offset mover, zeroing the offset mover</span>
+<span class="sd"> out, and constraining the global mover to the constraint. Finally, the constraints are removed and the</span>
+<span class="sd"> locators deleted.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="n">selected</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">bakeOffsetsWin_moduleList</span><span class="o">.</span><span class="n">selectedItems</span><span class="p">()</span>
+ <span class="n">items</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">selected</span><span class="p">:</span>
+ <span class="n">items</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">each</span><span class="o">.</span><span class="n">text</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"># go through each module and create the locators for the offset movers</span>
+ <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">mainUI</span><span class="o">.</span><span class="n">moduleInstances</span><span class="p">:</span>
+ <span class="n">name</span> <span class="o">=</span> <span class="n">each</span><span class="o">.</span><span class="n">name</span>
+ <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">items</span><span class="p">:</span>
+
+ <span class="c1"># get movers</span>
+ <span class="n">jointMovers</span> <span class="o">=</span> <span class="n">each</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"># 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">&quot;_offset&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s2">&quot;_loc&quot;</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">&quot;.tx&quot;</span><span class="p">,</span> <span class="s2">&quot;.ty&quot;</span><span class="p">,</span> <span class="s2">&quot;.tz&quot;</span><span class="p">,</span> <span class="s2">&quot;.rx&quot;</span><span class="p">,</span> <span class="s2">&quot;.ry&quot;</span><span class="p">,</span> <span class="s2">&quot;.rz&quot;</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"># now, for each global mover, find child groups that are constrained to them</span>
+ <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">mainUI</span><span class="o">.</span><span class="n">moduleInstances</span><span class="p">:</span>
+ <span class="n">name</span> <span class="o">=</span> <span class="n">each</span><span class="o">.</span><span class="n">name</span>
+ <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">items</span><span class="p">:</span>
+ <span class="c1"># get movers</span>
+ <span class="n">jointMovers</span> <span class="o">=</span> <span class="n">each</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">childGrps</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="k">try</span><span class="p">:</span>
+
+ <span class="c1"># find the mover group constrained to this mover (if any)</span>
+ <span class="n">connection</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">mover</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s2">&quot;parentConstraint&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+ <span class="n">grp</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">connection</span> <span class="o">+</span> <span class="s2">&quot;.constraintRotateX&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+ <span class="k">if</span> <span class="n">grp</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s2">&quot;_mover_grp&quot;</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">childGrps</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">mover</span><span class="p">,</span> <span class="n">grp</span><span class="p">])</span>
+
+ <span class="c1"># now take this group and delete the constraints</span>
+ <span class="n">cmds</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">grp</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">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="c1"># now snap global movers to offset movers</span>
+ <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">mainUI</span><span class="o">.</span><span class="n">moduleInstances</span><span class="p">:</span>
+ <span class="n">name</span> <span class="o">=</span> <span class="n">each</span><span class="o">.</span><span class="n">name</span>
+ <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">items</span><span class="p">:</span>
+ <span class="c1"># get movers</span>
+ <span class="n">jointMovers</span> <span class="o">=</span> <span class="n">each</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="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">&quot;_loc&quot;</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">&quot;_loc&quot;</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"># now remove all 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>
+
+ <span class="c1"># finally, reconstrain mover_grps to their movers</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">for</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">childGrps</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">group</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">group</span><span class="p">[</span><span class="mi">1</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">group</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">group</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">select</span><span class="p">(</span><span class="n">clear</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span></div></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> &#187;</li>
+ <li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> &#187;</li>
+ </ul>
+ </div>
+ <div class="footer" role="contentinfo">
+ &#169; 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