diff options
| author | home_pc <[email protected]> | 2020-01-20 13:48:51 -0800 |
|---|---|---|
| committer | home_pc <[email protected]> | 2020-01-20 13:48:51 -0800 |
| commit | 75fa1d1810e98453960a81115d88302e276d817f (patch) | |
| tree | 92f37accb3cb041d056d00525b5830a69862631a /docs/build/_modules/artv2_rig_modules | |
| parent | fixed install.mel issue (diff) | |
| download | artv2-75fa1d1810e98453960a81115d88302e276d817f.tar.xz artv2-75fa1d1810e98453960a81115d88302e276d817f.zip | |
Uploading work on refactor
At this point, all components can build their skeletons. Next steps are to get components building their rigs.
Diffstat (limited to 'docs/build/_modules/artv2_rig_modules')
| -rw-r--r-- | docs/build/_modules/artv2_rig_modules/biped_leg_module/artv2_biped_leg_module.html | 343 | ||||
| -rw-r--r-- | docs/build/_modules/artv2_rig_modules/rig_module.html | 412 |
2 files changed, 755 insertions, 0 deletions
diff --git a/docs/build/_modules/artv2_rig_modules/biped_leg_module/artv2_biped_leg_module.html b/docs/build/_modules/artv2_rig_modules/biped_leg_module/artv2_biped_leg_module.html new file mode 100644 index 0000000..410ba9b --- /dev/null +++ b/docs/build/_modules/artv2_rig_modules/biped_leg_module/artv2_biped_leg_module.html @@ -0,0 +1,343 @@ + + +<!DOCTYPE html> +<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> +<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> +<head> + <meta charset="utf-8"> + + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <title>ARTv2</title> + + + + + + + + + + + + + + <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" /> + + + + + <link rel="index" title="Index" + href="../../../genindex.html"/> + <link rel="search" title="Search" href="../../../search.html"/> + <link rel="top" title="ARTv2 2.0.1 documentation" href="../../../index.html"/> + <link rel="up" title="Module code" href="../../index.html"/> + + + <script src="../../../_static/js/modernizr.min.js"></script> + +</head> + +<body class="wy-body-for-nav" role="document"> + + <div class="wy-grid-for-nav"> + + + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" style="background-color: #343131"> + + + <a href="http://www.jeremyernst.com"> + <img src="../../../_static/lsst-logo-dark.svg" class="logo" /> + + <span class="project-title">ARTv2</span> + </a> + + + + + </div> + + <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> + + + + <ul> +<li class="toctree-l1"><a class="reference internal" href="../../../installing.html">Installing ARTv2</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../using_rigging_tools.html">Using the Rigging Tools</a><ul class="simple"> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../../../using_anim_tools.html">Using the Animation Tools</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../technical_documentation.html">ARTv2 Technical Documentation</a><ul> +<li class="toctree-l2"><a class="reference internal" href="../../../rig_modules.html">ARTv2 Rig Modules</a><ul> +<li class="toctree-l3"><a class="reference internal" href="../../../rig_module_base.html">ARTv2 Rig Modules Base Class</a></li> +<li class="toctree-l3"><a class="reference internal" href="../../../biped_leg_module.html">ARTv2 Bipedal Leg</a></li> +</ul> +</li> +</ul> +</li> +</ul> + + + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> + + + <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../../index.html">ARTv2</a> + </nav> + + + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div class="dd-masthead"> + <h1 class="dd-title">ARTv2</h1> + <ul class="dd-authors"> + + </ul> + <p>Latest Revision: <a href="#change-record"></a></p> +</div> + <div itemprop="articleBody"> + + <h1>Source code for artv2_rig_modules.biped_leg_module.artv2_biped_leg_module</h1><div class="highlight"><pre> +<span></span><span class="c1"># -*- coding: utf-8 -*-</span> +<span class="sd">"""</span> +<span class="sd">This module contains the class for the bipedal leg rig module.</span> + +<span class="sd"># todo: list attributes and assumed min/max values</span> +<span class="sd">"""</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">artv2_rig_modules.rig_module</span> <span class="k">as</span> <span class="nn">rig_module</span> +<span class="kn">import</span> <span class="nn">artv2_utilities.error_utilities</span> <span class="k">as</span> <span class="nn">errors</span> +<span class="kn">import</span> <span class="nn">artv2_utilities.general_utilities</span> <span class="k">as</span> <span class="nn">utils</span> + + +<div class="viewcode-block" id="ART_Leg_Biped"><a class="viewcode-back" href="../../../biped_leg_module.html#artv2_rig_modules.biped_leg_module.artv2_biped_leg_module.ART_Leg_Biped">[docs]</a><span class="k">class</span> <span class="nc">ART_Leg_Biped</span><span class="p">(</span><span class="n">rig_module</span><span class="o">.</span><span class="n">ART_Component</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Class for defining a bipedal leg setup in ARTv2 with options for twist bones and toes.</span> +<span class="sd"> """</span> + + <span class="n">nice_name</span> <span class="o">=</span> <span class="s2">"Biped Leg"</span> + <span class="n">base_name</span> <span class="o">=</span> <span class="s2">"leg"</span> + <span class="n">has_sides</span> <span class="o">=</span> <span class="kc">True</span> + <span class="n">joint_mover_file</span> <span class="o">=</span> <span class="s2">"resources</span><span class="se">\\</span><span class="s2">rigging_guides</span><span class="se">\\</span><span class="s2">left_leg_biped.ma"</span> + + <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">prefix</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="n">suffix</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="n">network_node</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="nb">super</span><span class="p">(</span><span class="n">ART_Leg_Biped</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</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">network_node</span><span class="p">)</span> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="k">def</span> <span class="nf">_add_metadata</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">network_node</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="sd">"""</span> +<span class="sd"> Method for adding metadata attributes to the network node that are important for the module. For the leg</span> +<span class="sd"> module, these are things like number of toe joints and twist joints.</span> + +<span class="sd"> :param (str) network_node: module's network node name to add attributes to.</span> +<span class="sd"> :param (str) prefix: prefix for the module.</span> +<span class="sd"> :param (str) suffix: suffix for the module.</span> +<span class="sd"> """</span> + + <span class="nb">super</span><span class="p">(</span><span class="n">ART_Leg_Biped</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">_add_metadata</span><span class="p">(</span><span class="n">network_node</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">cmds</span><span class="o">.</span><span class="n">lockNode</span><span class="p">(</span><span class="n">network_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">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="n">network_node</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">"num_thigh_twists"</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">dv</span><span class="o">=</span><span class="mi">0</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="n">network_node</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">"num_calf_twists"</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">dv</span><span class="o">=</span><span class="mi">0</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="n">network_node</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">"side"</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">at</span><span class="o">=</span><span class="s2">"enum"</span><span class="p">,</span> <span class="n">enumName</span><span class="o">=</span><span class="s2">"Left:Right"</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="n">network_node</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">"has_ball_joint"</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">addAttr</span><span class="p">(</span><span class="n">network_node</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">"num_big_toes"</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">dv</span><span class="o">=</span><span class="mi">0</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="n">network_node</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">"num_index_toes"</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">dv</span><span class="o">=</span><span class="mi">0</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="n">network_node</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">"num_middle_toes"</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">dv</span><span class="o">=</span><span class="mi">0</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="n">network_node</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">"num_ring_toes"</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">dv</span><span class="o">=</span><span class="mi">0</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="n">network_node</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">"num_pinky_toes"</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">dv</span><span class="o">=</span><span class="mi">0</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">network_node</span> <span class="o">+</span> <span class="s2">".num_thigh_twists"</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">network_node</span> <span class="o">+</span> <span class="s2">".num_calf_twists"</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">network_node</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">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">network_node</span> <span class="o">+</span> <span class="s2">".has_ball_joint"</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="n">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">network_node</span> <span class="o">+</span> <span class="s2">".num_big_toes"</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">network_node</span> <span class="o">+</span> <span class="s2">".num_index_toes"</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">network_node</span> <span class="o">+</span> <span class="s2">".num_middle_toes"</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">network_node</span> <span class="o">+</span> <span class="s2">".num_ring_toes"</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">network_node</span> <span class="o">+</span> <span class="s2">".num_pinky_toes"</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="n">network_node</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"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">num_thigh_twists</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This property holds the number (int) of thigh twist joints that the module will create or has.</span> + +<span class="sd"> :return: Number of thigh twist joints the module has.</span> +<span class="sd"> :rtype: int</span> +<span class="sd"> """</span> + + <span class="k">return</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">network_node</span> <span class="o">+</span> <span class="s2">".num_thigh_twists"</span><span class="p">)</span> + + <span class="nd">@num_thigh_twists</span><span class="o">.</span><span class="n">setter</span> + <span class="k">def</span> <span class="nf">num_thigh_twists</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">new_number</span><span class="p">):</span> + <span class="k">if</span> <span class="o">-</span><span class="mi">1</span> <span class="o"><=</span> <span class="n">new_number</span> <span class="o"><=</span> <span class="mi">3</span><span class="p">:</span> + <span class="n">utils</span><span class="o">.</span><span class="n">set_attribute</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">network_node</span><span class="p">,</span> <span class="s2">"num_thigh_twists"</span><span class="p">,</span> <span class="n">new_number</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="mi">0</span><span class="p">,</span> <span class="mi">4</span><span class="p">):</span> + <span class="n">joint</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">prefix</span> <span class="o">+</span> <span class="s2">"thigh_twist_0"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">suffix</span> + <span class="n">group</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_unique_name</span> <span class="o">+</span> <span class="s2">"_thigh_twist_0"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"_mover_grp"</span> + <span class="bp">self</span><span class="o">.</span><span class="n">joint_mover</span><span class="o">.</span><span class="n">toggle_build_joint</span><span class="p">(</span><span class="n">joint</span><span class="p">,</span> <span class="n">group</span><span class="p">,</span> <span class="kc">False</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="o"><=</span> <span class="n">new_number</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">joint_mover</span><span class="o">.</span><span class="n">toggle_build_joint</span><span class="p">(</span><span class="n">joint</span><span class="p">,</span> <span class="n">group</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">errors</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Invalid number for thigh twists. Integer must be between 0 and 3."</span><span class="p">)</span> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">num_calf_twists</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This property holds the number (int) of calf twist joints that the module will create or has.</span> + +<span class="sd"> :return: Number of calf twist joints the module has.</span> +<span class="sd"> :rtype: int</span> +<span class="sd"> """</span> + + <span class="k">return</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">network_node</span> <span class="o">+</span> <span class="s2">".num_calf_twists"</span><span class="p">)</span> + + <span class="nd">@num_calf_twists</span><span class="o">.</span><span class="n">setter</span> + <span class="k">def</span> <span class="nf">num_calf_twists</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">new_number</span><span class="p">):</span> + <span class="k">if</span> <span class="o">-</span><span class="mi">1</span> <span class="o"><=</span> <span class="n">new_number</span> <span class="o"><=</span> <span class="mi">3</span><span class="p">:</span> + <span class="n">utils</span><span class="o">.</span><span class="n">set_attribute</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">network_node</span><span class="p">,</span> <span class="s2">"num_calf_twists"</span><span class="p">,</span> <span class="n">new_number</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="mi">0</span><span class="p">,</span> <span class="mi">4</span><span class="p">):</span> + <span class="n">joint</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">prefix</span> <span class="o">+</span> <span class="s2">"calf_twist_0"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">suffix</span> + <span class="n">group</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_unique_name</span> <span class="o">+</span> <span class="s2">"_calf_twist_0"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"_mover_grp"</span> + <span class="bp">self</span><span class="o">.</span><span class="n">joint_mover</span><span class="o">.</span><span class="n">toggle_build_joint</span><span class="p">(</span><span class="n">joint</span><span class="p">,</span> <span class="n">group</span><span class="p">,</span> <span class="kc">False</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="o"><=</span> <span class="n">new_number</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">joint_mover</span><span class="o">.</span><span class="n">toggle_build_joint</span><span class="p">(</span><span class="n">joint</span><span class="p">,</span> <span class="n">group</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">errors</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Invalid number for calf twists. Integer must be between 0 and 3."</span><span class="p">)</span> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">side</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This property holds the value of which side the leg module represents (left or right). As each side has a</span> +<span class="sd"> different joint mover file, changing this value will swap out the joint mover with the proper joint mover file</span> +<span class="sd"> for that side.</span> + +<span class="sd"> :return: int, 0 or 1, representing left or right side.</span> +<span class="sd"> """</span> + + <span class="k">return</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">network_node</span> <span class="o">+</span> <span class="s2">".side"</span><span class="p">)</span> + + <span class="nd">@side</span><span class="o">.</span><span class="n">setter</span> + <span class="k">def</span> <span class="nf">side</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">new_side</span><span class="p">):</span> + <span class="c1"># valid options for new side are: 0 or left or Left, and 1 or right or Right.</span> + <span class="n">sides</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"left"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">"Left"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">"right"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s2">"Right"</span><span class="p">:</span> <span class="mi">1</span><span class="p">}</span> + + <span class="k">if</span> <span class="n">new_side</span> <span class="ow">in</span> <span class="n">sides</span><span class="p">:</span> + <span class="n">side_value</span> <span class="o">=</span> <span class="n">sides</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">new_side</span><span class="p">)</span> + <span class="k">elif</span> <span class="n">new_side</span> <span class="ow">in</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="n">side_value</span> <span class="o">=</span> <span class="n">new_side</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">errors</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Invalid side given! Valid arguments are left, Left, 0, right, Right, 1"</span><span class="p">)</span> + <span class="k">return</span> + + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">network_node</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> + <span class="n">utils</span><span class="o">.</span><span class="n">set_attribute</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">network_node</span><span class="p">,</span> <span class="s2">"side"</span><span class="p">,</span> <span class="n">side_value</span><span class="p">)</span> + + <span class="c1"># todo: rebuild joint mover</span> + <span class="nb">print</span> <span class="s2">"Switch out joint mover here!"</span> + + <span class="k">else</span><span class="p">:</span> + <span class="n">errors</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"ART_Leg_Biped.side.setter: No network node found."</span><span class="p">)</span> + <span class="k">return</span> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">has_ball_joint</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + + <span class="k">return</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">network_node</span> <span class="o">+</span> <span class="s2">".has_ball_joint"</span><span class="p">)</span> + + <span class="nd">@has_ball_joint</span><span class="o">.</span><span class="n">setter</span> + <span class="k">def</span> <span class="nf">has_ball_joint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">new_value</span><span class="p">):</span> + + <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">new_value</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">bool</span><span class="p">:</span> + <span class="n">utils</span><span class="o">.</span><span class="n">set_attribute</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">network_node</span><span class="p">,</span> <span class="s2">"has_ball_joint"</span><span class="p">,</span> <span class="n">new_value</span><span class="p">)</span> + + <span class="k">else</span><span class="p">:</span> + <span class="n">errors</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"</span><span class="si">{0}</span><span class="s2"> is not a boolean value! Must be True/False"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">new_value</span><span class="p">))</span> + <span class="k">return</span></div> +</pre></div> + + </div> + </div> + <footer> + + + <hr/> + + <div role="contentinfo"> + <p> + © Copyright 2018, Jeremy Ernst. + + </p> + </div> + Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. + +</footer> + + </div> + </div> + + </section> + + </div> + + + + + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT:'../../../', + VERSION:'2.0.1', + COLLAPSE_INDEX:false, + FILE_SUFFIX:'.html', + HAS_SOURCE: true + }; + </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/language_data.js"></script> + + + + <script type="text/javascript" src="../../../_static/js/theme.js"></script> + + + + <script type="text/javascript"> + jQuery(function () { + SphinxRtdTheme.StickyNav.enable(); + }); + </script> + + +</body> +</html>
\ No newline at end of file diff --git a/docs/build/_modules/artv2_rig_modules/rig_module.html b/docs/build/_modules/artv2_rig_modules/rig_module.html new file mode 100644 index 0000000..794c37d --- /dev/null +++ b/docs/build/_modules/artv2_rig_modules/rig_module.html @@ -0,0 +1,412 @@ + + +<!DOCTYPE html> +<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> +<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> +<head> + <meta charset="utf-8"> + + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <title>ARTv2</title> + + + + + + + + + + + + + + <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> + + + + + <link rel="index" title="Index" + href="../../genindex.html"/> + <link rel="search" title="Search" href="../../search.html"/> + <link rel="top" title="ARTv2 2.0.1 documentation" href="../../index.html"/> + <link rel="up" title="Module code" href="../index.html"/> + + + <script src="../../_static/js/modernizr.min.js"></script> + +</head> + +<body class="wy-body-for-nav" role="document"> + + <div class="wy-grid-for-nav"> + + + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" style="background-color: #343131"> + + + <a href="http://www.jeremyernst.com"> + <img src="../../_static/lsst-logo-dark.svg" class="logo" /> + + <span class="project-title">ARTv2</span> + </a> + + + + + </div> + + <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> + + + + <ul> +<li class="toctree-l1"><a class="reference internal" href="../../installing.html">Installing ARTv2</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../using_rigging_tools.html">Using the Rigging Tools</a><ul class="simple"> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../../using_anim_tools.html">Using the Animation Tools</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../technical_documentation.html">ARTv2 Technical Documentation</a><ul> +<li class="toctree-l2"><a class="reference internal" href="../../rig_modules.html">ARTv2 Rig Modules</a><ul> +<li class="toctree-l3"><a class="reference internal" href="../../rig_module_base.html">ARTv2 Rig Modules Base Class</a></li> +<li class="toctree-l3"><a class="reference internal" href="../../biped_leg_module.html">ARTv2 Bipedal Leg</a></li> +</ul> +</li> +</ul> +</li> +</ul> + + + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> + + + <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">ARTv2</a> + </nav> + + + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div class="dd-masthead"> + <h1 class="dd-title">ARTv2</h1> + <ul class="dd-authors"> + + </ul> + <p>Latest Revision: <a href="#change-record"></a></p> +</div> + <div itemprop="articleBody"> + + <h1>Source code for artv2_rig_modules.rig_module</h1><div class="highlight"><pre> +<span></span><span class="c1"># -*- coding: utf-8 -*-</span> +<span class="sd">"""</span> +<span class="sd">The rig_module provides the base class, ART_Component, from which all rig modules are derived.</span> + +<span class="sd">When creating a new rig module, here is a list of common attributes and functions you will want or need to override.</span> + +<span class="sd"> +------------+------------------------+----------------------------------------------------------------------------+</span> +<span class="sd"> | Type | Name | Description |</span> +<span class="sd"> +============+========================+============================================================================+</span> +<span class="sd"> | attribute | nice_name | The string nice name of the module (as it will appear in UIs) |</span> +<span class="sd"> +------------+------------------------+----------------------------------------------------------------------------+</span> +<span class="sd"> | attribute | base_name | The string base name of the module. This is a simple string used to |</span> +<span class="sd"> | | | identify the module type and append onto nodes created by the module. |</span> +<span class="sd"> | | | For example, on a leg module, the base_name is simply: "leg" |</span> +<span class="sd"> +------------+------------------------+----------------------------------------------------------------------------+</span> +<span class="sd"> | attribute | has_sides | Boolean for whether or not the module supports different sides, like a leg |</span> +<span class="sd"> | | | or arm do. |</span> +<span class="sd"> +------------+------------------------+----------------------------------------------------------------------------+</span> +<span class="sd"> | attribute | joint_mover_file | The relative path from the ARTv2 directory to the joint mover file of the |</span> +<span class="sd"> | | | module. For example, self.joint_mover_file = |</span> +<span class="sd"> | | | "resources/rigging_guides/root.ma" |</span> +<span class="sd"> +------------+------------------------+----------------------------------------------------------------------------+</span> +<span class="sd"> | function | _add_metadata | This method adds attributes you want to keep track of that are unique to |</span> +<span class="sd"> | | | your module. Make sure that you still call on the base class's |</span> +<span class="sd"> | | | _add_metadata method to setup the required attributes. |</span> +<span class="sd"> +------------+------------------------+----------------------------------------------------------------------------+</span> + +<span class="sd">"""</span> +<span class="kn">import</span> <span class="nn">inspect</span> +<span class="kn">import</span> <span class="nn">os</span> +<span class="kn">from</span> <span class="nn">abc</span> <span class="k">import</span> <span class="n">abstractmethod</span><span class="p">,</span> <span class="n">ABCMeta</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">pymel.core</span> <span class="k">as</span> <span class="nn">pm</span> + +<span class="kn">import</span> <span class="nn">artv2_utilities.error_utilities</span> <span class="k">as</span> <span class="nn">errors</span> +<span class="kn">import</span> <span class="nn">artv2_utilities.general_utilities</span> <span class="k">as</span> <span class="nn">utils</span> +<span class="kn">import</span> <span class="nn">artv2_utilities.rig_module_utilities</span> <span class="k">as</span> <span class="nn">module_utils</span> +<span class="kn">from</span> <span class="nn">joint_mover</span> <span class="k">import</span> <span class="n">JointMover</span> + +<span class="n">reload</span><span class="p">(</span><span class="n">module_utils</span><span class="p">)</span> +<span class="n">reload</span><span class="p">(</span><span class="n">utils</span><span class="p">)</span> + + +<span class="c1"># noinspection PyPep8Naming</span> +<div class="viewcode-block" id="ART_RigModule"><a class="viewcode-back" href="../../rig_module_base.html#artv2_rig_modules.rig_module.ART_RigModule">[docs]</a><span class="k">class</span> <span class="nc">ART_Component</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Base class for defining a rig module in ARTv2. All rig modules should inherit from this class.</span> +<span class="sd"> """</span> + <span class="n">__metaclass__</span> <span class="o">=</span> <span class="n">ABCMeta</span> + + <span class="n">nice_name</span> <span class="o">=</span> <span class="s2">""</span> + <span class="n">base_name</span> <span class="o">=</span> <span class="kc">None</span> + <span class="n">has_sides</span> <span class="o">=</span> <span class="kc">False</span> + <span class="n">up</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">upAxis</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">ax</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">joint_mover_file</span> <span class="o">=</span> <span class="s2">"replace_me_with_valid_path.ma"</span> + + <span class="nd">@abstractmethod</span> + <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">prefix</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="n">suffix</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="n">network_node</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + + <span class="n">prefix</span> <span class="o">=</span> <span class="n">module_utils</span><span class="o">.</span><span class="n">validate_prefix</span><span class="p">(</span><span class="n">network_node</span><span class="p">,</span> <span class="n">prefix</span><span class="p">)</span> + <span class="n">suffix</span> <span class="o">=</span> <span class="n">module_utils</span><span class="o">.</span><span class="n">validate_suffix</span><span class="p">(</span><span class="n">network_node</span><span class="p">,</span> <span class="n">suffix</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">network_node</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_unique_name</span> <span class="o">=</span> <span class="n">prefix</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">base_name</span> <span class="o">+</span> <span class="n">suffix</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_create_component</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="bp">self</span><span class="o">.</span><span class="n">joint_mover</span> <span class="o">=</span> <span class="n">JointMover</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">joint_mover_file</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">network_node</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">joint_mover</span><span class="o">.</span><span class="n">add_joint_mover</span><span class="p">()</span> + + <span class="k">else</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">network_node</span><span class="p">):</span> + <span class="n">prefix</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">network_node</span> <span class="o">+</span> <span class="s2">".prefix"</span><span class="p">)</span> + <span class="n">suffix</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">network_node</span> <span class="o">+</span> <span class="s2">".suffix"</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_unique_name</span> <span class="o">=</span> <span class="n">prefix</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">base_name</span> <span class="o">+</span> <span class="n">suffix</span> + <span class="bp">self</span><span class="o">.</span><span class="n">joint_mover</span> <span class="o">=</span> <span class="n">JointMover</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">joint_mover_file</span><span class="p">,</span> <span class="n">network_node</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">prefix</span> + <span class="bp">self</span><span class="o">.</span><span class="n">suffix</span> <span class="o">=</span> <span class="n">suffix</span> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="k">def</span> <span class="nf">_create_component</span><span class="p">(</span><span class="bp">self</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="sd">"""</span> +<span class="sd"> Method for adding the module to the Maya scene. Calls on various functions to accomplish.</span> +<span class="sd"> """</span> + + <span class="n">character_node</span> <span class="o">=</span> <span class="n">module_utils</span><span class="o">.</span><span class="n">get_rig_asset_node</span><span class="p">()</span> + <span class="n">network_node</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_create_network_node</span><span class="p">()</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">_add_metadata</span><span class="p">(</span><span class="n">network_node</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">cmds</span><span class="o">.</span><span class="n">connectAttr</span><span class="p">(</span><span class="n">character_node</span> <span class="o">+</span> <span class="s2">".rigModules"</span><span class="p">,</span> <span class="n">network_node</span> <span class="o">+</span> <span class="s2">".asset"</span><span class="p">)</span> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="nd">@abstractmethod</span> + <span class="k">def</span> <span class="nf">_add_metadata</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">network_node</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="sd">"""</span> +<span class="sd"> Method for adding metadata attributes to the network node that are important for the module. The ones created</span> +<span class="sd"> by the base class are necessary for all modules.</span> + +<span class="sd"> :param (str) network_node: module's network node name to add attributes to.</span> +<span class="sd"> :param (str) prefix: the module's (optional) prefix.</span> +<span class="sd"> :param (str) suffix: the module's (optional) suffix.</span> +<span class="sd"> """</span> + + <span class="n">cmds</span><span class="o">.</span><span class="n">lockNode</span><span class="p">(</span><span class="n">network_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">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="n">network_node</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">"asset"</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="n">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="n">network_node</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">"modulePath"</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">module_path</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">splitext</span><span class="p">(</span><span class="n">inspect</span><span class="o">.</span><span class="n">getfile</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">)</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"artv2_source"</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">module_path</span> <span class="o">=</span> <span class="n">module_path</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">"</span><span class="se">\\</span><span class="s2">"</span><span class="p">,</span> <span class="s2">"."</span><span class="p">)</span> + <span class="n">module_path</span> <span class="o">=</span> <span class="n">module_path</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">cmds</span><span class="o">.</span><span class="n">setAttr</span><span class="p">(</span><span class="n">network_node</span> <span class="o">+</span> <span class="s2">".modulePath"</span><span class="p">,</span> <span class="n">module_path</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">addAttr</span><span class="p">(</span><span class="n">network_node</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">"className"</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="n">network_node</span> <span class="o">+</span> <span class="s2">".className"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__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="n">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="n">network_node</span><span class="p">,</span> <span class="n">ln</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="n">network_node</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">_unique_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="n">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="n">network_node</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">"baseName"</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="n">network_node</span> <span class="o">+</span> <span class="s2">".baseName"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">base_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="n">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="n">network_node</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">"prefix"</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="n">network_node</span> <span class="o">+</span> <span class="s2">".prefix"</span><span class="p">,</span> <span class="n">prefix</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">addAttr</span><span class="p">(</span><span class="n">network_node</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">"suffix"</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="n">network_node</span> <span class="o">+</span> <span class="s2">".suffix"</span><span class="p">,</span> <span class="n">suffix</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">addAttr</span><span class="p">(</span><span class="n">network_node</span><span class="p">,</span> <span class="n">ln</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="n">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="n">network_node</span><span class="p">,</span> <span class="n">ln</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="n">network_node</span><span class="p">,</span> <span class="n">ln</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="n">network_node</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="n">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="n">network_node</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">"global_movers"</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="n">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="n">network_node</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">"offset_movers"</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="n">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="n">network_node</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">"geo_movers"</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="n">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="n">network_node</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">"lra_movers"</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="n">cmds</span><span class="o">.</span><span class="n">addAttr</span><span class="p">(</span><span class="n">network_node</span><span class="p">,</span> <span class="n">ln</span><span class="o">=</span><span class="s2">"mover_grp"</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="n">cmds</span><span class="o">.</span><span class="n">lockNode</span><span class="p">(</span><span class="n">network_node</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"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="k">def</span> <span class="nf">_create_network_node</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + + <span class="n">existing_nodes</span> <span class="o">=</span> <span class="n">module_utils</span><span class="o">.</span><span class="n">return_all_components</span><span class="p">()</span> + <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">existing_nodes</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">_unique_name</span><span class="p">:</span> + <span class="n">errors</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"This module instance has already been created! Aborting."</span><span class="p">)</span> + <span class="k">return</span> + + <span class="n">network_node</span> <span class="o">=</span> <span class="n">cmds</span><span class="o">.</span><span class="n">shadingNode</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">_unique_name</span> <span class="o">+</span> <span class="s2">"_metadata"</span><span class="p">,</span> <span class="n">asUtility</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="n">network_node</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">return</span> <span class="n">network_node</span> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">parent</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This property holds the joint name of the parent of this module.</span> +<span class="sd"> """</span> + <span class="k">return</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">network_node</span> <span class="o">+</span> <span class="s2">".parentModuleBone"</span><span class="p">)</span> + + <span class="nd">@parent</span><span class="o">.</span><span class="n">setter</span> + <span class="k">def</span> <span class="nf">parent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">new_parent</span><span class="p">):</span> + <span class="n">all_joints</span> <span class="o">=</span> <span class="n">module_utils</span><span class="o">.</span><span class="n">get_all_created_joints</span><span class="p">()</span> + <span class="k">if</span> <span class="n">new_parent</span> <span class="ow">in</span> <span class="n">all_joints</span><span class="p">:</span> + <span class="n">utils</span><span class="o">.</span><span class="n">set_attribute</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">network_node</span><span class="p">,</span> <span class="s2">"parentModuleBone"</span><span class="p">,</span> <span class="n">new_parent</span><span class="p">,</span> <span class="s2">"string"</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">joint_mover</span><span class="o">.</span><span class="n">set_mover_parent</span><span class="p">(</span><span class="n">new_parent</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">errors</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Invalid parent: </span><span class="si">{0}</span><span class="s2">! No module creates such a joint."</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">new_parent</span><span class="p">))</span> + <span class="k">return</span> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">prefix</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + + <span class="k">return</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">network_node</span> <span class="o">+</span> <span class="s2">".prefix"</span><span class="p">)</span> + + <span class="nd">@prefix</span><span class="o">.</span><span class="n">setter</span> + <span class="k">def</span> <span class="nf">prefix</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">new_prefix</span><span class="p">):</span> + + <span class="n">valid_prefix</span> <span class="o">=</span> <span class="n">module_utils</span><span class="o">.</span><span class="n">validate_prefix</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">network_node</span><span class="p">,</span> <span class="n">new_prefix</span><span class="p">)</span> + <span class="k">if</span> <span class="n">valid_prefix</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">False</span><span class="p">:</span> + <span class="n">old_prefix</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">prefix</span> + <span class="n">suffix</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">suffix</span> + + <span class="n">utils</span><span class="o">.</span><span class="n">set_attribute</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">network_node</span><span class="p">,</span> <span class="s2">"prefix"</span><span class="p">,</span> <span class="n">valid_prefix</span><span class="p">,</span> <span class="s2">"string"</span><span class="p">)</span> + <span class="n">utils</span><span class="o">.</span><span class="n">set_attribute</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">network_node</span><span class="p">,</span> <span class="s2">"moduleName"</span><span class="p">,</span> <span class="n">valid_prefix</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">base_name</span> <span class="o">+</span> <span class="n">suffix</span><span class="p">,</span> <span class="s2">"string"</span><span class="p">)</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">_unique_name</span> <span class="o">=</span> <span class="n">valid_prefix</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">base_name</span> <span class="o">+</span> <span class="n">suffix</span> + <span class="n">pynode</span> <span class="o">=</span> <span class="n">pm</span><span class="o">.</span><span class="n">PyNode</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">network_node</span><span class="p">)</span> + <span class="n">utils</span><span class="o">.</span><span class="n">rename_object</span><span class="p">(</span><span class="n">pynode</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_unique_name</span> <span class="o">+</span> <span class="s2">"_metadata"</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">joint_mover</span><span class="o">.</span><span class="n">metanode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_unique_name</span> <span class="o">+</span> <span class="s2">"_metadata"</span> + <span class="bp">self</span><span class="o">.</span><span class="n">joint_mover</span><span class="o">.</span><span class="n">rename_movers</span><span class="p">(</span><span class="n">old_prefix</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"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">suffix</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + + <span class="k">return</span> <span class="n">cmds</span><span class="o">.</span><span class="n">getAttr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">network_node</span> <span class="o">+</span> <span class="s2">".suffix"</span><span class="p">)</span> + + <span class="nd">@suffix</span><span class="o">.</span><span class="n">setter</span> + <span class="k">def</span> <span class="nf">suffix</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">new_suffix</span><span class="p">):</span> + + <span class="n">valid_suffix</span> <span class="o">=</span> <span class="n">module_utils</span><span class="o">.</span><span class="n">validate_suffix</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">network_node</span><span class="p">,</span> <span class="n">new_suffix</span><span class="p">)</span> + <span class="k">if</span> <span class="n">valid_suffix</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">False</span><span class="p">:</span> + <span class="n">old_suffix</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">suffix</span> + <span class="n">prefix</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">prefix</span> + + <span class="n">utils</span><span class="o">.</span><span class="n">set_attribute</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">network_node</span><span class="p">,</span> <span class="s2">"suffix"</span><span class="p">,</span> <span class="n">valid_suffix</span><span class="p">,</span> <span class="s2">"string"</span><span class="p">)</span> + <span class="n">utils</span><span class="o">.</span><span class="n">set_attribute</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">network_node</span><span class="p">,</span> <span class="s2">"moduleName"</span><span class="p">,</span> <span class="n">prefix</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">base_name</span> <span class="o">+</span> <span class="n">valid_suffix</span><span class="p">,</span> <span class="s2">"string"</span><span class="p">)</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">_unique_name</span> <span class="o">=</span> <span class="n">prefix</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">base_name</span> <span class="o">+</span> <span class="n">valid_suffix</span> + <span class="n">pynode</span> <span class="o">=</span> <span class="n">pm</span><span class="o">.</span><span class="n">PyNode</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">network_node</span><span class="p">)</span> + <span class="n">utils</span><span class="o">.</span><span class="n">rename_object</span><span class="p">(</span><span class="n">pynode</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_unique_name</span> <span class="o">+</span> <span class="s2">"_metadata"</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">joint_mover</span><span class="o">.</span><span class="n">metanode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_unique_name</span> <span class="o">+</span> <span class="s2">"_metadata"</span> + <span class="bp">self</span><span class="o">.</span><span class="n">joint_mover</span><span class="o">.</span><span class="n">rename_movers</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="n">old_suffix</span><span class="p">)</span> + + <span class="c1"># # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #</span> + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">network_node</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This property holds the network node that contains this module's metadata.</span> +<span class="sd"> """</span> + <span class="n">return_node</span> <span class="o">=</span> <span class="kc">None</span> + + <span class="n">rig_modules</span> <span class="o">=</span> <span class="n">module_utils</span><span class="o">.</span><span class="n">return_all_components</span><span class="p">()</span> + <span class="k">for</span> <span class="n">module</span> <span class="ow">in</span> <span class="n">rig_modules</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">module</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">_unique_name</span><span class="p">:</span> + <span class="n">return_node</span> <span class="o">=</span> <span class="n">module</span> + <span class="k">break</span> + + <span class="k">if</span> <span class="n">return_node</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> + <span class="n">errors</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"ART_Component.network_node: No network node found."</span><span class="p">)</span> + <span class="k">return</span> + <span class="k">return</span> <span class="n">return_node</span></div> +</pre></div> + + </div> + </div> + <footer> + + + <hr/> + + <div role="contentinfo"> + <p> + © Copyright 2018, Jeremy Ernst. + + </p> + </div> + Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. + +</footer> + + </div> + </div> + + </section> + + </div> + + + + + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT:'../../', + VERSION:'2.0.1', + COLLAPSE_INDEX:false, + FILE_SUFFIX:'.html', + HAS_SOURCE: true + }; + </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/language_data.js"></script> + + + + <script type="text/javascript" src="../../_static/js/theme.js"></script> + + + + <script type="text/javascript"> + jQuery(function () { + SphinxRtdTheme.StickyNav.enable(); + }); + </script> + + +</body> +</html>
\ No newline at end of file |