Page MenuHomeHEPForge

pyfeyn.blobs-pysrc.html
No OneTemporary

pyfeyn.blobs-pysrc.html

<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>pyfeyn.blobs</title>
<link rel="stylesheet" href="epydoc.css" type="text/css" />
<script type="text/javascript" src="epydoc.js"></script>
</head>
<body bgcolor="white" text="black" link="blue" vlink="#204080"
alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
<tr valign="middle">
<!-- Home link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="pyfeyn-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Tree link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Index link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Help link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
<th class="navbar" width="100%"></th>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
<tr valign="top">
<td width="100%">
<span class="breadcrumbs">
<a href="pyfeyn-module.html">Package&nbsp;pyfeyn</a> ::
Module&nbsp;blobs
</span>
</td>
<td>
<table cellpadding="0" cellspacing="0">
<!-- hide/show private -->
<tr><td align="right"><span class="options">[<a href="javascript: void(0);" class="privatelink"
onclick="toggle_private();">hide private</a>]</span></td></tr>
<tr><td align="right"><span class="options"
>[<a href="frames.html" target="_top">frames</a
>]&nbsp;|&nbsp;<a href="pyfeyn.blobs-pysrc.html"
target="_top">no&nbsp;frames</a>]</span></td></tr>
</table>
</td>
</tr>
</table>
<h1 class="epydoc">Source Code for <a href="pyfeyn.blobs-module.html">Module pyfeyn.blobs</a></h1>
<pre class="py-src">
<span class="py-lineno"> 1</span> <span class="py-line"><span class="py-docstring">"""Various blob shapes to represent generic interactions."""</span> </span>
<span class="py-lineno"> 2</span> <span class="py-line"> </span>
<span class="py-lineno"> 3</span> <span class="py-line"><span class="py-keyword">from</span> <span class="py-name">pyx</span> <span class="py-keyword">import</span> <span class="py-op">*</span> </span>
<span class="py-lineno"> 4</span> <span class="py-line"><span class="py-keyword">import</span> <span class="py-name">math</span> </span>
<span class="py-lineno"> 5</span> <span class="py-line"> </span>
<span class="py-lineno"> 6</span> <span class="py-line"><span class="py-keyword">from</span> <span id="link-0" class="py-name"><a title="pyfeyn.diagrams" class="py-name" href="#" onclick="doclink('link-0', 'diagrams', 'Module pyfeyn.diagrams=pyfeyn.diagrams-module.html'); return false;">diagrams</a></span></span> <span class="py-keyword">import</span> <span id="link-1" class="py-name"><a title="pyfeyn.diagrams.FeynDiagram" class="py-name" href="#" onclick="doclink('link-1', 'FeynDiagram', 'Class pyfeyn.diagrams.FeynDiagram=pyfeyn.diagrams.FeynDiagram-class.html'); return false;">FeynDiagram</a></span></span> </span>
<span class="py-lineno"> 7</span> <span class="py-line"><span class="py-keyword">from</span> <span id="link-2" class="py-name"><a title="pyfeyn.points" class="py-name" href="#" onclick="doclink('link-2', 'points', 'Module pyfeyn.points=pyfeyn.points-module.html'); return false;">points</a></span></span> <span class="py-keyword">import</span> <span id="link-3" class="py-name"><a title="pyfeyn.points.Point" class="py-name" href="#" onclick="doclink('link-3', 'Point', 'Class pyfeyn.points.Point=pyfeyn.points.Point-class.html'); return false;">Point</a></span></span> </span>
<span class="py-lineno"> 8</span> <span class="py-line"><span class="py-keyword">from</span> <span id="link-4" class="py-name"><a title="pyfeyn.utils" class="py-name" href="#" onclick="doclink('link-4', 'utils', 'Module pyfeyn.utils=pyfeyn.utils-module.html'); return false;">utils</a></span></span> <span class="py-keyword">import</span> <span id="link-5" class="py-name"><a title="pyfeyn.utils.Visible" class="py-name" href="#" onclick="doclink('link-5', 'Visible', 'Class pyfeyn.utils.Visible=pyfeyn.utils.Visible-class.html'); return false;">Visible</a></span></span> </span>
<span class="py-lineno"> 9</span> <span class="py-line"> </span>
<span class="py-lineno"> 10</span> <span class="py-line"> </span>
<span class="py-lineno"> 11</span> <span class="py-line"><span class="py-comment">## Blob base class</span> </span>
<a name="Blob"></a><div id="Blob-def"><span class="py-lineno"> 12</span> <a class="py-toggle" href="#" id="Blob-toggle" onclick="toggle('Blob'); return false;">-</a><span class="py-line"><span class="py-comment"></span><span class="py-keyword">class</span> <a class="py-def-name" href="pyfeyn.blobs.Blob-class.html">Blob</a><span class="py-op">(</span><span class="py-base-class">Point</span><span class="py-op">,</span> <span class="py-base-class">Visible</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Blob-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Blob-expanded"><span class="py-lineno"> 13</span> <span class="py-line"> <span class="py-docstring">"Base class for all blob-like objects in Feynman diagrams"</span> </span>
<a name="Blob.__init__"></a><div id="Blob.__init__-def"><span class="py-lineno"> 14</span> <a class="py-toggle" href="#" id="Blob.__init__-toggle" onclick="toggle('Blob.__init__'); return false;">-</a><span class="py-line"> <span class="py-keyword">def</span> <a class="py-def-name" href="pyfeyn.blobs.Blob-class.html#__init__">__init__</a><span class="py-op">(</span><span class="py-param">self</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Blob.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Blob.__init__-expanded"><span class="py-lineno"> 15</span> <span class="py-line"> <span class="py-keyword">raise</span> <span class="py-name">Exception</span><span class="py-op">(</span><span class="py-string">"Blobs are an abstract base class: you can't make them!"</span><span class="py-op">)</span> </span>
</div><span class="py-lineno"> 16</span> <span class="py-line"> </span>
<a name="Blob.setStrokeStyle"></a><div id="Blob.setStrokeStyle-def"><span class="py-lineno"> 17</span> <a class="py-toggle" href="#" id="Blob.setStrokeStyle-toggle" onclick="toggle('Blob.setStrokeStyle'); return false;">-</a><span class="py-line"> <span class="py-keyword">def</span> <a class="py-def-name" href="pyfeyn.blobs.Blob-class.html#setStrokeStyle">setStrokeStyle</a><span class="py-op">(</span><span class="py-param">self</span><span class="py-op">,</span> <span class="py-param">strokestyle</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Blob.setStrokeStyle-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Blob.setStrokeStyle-expanded"><span class="py-lineno"> 18</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">strokestyles</span> <span class="py-op">=</span> <span class="py-op">[</span><span class="py-name">strokestyle</span><span class="py-op">]</span> </span>
<span class="py-lineno"> 19</span> <span class="py-line"> <span class="py-keyword">return</span> <span class="py-name">self</span> </span>
</div><span class="py-lineno"> 20</span> <span class="py-line"> </span>
<a name="Blob.clearStrokeStyles"></a><div id="Blob.clearStrokeStyles-def"><span class="py-lineno"> 21</span> <a class="py-toggle" href="#" id="Blob.clearStrokeStyles-toggle" onclick="toggle('Blob.clearStrokeStyles'); return false;">-</a><span class="py-line"> <span class="py-keyword">def</span> <a class="py-def-name" href="pyfeyn.blobs.Blob-class.html#clearStrokeStyles">clearStrokeStyles</a><span class="py-op">(</span><span class="py-param">self</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Blob.clearStrokeStyles-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Blob.clearStrokeStyles-expanded"><span class="py-lineno"> 22</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">strokestyles</span> <span class="py-op">=</span> <span class="py-op">[</span><span class="py-op">]</span> </span>
<span class="py-lineno"> 23</span> <span class="py-line"> <span class="py-keyword">return</span> <span class="py-name">self</span> </span>
</div><span class="py-lineno"> 24</span> <span class="py-line"> </span>
<a name="Blob.setFillStyle"></a><div id="Blob.setFillStyle-def"><span class="py-lineno"> 25</span> <a class="py-toggle" href="#" id="Blob.setFillStyle-toggle" onclick="toggle('Blob.setFillStyle'); return false;">-</a><span class="py-line"> <span class="py-keyword">def</span> <a class="py-def-name" href="pyfeyn.blobs.Blob-class.html#setFillStyle">setFillStyle</a><span class="py-op">(</span><span class="py-param">self</span><span class="py-op">,</span> <span class="py-param">fillstyle</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Blob.setFillStyle-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Blob.setFillStyle-expanded"><span class="py-lineno"> 26</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">fillstyles</span> <span class="py-op">=</span> <span class="py-op">[</span><span class="py-name">fillstyle</span><span class="py-op">]</span> </span>
<span class="py-lineno"> 27</span> <span class="py-line"> <span class="py-keyword">return</span> <span class="py-name">self</span> </span>
</div><span class="py-lineno"> 28</span> <span class="py-line"> </span>
<a name="Blob.clearFillStyles"></a><div id="Blob.clearFillStyles-def"><span class="py-lineno"> 29</span> <a class="py-toggle" href="#" id="Blob.clearFillStyles-toggle" onclick="toggle('Blob.clearFillStyles'); return false;">-</a><span class="py-line"> <span class="py-keyword">def</span> <a class="py-def-name" href="pyfeyn.blobs.Blob-class.html#clearFillStyles">clearFillStyles</a><span class="py-op">(</span><span class="py-param">self</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Blob.clearFillStyles-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Blob.clearFillStyles-expanded"><span class="py-lineno"> 30</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">fillstyles</span> <span class="py-op">=</span> <span class="py-op">[</span><span class="py-op">]</span> </span>
<span class="py-lineno"> 31</span> <span class="py-line"> <span class="py-keyword">return</span> <span class="py-name">self</span> </span>
</div><span class="py-lineno"> 32</span> <span class="py-line"> </span>
<a name="Blob.addTrafo"></a><div id="Blob.addTrafo-def"><span class="py-lineno"> 33</span> <a class="py-toggle" href="#" id="Blob.addTrafo-toggle" onclick="toggle('Blob.addTrafo'); return false;">-</a><span class="py-line"> <span class="py-keyword">def</span> <a class="py-def-name" href="pyfeyn.blobs.Blob-class.html#addTrafo">addTrafo</a><span class="py-op">(</span><span class="py-param">self</span><span class="py-op">,</span> <span class="py-param">trafo</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Blob.addTrafo-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Blob.addTrafo-expanded"><span class="py-lineno"> 34</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">trafos</span><span class="py-op">.</span><span class="py-name">append</span><span class="py-op">(</span><span class="py-name">trafo</span><span class="py-op">)</span> </span>
<span class="py-lineno"> 35</span> <span class="py-line"> <span class="py-keyword">return</span> <span class="py-name">self</span> </span>
</div><span class="py-lineno"> 36</span> <span class="py-line"> </span>
<a name="Blob.clearTrafos"></a><div id="Blob.clearTrafos-def"><span class="py-lineno"> 37</span> <a class="py-toggle" href="#" id="Blob.clearTrafos-toggle" onclick="toggle('Blob.clearTrafos'); return false;">-</a><span class="py-line"> <span class="py-keyword">def</span> <a class="py-def-name" href="pyfeyn.blobs.Blob-class.html#clearTrafos">clearTrafos</a><span class="py-op">(</span><span class="py-param">self</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Blob.clearTrafos-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Blob.clearTrafos-expanded"><span class="py-lineno"> 38</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">trafos</span> <span class="py-op">=</span> <span class="py-op">[</span><span class="py-op">]</span> </span>
<span class="py-lineno"> 39</span> <span class="py-line"> <span class="py-keyword">return</span> <span class="py-name">self</span> </span>
</div><span class="py-lineno"> 40</span> <span class="py-line"> </span>
<a name="Blob.setPoints"></a><div id="Blob.setPoints-def"><span class="py-lineno"> 41</span> <a class="py-toggle" href="#" id="Blob.setPoints-toggle" onclick="toggle('Blob.setPoints'); return false;">-</a><span class="py-line"> <span class="py-keyword">def</span> <a class="py-def-name" href="pyfeyn.blobs.Blob-class.html#setPoints">setPoints</a><span class="py-op">(</span><span class="py-param">self</span><span class="py-op">,</span> <span class="py-param">points</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Blob.setPoints-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Blob.setPoints-expanded"><span class="py-lineno"> 42</span> <span class="py-line"> <span class="py-keyword">if</span> <span id="link-6" class="py-name"><a title="pyfeyn.points" class="py-name" href="#" onclick="doclink('link-6', 'points', 'Module pyfeyn.points=pyfeyn.points-module.html'); return false;">points</a></span></span><span class="py-op">:</span> </span>
<span class="py-lineno"> 43</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span id="link-7" class="py-name"><a title="pyfeyn.points" class="py-name" href="#" onclick="doclink('link-7', 'points', 'Module pyfeyn.points=pyfeyn.points-module.html'); return false;">points</a></span></span> <span class="py-op">=</span> <span id="link-8" class="py-name"><a title="pyfeyn.points" class="py-name" href="#" onclick="doclink('link-8', 'points', 'Module pyfeyn.points=pyfeyn.points-module.html'); return false;">points</a></span></span> </span>
<span class="py-lineno"> 44</span> <span class="py-line"> <span class="py-keyword">for</span> <span class="py-name">p</span> <span class="py-keyword">in</span> <span class="py-name">self</span><span class="py-op">.</span><span id="link-9" class="py-name"><a title="pyfeyn.points" class="py-name" href="#" onclick="doclink('link-9', 'points', 'Module pyfeyn.points=pyfeyn.points-module.html'); return false;">points</a></span></span><span class="py-op">:</span> </span>
<span class="py-lineno"> 45</span> <span class="py-line"> <span class="py-name">p</span><span class="py-op">.</span><span class="py-name">blob</span> <span class="py-op">=</span> <span class="py-name">self</span> </span>
<span class="py-lineno"> 46</span> <span class="py-line"> <span class="py-keyword">else</span><span class="py-op">:</span> </span>
<span class="py-lineno"> 47</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span id="link-10" class="py-name"><a title="pyfeyn.points" class="py-name" href="#" onclick="doclink('link-10', 'points', 'Module pyfeyn.points=pyfeyn.points-module.html'); return false;">points</a></span></span> <span class="py-op">=</span> <span class="py-op">[</span><span class="py-op">]</span> </span>
</div></div><span class="py-lineno"> 48</span> <span class="py-line"> </span>
<span class="py-lineno"> 49</span> <span class="py-line"> </span>
<span class="py-lineno"> 50</span> <span class="py-line"> </span>
<span class="py-lineno"> 51</span> <span class="py-line"> </span>
<span class="py-lineno"> 52</span> <span class="py-line"><span class="py-comment">## Circle class (a kind of Blob)</span> </span>
<a name="Circle"></a><div id="Circle-def"><span class="py-lineno"> 53</span> <a class="py-toggle" href="#" id="Circle-toggle" onclick="toggle('Circle'); return false;">-</a><span class="py-line"><span class="py-comment"></span><span class="py-keyword">class</span> <a class="py-def-name" href="pyfeyn.blobs.Circle-class.html">Circle</a><span class="py-op">(</span><span class="py-base-class">Blob</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Circle-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Circle-expanded"><span class="py-lineno"> 54</span> <span class="py-line"> <span class="py-docstring">"A circular blob"</span> </span>
<span class="py-lineno"> 55</span> <span class="py-line"> <span id="link-11" class="py-name"><a title="pyfeyn.blobs.Circle.blobshape
pyfeyn.blobs.Ellipse.blobshape" class="py-name" href="#" onclick="doclink('link-11', 'blobshape', 'Variable pyfeyn.blobs.Circle.blobshape=pyfeyn.blobs.Circle-class.html#blobshape,Variable pyfeyn.blobs.Ellipse.blobshape=pyfeyn.blobs.Ellipse-class.html#blobshape'); return false;">blobshape</a></span></span> <span class="py-op">=</span> <span class="py-string">"circle"</span> </span>
<span class="py-lineno"> 56</span> <span class="py-line"> </span>
<a name="Circle.__init__"></a><div id="Circle.__init__-def"><span class="py-lineno"> 57</span> <a class="py-toggle" href="#" id="Circle.__init__-toggle" onclick="toggle('Circle.__init__'); return false;">-</a><span class="py-line"> <span class="py-keyword">def</span> <a class="py-def-name" href="pyfeyn.blobs.Circle-class.html#__init__">__init__</a><span class="py-op">(</span><span class="py-param">self</span><span class="py-op">,</span> </span>
<span class="py-lineno"> 58</span> <span class="py-line"> <span class="py-param">x</span> <span class="py-op">=</span> <span class="py-name">None</span><span class="py-op">,</span> <span class="py-param">y</span> <span class="py-op">=</span> <span class="py-name">None</span><span class="py-op">,</span> </span>
<span class="py-lineno"> 59</span> <span class="py-line"> <span class="py-param">center</span> <span class="py-op">=</span> <span class="py-name">None</span><span class="py-op">,</span> </span>
<span class="py-lineno"> 60</span> <span class="py-line"> <span class="py-param">radius</span> <span class="py-op">=</span> <span class="py-name">None</span><span class="py-op">,</span> </span>
<span class="py-lineno"> 61</span> <span class="py-line"> <span class="py-param">fill</span> <span class="py-op">=</span> <span class="py-op">[</span><span class="py-name">color</span><span class="py-op">.</span><span class="py-name">rgb</span><span class="py-op">.</span><span class="py-name">white</span><span class="py-op">]</span><span class="py-op">,</span> </span>
<span class="py-lineno"> 62</span> <span class="py-line"> <span class="py-param">stroke</span> <span class="py-op">=</span> <span class="py-op">[</span><span class="py-name">color</span><span class="py-op">.</span><span class="py-name">rgb</span><span class="py-op">.</span><span class="py-name">black</span><span class="py-op">]</span><span class="py-op">,</span> </span>
<span class="py-lineno"> 63</span> <span class="py-line"> <span class="py-param">points</span> <span class="py-op">=</span> <span class="py-name">None</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Circle.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Circle.__init__-expanded"><span class="py-lineno"> 64</span> <span class="py-line"> <span class="py-keyword">if</span> <span class="py-name">radius</span><span class="py-op">:</span> </span>
<span class="py-lineno"> 65</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">radius</span> <span class="py-op">=</span> <span class="py-name">float</span><span class="py-op">(</span><span class="py-name">radius</span><span class="py-op">)</span> </span>
<span class="py-lineno"> 66</span> <span class="py-line"> <span class="py-keyword">else</span><span class="py-op">:</span> </span>
<span class="py-lineno"> 67</span> <span class="py-line"> <span class="py-keyword">raise</span> <span class="py-name">Exception</span><span class="py-op">(</span><span class="py-string">"No (or zero) radius specified for blob."</span><span class="py-op">)</span> </span>
<span class="py-lineno"> 68</span> <span class="py-line"> </span>
<span class="py-lineno"> 69</span> <span class="py-line"> <span class="py-keyword">if</span> <span id="link-12" class="py-name"><a title="pyfeyn.points.Point.x" class="py-name" href="#" onclick="doclink('link-12', 'x', 'Method pyfeyn.points.Point.x()=pyfeyn.points.Point-class.html#x'); return false;">x</a></span></span> <span class="py-op">!=</span> <span class="py-name">None</span> <span class="py-keyword">and</span> <span id="link-13" class="py-name"><a title="pyfeyn.points.Point.y" class="py-name" href="#" onclick="doclink('link-13', 'y', 'Method pyfeyn.points.Point.y()=pyfeyn.points.Point-class.html#y'); return false;">y</a></span></span> <span class="py-op">!=</span> <span class="py-name">None</span><span class="py-op">:</span> </span>
<span class="py-lineno"> 70</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span id="link-14" class="py-name"><a title="pyfeyn.points.Point.setXY" class="py-name" href="#" onclick="doclink('link-14', 'setXY', 'Method pyfeyn.points.Point.setXY()=pyfeyn.points.Point-class.html#setXY'); return false;">setXY</a></span></span><span class="py-op">(</span><span id="link-15" class="py-name"><a title="pyfeyn.points.Point.x" class="py-name" href="#" onclick="doclink('link-15', 'x', 'Method pyfeyn.points.Point.x()=pyfeyn.points.Point-class.html#x'); return false;">x</a></span></span><span class="py-op">,</span> <span id="link-16" class="py-name"><a title="pyfeyn.points.Point.y" class="py-name" href="#" onclick="doclink('link-16', 'y', 'Method pyfeyn.points.Point.y()=pyfeyn.points.Point-class.html#y'); return false;">y</a></span></span><span class="py-op">)</span> </span>
<span class="py-lineno"> 71</span> <span class="py-line"> <span class="py-keyword">elif</span> <span class="py-name">center</span> <span class="py-op">!=</span> <span class="py-name">None</span><span class="py-op">:</span> </span>
<span class="py-lineno"> 72</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span id="link-17" class="py-name"><a title="pyfeyn.points.Point.setXY" class="py-name" href="#" onclick="doclink('link-17', 'setXY', 'Method pyfeyn.points.Point.setXY()=pyfeyn.points.Point-class.html#setXY'); return false;">setXY</a></span></span><span class="py-op">(</span><span class="py-name">center</span><span class="py-op">.</span><span id="link-18" class="py-name"><a title="pyfeyn.points.Point.getX" class="py-name" href="#" onclick="doclink('link-18', 'getX', 'Method pyfeyn.points.Point.getX()=pyfeyn.points.Point-class.html#getX'); return false;">getX</a></span></span><span class="py-op">(</span><span class="py-op">)</span><span class="py-op">,</span> <span class="py-name">center</span><span class="py-op">.</span><span id="link-19" class="py-name"><a title="pyfeyn.points.Point.getY" class="py-name" href="#" onclick="doclink('link-19', 'getY', 'Method pyfeyn.points.Point.getY()=pyfeyn.points.Point-class.html#getY'); return false;">getY</a></span></span><span class="py-op">(</span><span class="py-op">)</span><span class="py-op">)</span> </span>
<span class="py-lineno"> 73</span> <span class="py-line"> <span class="py-keyword">else</span><span class="py-op">:</span> </span>
<span class="py-lineno"> 74</span> <span class="py-line"> <span class="py-keyword">raise</span> <span class="py-name">Exception</span><span class="py-op">(</span><span class="py-string">"No center specified for blob."</span><span class="py-op">)</span> </span>
<span class="py-lineno"> 75</span> <span class="py-line"> </span>
<span class="py-lineno"> 76</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span id="link-20" class="py-name"><a title="pyfeyn.blobs.Blob.setPoints" class="py-name" href="#" onclick="doclink('link-20', 'setPoints', 'Method pyfeyn.blobs.Blob.setPoints()=pyfeyn.blobs.Blob-class.html#setPoints'); return false;">setPoints</a></span></span><span class="py-op">(</span><span id="link-21" class="py-name"><a title="pyfeyn.points" class="py-name" href="#" onclick="doclink('link-21', 'points', 'Module pyfeyn.points=pyfeyn.points-module.html'); return false;">points</a></span></span><span class="py-op">)</span> </span>
<span class="py-lineno"> 77</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">fillstyles</span> <span class="py-op">=</span> <span class="py-name">fill</span> </span>
<span class="py-lineno"> 78</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">strokestyles</span> <span class="py-op">=</span> <span class="py-name">stroke</span> </span>
<span class="py-lineno"> 79</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">trafos</span> <span class="py-op">=</span> <span class="py-op">[</span><span class="py-op">]</span> </span>
<span class="py-lineno"> 80</span> <span class="py-line"> <span class="py-comment">## Add this to the current diagram automatically</span> </span>
<span class="py-lineno"> 81</span> <span class="py-line"><span class="py-comment"></span> <span id="link-22" class="py-name"><a title="pyfeyn.diagrams.FeynDiagram" class="py-name" href="#" onclick="doclink('link-22', 'FeynDiagram', 'Class pyfeyn.diagrams.FeynDiagram=pyfeyn.diagrams.FeynDiagram-class.html'); return false;">FeynDiagram</a></span></span><span class="py-op">.</span><span id="link-23" class="py-name"><a title="pyfeyn.diagrams.FeynDiagram.currentDiagram" class="py-name" href="#" onclick="doclink('link-23', 'currentDiagram', 'Variable pyfeyn.diagrams.FeynDiagram.currentDiagram=pyfeyn.diagrams.FeynDiagram-class.html#currentDiagram'); return false;">currentDiagram</a></span></span><span class="py-op">.</span><span id="link-24" class="py-name"><a title="pyfeyn.diagrams.FeynDiagram.add" class="py-name" href="#" onclick="doclink('link-24', 'add', 'Method pyfeyn.diagrams.FeynDiagram.add()=pyfeyn.diagrams.FeynDiagram-class.html#add'); return false;">add</a></span></span><span class="py-op">(</span><span class="py-name">self</span><span class="py-op">)</span> </span>
</div><span class="py-lineno"> 82</span> <span class="py-line"> </span>
<a name="Circle.getPath"></a><div id="Circle.getPath-def"><span class="py-lineno"> 83</span> <a class="py-toggle" href="#" id="Circle.getPath-toggle" onclick="toggle('Circle.getPath'); return false;">-</a><span class="py-line"> <span class="py-keyword">def</span> <a class="py-def-name" href="pyfeyn.blobs.Circle-class.html#getPath">getPath</a><span class="py-op">(</span><span class="py-param">self</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Circle.getPath-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Circle.getPath-expanded"><span class="py-lineno"> 84</span> <span class="py-line"> <span class="py-keyword">return</span> <span class="py-name">path</span><span class="py-op">.</span><span class="py-name">circle</span><span class="py-op">(</span><span class="py-name">self</span><span class="py-op">.</span><span id="link-25" class="py-name"><a title="pyfeyn.points.Point.getX" class="py-name" href="#" onclick="doclink('link-25', 'getX', 'Method pyfeyn.points.Point.getX()=pyfeyn.points.Point-class.html#getX'); return false;">getX</a></span></span><span class="py-op">(</span><span class="py-op">)</span><span class="py-op">,</span> <span class="py-name">self</span><span class="py-op">.</span><span id="link-26" class="py-name"><a title="pyfeyn.points.Point.getY" class="py-name" href="#" onclick="doclink('link-26', 'getY', 'Method pyfeyn.points.Point.getY()=pyfeyn.points.Point-class.html#getY'); return false;">getY</a></span></span><span class="py-op">(</span><span class="py-op">)</span><span class="py-op">,</span> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">radius</span><span class="py-op">)</span> </span>
</div><span class="py-lineno"> 85</span> <span class="py-line"> </span>
<a name="Circle.draw"></a><div id="Circle.draw-def"><span class="py-lineno"> 86</span> <a class="py-toggle" href="#" id="Circle.draw-toggle" onclick="toggle('Circle.draw'); return false;">-</a><span class="py-line"> <span class="py-keyword">def</span> <a class="py-def-name" href="pyfeyn.blobs.Circle-class.html#draw">draw</a><span class="py-op">(</span><span class="py-param">self</span><span class="py-op">,</span> <span class="py-param">canvas</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Circle.draw-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Circle.draw-expanded"><span class="py-lineno"> 87</span> <span class="py-line"> <span class="py-name">canvas</span><span class="py-op">.</span><span class="py-name">fill</span><span class="py-op">(</span><span class="py-name">self</span><span class="py-op">.</span><span id="link-27" class="py-name"><a title="pyfeyn.blobs.Circle.getPath
pyfeyn.blobs.Ellipse.getPath
pyfeyn.lines.Line.getPath
pyfeyn.points.DecoratedPoint.getPath
pyfeyn.points.Point.getPath
pyfeyn.utils.Visible.getPath" class="py-name" href="#" onclick="doclink('link-27', 'getPath', 'Method pyfeyn.blobs.Circle.getPath()=pyfeyn.blobs.Circle-class.html#getPath,Method pyfeyn.blobs.Ellipse.getPath()=pyfeyn.blobs.Ellipse-class.html#getPath,Method pyfeyn.lines.Line.getPath()=pyfeyn.lines.Line-class.html#getPath,Method pyfeyn.points.DecoratedPoint.getPath()=pyfeyn.points.DecoratedPoint-class.html#getPath,Method pyfeyn.points.Point.getPath()=pyfeyn.points.Point-class.html#getPath,Method pyfeyn.utils.Visible.getPath()=pyfeyn.utils.Visible-class.html#getPath'); return false;">getPath</a></span></span><span class="py-op">(</span><span class="py-op">)</span><span class="py-op">,</span> <span class="py-op">[</span><span class="py-name">color</span><span class="py-op">.</span><span class="py-name">rgb</span><span class="py-op">.</span><span class="py-name">white</span><span class="py-op">]</span><span class="py-op">)</span> </span>
<span class="py-lineno"> 88</span> <span class="py-line"> <span class="py-name">canvas</span><span class="py-op">.</span><span class="py-name">fill</span><span class="py-op">(</span><span class="py-name">self</span><span class="py-op">.</span><span id="link-28" class="py-name"><a title="pyfeyn.blobs.Circle.getPath
pyfeyn.blobs.Ellipse.getPath
pyfeyn.lines.Line.getPath
pyfeyn.points.DecoratedPoint.getPath
pyfeyn.points.Point.getPath
pyfeyn.utils.Visible.getPath" class="py-name" href="#" onclick="doclink('link-28', 'getPath', 'Method pyfeyn.blobs.Circle.getPath()=pyfeyn.blobs.Circle-class.html#getPath,Method pyfeyn.blobs.Ellipse.getPath()=pyfeyn.blobs.Ellipse-class.html#getPath,Method pyfeyn.lines.Line.getPath()=pyfeyn.lines.Line-class.html#getPath,Method pyfeyn.points.DecoratedPoint.getPath()=pyfeyn.points.DecoratedPoint-class.html#getPath,Method pyfeyn.points.Point.getPath()=pyfeyn.points.Point-class.html#getPath,Method pyfeyn.utils.Visible.getPath()=pyfeyn.utils.Visible-class.html#getPath'); return false;">getPath</a></span></span><span class="py-op">(</span><span class="py-op">)</span><span class="py-op">,</span> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">fillstyles</span><span class="py-op">)</span> </span>
<span class="py-lineno"> 89</span> <span class="py-line"> <span class="py-name">canvas</span><span class="py-op">.</span><span class="py-name">stroke</span><span class="py-op">(</span><span class="py-name">self</span><span class="py-op">.</span><span id="link-29" class="py-name"><a title="pyfeyn.blobs.Circle.getPath
pyfeyn.blobs.Ellipse.getPath
pyfeyn.lines.Line.getPath
pyfeyn.points.DecoratedPoint.getPath
pyfeyn.points.Point.getPath
pyfeyn.utils.Visible.getPath" class="py-name" href="#" onclick="doclink('link-29', 'getPath', 'Method pyfeyn.blobs.Circle.getPath()=pyfeyn.blobs.Circle-class.html#getPath,Method pyfeyn.blobs.Ellipse.getPath()=pyfeyn.blobs.Ellipse-class.html#getPath,Method pyfeyn.lines.Line.getPath()=pyfeyn.lines.Line-class.html#getPath,Method pyfeyn.points.DecoratedPoint.getPath()=pyfeyn.points.DecoratedPoint-class.html#getPath,Method pyfeyn.points.Point.getPath()=pyfeyn.points.Point-class.html#getPath,Method pyfeyn.utils.Visible.getPath()=pyfeyn.utils.Visible-class.html#getPath'); return false;">getPath</a></span></span><span class="py-op">(</span><span class="py-op">)</span><span class="py-op">,</span> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">strokestyles</span><span class="py-op">)</span> </span>
</div></div><span class="py-lineno"> 90</span> <span class="py-line"> </span>
<span class="py-lineno"> 91</span> <span class="py-line"> </span>
<span class="py-lineno"> 92</span> <span class="py-line"><span class="py-comment">## Ellipse class (a kind of Blob)</span> </span>
<a name="Ellipse"></a><div id="Ellipse-def"><span class="py-lineno"> 93</span> <a class="py-toggle" href="#" id="Ellipse-toggle" onclick="toggle('Ellipse'); return false;">-</a><span class="py-line"><span class="py-comment"></span><span class="py-keyword">class</span> <a class="py-def-name" href="pyfeyn.blobs.Ellipse-class.html">Ellipse</a><span class="py-op">(</span><span class="py-base-class">Blob</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Ellipse-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Ellipse-expanded"><span class="py-lineno"> 94</span> <span class="py-line"> <span class="py-docstring">"An elliptical blob"</span> </span>
<span class="py-lineno"> 95</span> <span class="py-line"> <span id="link-30" class="py-name"><a title="pyfeyn.blobs.Circle.blobshape
pyfeyn.blobs.Ellipse.blobshape" class="py-name" href="#" onclick="doclink('link-30', 'blobshape', 'Variable pyfeyn.blobs.Circle.blobshape=pyfeyn.blobs.Circle-class.html#blobshape,Variable pyfeyn.blobs.Ellipse.blobshape=pyfeyn.blobs.Ellipse-class.html#blobshape'); return false;">blobshape</a></span></span> <span class="py-op">=</span> <span class="py-string">"ellipse"</span> </span>
<span class="py-lineno"> 96</span> <span class="py-line"> </span>
<a name="Ellipse.__init__"></a><div id="Ellipse.__init__-def"><span class="py-lineno"> 97</span> <a class="py-toggle" href="#" id="Ellipse.__init__-toggle" onclick="toggle('Ellipse.__init__'); return false;">-</a><span class="py-line"> <span class="py-keyword">def</span> <a class="py-def-name" href="pyfeyn.blobs.Ellipse-class.html#__init__">__init__</a><span class="py-op">(</span><span class="py-param">self</span><span class="py-op">,</span> </span>
<span class="py-lineno"> 98</span> <span class="py-line"> <span class="py-param">x</span> <span class="py-op">=</span> <span class="py-name">None</span><span class="py-op">,</span> <span class="py-param">y</span> <span class="py-op">=</span> <span class="py-name">None</span><span class="py-op">,</span> </span>
<span class="py-lineno"> 99</span> <span class="py-line"> <span class="py-param">center</span> <span class="py-op">=</span> <span class="py-name">None</span><span class="py-op">,</span> </span>
<span class="py-lineno">100</span> <span class="py-line"> <span class="py-param">xradius</span> <span class="py-op">=</span> <span class="py-name">None</span><span class="py-op">,</span> <span class="py-param">yradius</span> <span class="py-op">=</span> <span class="py-name">None</span><span class="py-op">,</span> </span>
<span class="py-lineno">101</span> <span class="py-line"> <span class="py-param">fill</span> <span class="py-op">=</span> <span class="py-op">[</span><span class="py-name">color</span><span class="py-op">.</span><span class="py-name">rgb</span><span class="py-op">.</span><span class="py-name">white</span><span class="py-op">]</span><span class="py-op">,</span> </span>
<span class="py-lineno">102</span> <span class="py-line"> <span class="py-param">stroke</span> <span class="py-op">=</span> <span class="py-op">[</span><span class="py-name">color</span><span class="py-op">.</span><span class="py-name">rgb</span><span class="py-op">.</span><span class="py-name">black</span><span class="py-op">]</span><span class="py-op">,</span> </span>
<span class="py-lineno">103</span> <span class="py-line"> <span class="py-param">points</span> <span class="py-op">=</span> <span class="py-name">None</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Ellipse.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Ellipse.__init__-expanded"><span class="py-lineno">104</span> <span class="py-line"> </span>
<span class="py-lineno">105</span> <span class="py-line"> <span class="py-keyword">if</span> <span id="link-31" class="py-name"><a title="pyfeyn.points.Point.x" class="py-name" href="#" onclick="doclink('link-31', 'x', 'Method pyfeyn.points.Point.x()=pyfeyn.points.Point-class.html#x'); return false;">x</a></span></span> <span class="py-op">!=</span> <span class="py-name">None</span> <span class="py-keyword">and</span> <span id="link-32" class="py-name"><a title="pyfeyn.points.Point.y" class="py-name" href="#" onclick="doclink('link-32', 'y', 'Method pyfeyn.points.Point.y()=pyfeyn.points.Point-class.html#y'); return false;">y</a></span></span> <span class="py-op">!=</span> <span class="py-name">None</span><span class="py-op">:</span> </span>
<span class="py-lineno">106</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span id="link-33" class="py-name"><a title="pyfeyn.points.Point.setXY" class="py-name" href="#" onclick="doclink('link-33', 'setXY', 'Method pyfeyn.points.Point.setXY()=pyfeyn.points.Point-class.html#setXY'); return false;">setXY</a></span></span><span class="py-op">(</span><span id="link-34" class="py-name"><a title="pyfeyn.points.Point.x" class="py-name" href="#" onclick="doclink('link-34', 'x', 'Method pyfeyn.points.Point.x()=pyfeyn.points.Point-class.html#x'); return false;">x</a></span></span><span class="py-op">,</span> <span id="link-35" class="py-name"><a title="pyfeyn.points.Point.y" class="py-name" href="#" onclick="doclink('link-35', 'y', 'Method pyfeyn.points.Point.y()=pyfeyn.points.Point-class.html#y'); return false;">y</a></span></span><span class="py-op">)</span> </span>
<span class="py-lineno">107</span> <span class="py-line"> <span class="py-keyword">elif</span> <span class="py-name">center</span> <span class="py-op">!=</span> <span class="py-name">None</span><span class="py-op">:</span> </span>
<span class="py-lineno">108</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span id="link-36" class="py-name"><a title="pyfeyn.points.Point.setXY" class="py-name" href="#" onclick="doclink('link-36', 'setXY', 'Method pyfeyn.points.Point.setXY()=pyfeyn.points.Point-class.html#setXY'); return false;">setXY</a></span></span><span class="py-op">(</span><span class="py-name">center</span><span class="py-op">.</span><span id="link-37" class="py-name"><a title="pyfeyn.points.Point.getX" class="py-name" href="#" onclick="doclink('link-37', 'getX', 'Method pyfeyn.points.Point.getX()=pyfeyn.points.Point-class.html#getX'); return false;">getX</a></span></span><span class="py-op">(</span><span class="py-op">)</span><span class="py-op">,</span> <span class="py-name">center</span><span class="py-op">.</span><span id="link-38" class="py-name"><a title="pyfeyn.points.Point.getY" class="py-name" href="#" onclick="doclink('link-38', 'getY', 'Method pyfeyn.points.Point.getY()=pyfeyn.points.Point-class.html#getY'); return false;">getY</a></span></span><span class="py-op">(</span><span class="py-op">)</span><span class="py-op">)</span> </span>
<span class="py-lineno">109</span> <span class="py-line"> <span class="py-keyword">else</span><span class="py-op">:</span> </span>
<span class="py-lineno">110</span> <span class="py-line"> <span class="py-keyword">raise</span> <span class="py-name">Exception</span><span class="py-op">(</span><span class="py-string">"No center specified for blob."</span><span class="py-op">)</span> </span>
<span class="py-lineno">111</span> <span class="py-line"> </span>
<span class="py-lineno">112</span> <span class="py-line"> <span class="py-keyword">if</span> <span class="py-name">xradius</span><span class="py-op">:</span> </span>
<span class="py-lineno">113</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span id="link-39" class="py-name"><a title="pyfeyn.blobs.Ellipse.setXRadius" class="py-name" href="#" onclick="doclink('link-39', 'setXRadius', 'Method pyfeyn.blobs.Ellipse.setXRadius()=pyfeyn.blobs.Ellipse-class.html#setXRadius'); return false;">setXRadius</a></span></span><span class="py-op">(</span><span class="py-name">xradius</span><span class="py-op">)</span> </span>
<span class="py-lineno">114</span> <span class="py-line"> <span class="py-keyword">elif</span> <span class="py-name">yradius</span><span class="py-op">:</span> </span>
<span class="py-lineno">115</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span id="link-40" class="py-name"><a title="pyfeyn.blobs.Ellipse.setXRadius" class="py-name" href="#" onclick="doclink('link-40', 'setXRadius', 'Method pyfeyn.blobs.Ellipse.setXRadius()=pyfeyn.blobs.Ellipse-class.html#setXRadius'); return false;">setXRadius</a></span></span><span class="py-op">(</span><span class="py-name">yradius</span><span class="py-op">)</span> </span>
<span class="py-lineno">116</span> <span class="py-line"> <span class="py-keyword">else</span><span class="py-op">:</span> </span>
<span class="py-lineno">117</span> <span class="py-line"> <span class="py-keyword">raise</span> <span class="py-name">Exception</span><span class="py-op">(</span><span class="py-string">"No viable candidate for x-radius"</span><span class="py-op">)</span> </span>
<span class="py-lineno">118</span> <span class="py-line"> </span>
<span class="py-lineno">119</span> <span class="py-line"> <span class="py-keyword">if</span> <span class="py-name">yradius</span><span class="py-op">:</span> </span>
<span class="py-lineno">120</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span id="link-41" class="py-name"><a title="pyfeyn.blobs.Ellipse.setYRadius" class="py-name" href="#" onclick="doclink('link-41', 'setYRadius', 'Method pyfeyn.blobs.Ellipse.setYRadius()=pyfeyn.blobs.Ellipse-class.html#setYRadius'); return false;">setYRadius</a></span></span><span class="py-op">(</span><span class="py-name">yradius</span><span class="py-op">)</span> </span>
<span class="py-lineno">121</span> <span class="py-line"> <span class="py-keyword">elif</span> <span class="py-name">xradius</span><span class="py-op">:</span> </span>
<span class="py-lineno">122</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span id="link-42" class="py-name"><a title="pyfeyn.blobs.Ellipse.setYRadius" class="py-name" href="#" onclick="doclink('link-42', 'setYRadius', 'Method pyfeyn.blobs.Ellipse.setYRadius()=pyfeyn.blobs.Ellipse-class.html#setYRadius'); return false;">setYRadius</a></span></span><span class="py-op">(</span><span class="py-name">xradius</span><span class="py-op">)</span> </span>
<span class="py-lineno">123</span> <span class="py-line"> <span class="py-keyword">else</span><span class="py-op">:</span> </span>
<span class="py-lineno">124</span> <span class="py-line"> <span class="py-keyword">raise</span> <span class="py-name">Exception</span><span class="py-op">(</span><span class="py-string">"No viable candidate for y-radius"</span><span class="py-op">)</span> </span>
<span class="py-lineno">125</span> <span class="py-line"> </span>
<span class="py-lineno">126</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span id="link-43" class="py-name"><a title="pyfeyn.blobs.Blob.setPoints" class="py-name" href="#" onclick="doclink('link-43', 'setPoints', 'Method pyfeyn.blobs.Blob.setPoints()=pyfeyn.blobs.Blob-class.html#setPoints'); return false;">setPoints</a></span></span><span class="py-op">(</span><span id="link-44" class="py-name"><a title="pyfeyn.points" class="py-name" href="#" onclick="doclink('link-44', 'points', 'Module pyfeyn.points=pyfeyn.points-module.html'); return false;">points</a></span></span><span class="py-op">)</span> </span>
<span class="py-lineno">127</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">fillstyles</span> <span class="py-op">=</span> <span class="py-name">fill</span> </span>
<span class="py-lineno">128</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">strokestyles</span> <span class="py-op">=</span> <span class="py-name">stroke</span> </span>
<span class="py-lineno">129</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">trafos</span> <span class="py-op">=</span> <span class="py-op">[</span><span class="py-op">]</span> </span>
<span class="py-lineno">130</span> <span class="py-line"> </span>
<span class="py-lineno">131</span> <span class="py-line"> <span class="py-comment">## Add this to the current diagram automatically</span> </span>
<span class="py-lineno">132</span> <span class="py-line"><span class="py-comment"></span> <span id="link-45" class="py-name"><a title="pyfeyn.diagrams.FeynDiagram" class="py-name" href="#" onclick="doclink('link-45', 'FeynDiagram', 'Class pyfeyn.diagrams.FeynDiagram=pyfeyn.diagrams.FeynDiagram-class.html'); return false;">FeynDiagram</a></span></span><span class="py-op">.</span><span id="link-46" class="py-name"><a title="pyfeyn.diagrams.FeynDiagram.currentDiagram" class="py-name" href="#" onclick="doclink('link-46', 'currentDiagram', 'Variable pyfeyn.diagrams.FeynDiagram.currentDiagram=pyfeyn.diagrams.FeynDiagram-class.html#currentDiagram'); return false;">currentDiagram</a></span></span><span class="py-op">.</span><span id="link-47" class="py-name"><a title="pyfeyn.diagrams.FeynDiagram.add" class="py-name" href="#" onclick="doclink('link-47', 'add', 'Method pyfeyn.diagrams.FeynDiagram.add()=pyfeyn.diagrams.FeynDiagram-class.html#add'); return false;">add</a></span></span><span class="py-op">(</span><span class="py-name">self</span><span class="py-op">)</span> </span>
</div><span class="py-lineno">133</span> <span class="py-line"> </span>
<span class="py-lineno">134</span> <span class="py-line"> </span>
<a name="Ellipse.getXRadius"></a><div id="Ellipse.getXRadius-def"><span class="py-lineno">135</span> <a class="py-toggle" href="#" id="Ellipse.getXRadius-toggle" onclick="toggle('Ellipse.getXRadius'); return false;">-</a><span class="py-line"> <span class="py-keyword">def</span> <a class="py-def-name" href="pyfeyn.blobs.Ellipse-class.html#getXRadius">getXRadius</a><span class="py-op">(</span><span class="py-param">self</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Ellipse.getXRadius-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Ellipse.getXRadius-expanded"><span class="py-lineno">136</span> <span class="py-line"> <span class="py-keyword">return</span> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">xrad</span> </span>
</div><span class="py-lineno">137</span> <span class="py-line"> </span>
<span class="py-lineno">138</span> <span class="py-line"> </span>
<a name="Ellipse.setXRadius"></a><div id="Ellipse.setXRadius-def"><span class="py-lineno">139</span> <a class="py-toggle" href="#" id="Ellipse.setXRadius-toggle" onclick="toggle('Ellipse.setXRadius'); return false;">-</a><span class="py-line"> <span class="py-keyword">def</span> <a class="py-def-name" href="pyfeyn.blobs.Ellipse-class.html#setXRadius">setXRadius</a><span class="py-op">(</span><span class="py-param">self</span><span class="py-op">,</span> <span class="py-param">xrad</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Ellipse.setXRadius-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Ellipse.setXRadius-expanded"><span class="py-lineno">140</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">xrad</span> <span class="py-op">=</span> <span class="py-name">float</span><span class="py-op">(</span><span class="py-name">xrad</span><span class="py-op">)</span> </span>
<span class="py-lineno">141</span> <span class="py-line"> <span class="py-keyword">return</span> <span class="py-name">self</span> </span>
</div><span class="py-lineno">142</span> <span class="py-line"> </span>
<span class="py-lineno">143</span> <span class="py-line"> </span>
<a name="Ellipse.getYRadius"></a><div id="Ellipse.getYRadius-def"><span class="py-lineno">144</span> <a class="py-toggle" href="#" id="Ellipse.getYRadius-toggle" onclick="toggle('Ellipse.getYRadius'); return false;">-</a><span class="py-line"> <span class="py-keyword">def</span> <a class="py-def-name" href="pyfeyn.blobs.Ellipse-class.html#getYRadius">getYRadius</a><span class="py-op">(</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Ellipse.getYRadius-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Ellipse.getYRadius-expanded"><span class="py-lineno">145</span> <span class="py-line"> <span class="py-keyword">return</span> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">yrad</span> </span>
</div><span class="py-lineno">146</span> <span class="py-line"> </span>
<span class="py-lineno">147</span> <span class="py-line"> </span>
<a name="Ellipse.setYRadius"></a><div id="Ellipse.setYRadius-def"><span class="py-lineno">148</span> <a class="py-toggle" href="#" id="Ellipse.setYRadius-toggle" onclick="toggle('Ellipse.setYRadius'); return false;">-</a><span class="py-line"> <span class="py-keyword">def</span> <a class="py-def-name" href="pyfeyn.blobs.Ellipse-class.html#setYRadius">setYRadius</a><span class="py-op">(</span><span class="py-param">self</span><span class="py-op">,</span> <span class="py-param">yrad</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Ellipse.setYRadius-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Ellipse.setYRadius-expanded"><span class="py-lineno">149</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">yrad</span> <span class="py-op">=</span> <span class="py-name">float</span><span class="py-op">(</span><span class="py-name">yrad</span><span class="py-op">)</span> </span>
<span class="py-lineno">150</span> <span class="py-line"> <span class="py-keyword">return</span> <span class="py-name">self</span> </span>
</div><span class="py-lineno">151</span> <span class="py-line"> </span>
<span class="py-lineno">152</span> <span class="py-line"> </span>
<a name="Ellipse.getXYRadius"></a><div id="Ellipse.getXYRadius-def"><span class="py-lineno">153</span> <a class="py-toggle" href="#" id="Ellipse.getXYRadius-toggle" onclick="toggle('Ellipse.getXYRadius'); return false;">-</a><span class="py-line"> <span class="py-keyword">def</span> <a class="py-def-name" href="pyfeyn.blobs.Ellipse-class.html#getXYRadius">getXYRadius</a><span class="py-op">(</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Ellipse.getXYRadius-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Ellipse.getXYRadius-expanded"><span class="py-lineno">154</span> <span class="py-line"> <span class="py-keyword">return</span> <span class="py-name">self</span><span class="py-op">.</span><span id="link-48" class="py-name"><a title="pyfeyn.blobs.Ellipse.getXRadius" class="py-name" href="#" onclick="doclink('link-48', 'getXRadius', 'Method pyfeyn.blobs.Ellipse.getXRadius()=pyfeyn.blobs.Ellipse-class.html#getXRadius'); return false;">getXRadius</a></span></span><span class="py-op">(</span><span class="py-op">)</span><span class="py-op">,</span> <span class="py-name">self</span><span class="py-op">.</span><span id="link-49" class="py-name"><a title="pyfeyn.blobs.Ellipse.getYRadius" class="py-name" href="#" onclick="doclink('link-49', 'getYRadius', 'Method pyfeyn.blobs.Ellipse.getYRadius()=pyfeyn.blobs.Ellipse-class.html#getYRadius'); return false;">getYRadius</a></span></span><span class="py-op">(</span><span class="py-op">)</span> </span>
</div><span class="py-lineno">155</span> <span class="py-line"> </span>
<span class="py-lineno">156</span> <span class="py-line"> </span>
<a name="Ellipse.setXYRadius"></a><div id="Ellipse.setXYRadius-def"><span class="py-lineno">157</span> <a class="py-toggle" href="#" id="Ellipse.setXYRadius-toggle" onclick="toggle('Ellipse.setXYRadius'); return false;">-</a><span class="py-line"> <span class="py-keyword">def</span> <a class="py-def-name" href="pyfeyn.blobs.Ellipse-class.html#setXYRadius">setXYRadius</a><span class="py-op">(</span><span class="py-param">self</span><span class="py-op">,</span> <span class="py-param">xrad</span><span class="py-op">,</span> <span class="py-param">yrad</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Ellipse.setXYRadius-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Ellipse.setXYRadius-expanded"><span class="py-lineno">158</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span id="link-50" class="py-name"><a title="pyfeyn.blobs.Ellipse.setXRadius" class="py-name" href="#" onclick="doclink('link-50', 'setXRadius', 'Method pyfeyn.blobs.Ellipse.setXRadius()=pyfeyn.blobs.Ellipse-class.html#setXRadius'); return false;">setXRadius</a></span></span><span class="py-op">(</span><span class="py-name">xrad</span><span class="py-op">)</span> </span>
<span class="py-lineno">159</span> <span class="py-line"> <span class="py-name">self</span><span class="py-op">.</span><span id="link-51" class="py-name"><a title="pyfeyn.blobs.Ellipse.setYRadius" class="py-name" href="#" onclick="doclink('link-51', 'setYRadius', 'Method pyfeyn.blobs.Ellipse.setYRadius()=pyfeyn.blobs.Ellipse-class.html#setYRadius'); return false;">setYRadius</a></span></span><span class="py-op">(</span><span class="py-name">yrad</span><span class="py-op">)</span> </span>
<span class="py-lineno">160</span> <span class="py-line"> <span class="py-keyword">return</span> <span class="py-name">self</span> </span>
</div><span class="py-lineno">161</span> <span class="py-line"> </span>
<span class="py-lineno">162</span> <span class="py-line"> </span>
<a name="Ellipse.getPath"></a><div id="Ellipse.getPath-def"><span class="py-lineno">163</span> <a class="py-toggle" href="#" id="Ellipse.getPath-toggle" onclick="toggle('Ellipse.getPath'); return false;">-</a><span class="py-line"> <span class="py-keyword">def</span> <a class="py-def-name" href="pyfeyn.blobs.Ellipse-class.html#getPath">getPath</a><span class="py-op">(</span><span class="py-param">self</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Ellipse.getPath-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Ellipse.getPath-expanded"><span class="py-lineno">164</span> <span class="py-line"> <span class="py-name">ucircle</span> <span class="py-op">=</span> <span class="py-name">path</span><span class="py-op">.</span><span class="py-name">circle</span><span class="py-op">(</span><span class="py-name">self</span><span class="py-op">.</span><span class="py-name">xpos</span><span class="py-op">,</span> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">ypos</span><span class="py-op">,</span> <span class="py-number">1.0</span><span class="py-op">)</span> </span>
<span class="py-lineno">165</span> <span class="py-line"> <span class="py-name">mytrafo</span> <span class="py-op">=</span> <span class="py-name">trafo</span><span class="py-op">.</span><span class="py-name">scale</span><span class="py-op">(</span><span class="py-name">self</span><span class="py-op">.</span><span class="py-name">xrad</span><span class="py-op">,</span> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">yrad</span><span class="py-op">,</span> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">xpos</span><span class="py-op">,</span> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">ypos</span><span class="py-op">)</span> </span>
<span class="py-lineno">166</span> <span class="py-line"> <span class="py-name">epath</span> <span class="py-op">=</span> <span class="py-name">ucircle</span><span class="py-op">.</span><span class="py-name">transformed</span><span class="py-op">(</span><span class="py-name">mytrafo</span><span class="py-op">)</span> </span>
<span class="py-lineno">167</span> <span class="py-line"> <span class="py-keyword">return</span> <span class="py-name">epath</span> </span>
</div><span class="py-lineno">168</span> <span class="py-line"> </span>
<span class="py-lineno">169</span> <span class="py-line"> </span>
<a name="Ellipse.draw"></a><div id="Ellipse.draw-def"><span class="py-lineno">170</span> <a class="py-toggle" href="#" id="Ellipse.draw-toggle" onclick="toggle('Ellipse.draw'); return false;">-</a><span class="py-line"> <span class="py-keyword">def</span> <a class="py-def-name" href="pyfeyn.blobs.Ellipse-class.html#draw">draw</a><span class="py-op">(</span><span class="py-param">self</span><span class="py-op">,</span> <span class="py-param">canvas</span><span class="py-op">)</span><span class="py-op">:</span> </span>
</div><div id="Ellipse.draw-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Ellipse.draw-expanded"><span class="py-lineno">171</span> <span class="py-line"> <span class="py-name">canvas</span><span class="py-op">.</span><span class="py-name">fill</span><span class="py-op">(</span><span class="py-name">self</span><span class="py-op">.</span><span id="link-52" class="py-name"><a title="pyfeyn.blobs.Circle.getPath
pyfeyn.blobs.Ellipse.getPath
pyfeyn.lines.Line.getPath
pyfeyn.points.DecoratedPoint.getPath
pyfeyn.points.Point.getPath
pyfeyn.utils.Visible.getPath" class="py-name" href="#" onclick="doclink('link-52', 'getPath', 'Method pyfeyn.blobs.Circle.getPath()=pyfeyn.blobs.Circle-class.html#getPath,Method pyfeyn.blobs.Ellipse.getPath()=pyfeyn.blobs.Ellipse-class.html#getPath,Method pyfeyn.lines.Line.getPath()=pyfeyn.lines.Line-class.html#getPath,Method pyfeyn.points.DecoratedPoint.getPath()=pyfeyn.points.DecoratedPoint-class.html#getPath,Method pyfeyn.points.Point.getPath()=pyfeyn.points.Point-class.html#getPath,Method pyfeyn.utils.Visible.getPath()=pyfeyn.utils.Visible-class.html#getPath'); return false;">getPath</a></span></span><span class="py-op">(</span><span class="py-op">)</span><span class="py-op">,</span> <span class="py-op">[</span><span class="py-name">color</span><span class="py-op">.</span><span class="py-name">rgb</span><span class="py-op">.</span><span class="py-name">white</span><span class="py-op">]</span><span class="py-op">)</span> </span>
<span class="py-lineno">172</span> <span class="py-line"> <span class="py-name">canvas</span><span class="py-op">.</span><span class="py-name">fill</span><span class="py-op">(</span><span class="py-name">self</span><span class="py-op">.</span><span id="link-53" class="py-name"><a title="pyfeyn.blobs.Circle.getPath
pyfeyn.blobs.Ellipse.getPath
pyfeyn.lines.Line.getPath
pyfeyn.points.DecoratedPoint.getPath
pyfeyn.points.Point.getPath
pyfeyn.utils.Visible.getPath" class="py-name" href="#" onclick="doclink('link-53', 'getPath', 'Method pyfeyn.blobs.Circle.getPath()=pyfeyn.blobs.Circle-class.html#getPath,Method pyfeyn.blobs.Ellipse.getPath()=pyfeyn.blobs.Ellipse-class.html#getPath,Method pyfeyn.lines.Line.getPath()=pyfeyn.lines.Line-class.html#getPath,Method pyfeyn.points.DecoratedPoint.getPath()=pyfeyn.points.DecoratedPoint-class.html#getPath,Method pyfeyn.points.Point.getPath()=pyfeyn.points.Point-class.html#getPath,Method pyfeyn.utils.Visible.getPath()=pyfeyn.utils.Visible-class.html#getPath'); return false;">getPath</a></span></span><span class="py-op">(</span><span class="py-op">)</span><span class="py-op">,</span> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">fillstyles</span><span class="py-op">)</span> </span>
<span class="py-lineno">173</span> <span class="py-line"> <span class="py-comment">#canvas.stroke(self.getPath(), [color.rgb.white])</span> </span>
<span class="py-lineno">174</span> <span class="py-line"><span class="py-comment"></span> <span class="py-name">canvas</span><span class="py-op">.</span><span class="py-name">stroke</span><span class="py-op">(</span><span class="py-name">self</span><span class="py-op">.</span><span id="link-54" class="py-name"><a title="pyfeyn.blobs.Circle.getPath
pyfeyn.blobs.Ellipse.getPath
pyfeyn.lines.Line.getPath
pyfeyn.points.DecoratedPoint.getPath
pyfeyn.points.Point.getPath
pyfeyn.utils.Visible.getPath" class="py-name" href="#" onclick="doclink('link-54', 'getPath', 'Method pyfeyn.blobs.Circle.getPath()=pyfeyn.blobs.Circle-class.html#getPath,Method pyfeyn.blobs.Ellipse.getPath()=pyfeyn.blobs.Ellipse-class.html#getPath,Method pyfeyn.lines.Line.getPath()=pyfeyn.lines.Line-class.html#getPath,Method pyfeyn.points.DecoratedPoint.getPath()=pyfeyn.points.DecoratedPoint-class.html#getPath,Method pyfeyn.points.Point.getPath()=pyfeyn.points.Point-class.html#getPath,Method pyfeyn.utils.Visible.getPath()=pyfeyn.utils.Visible-class.html#getPath'); return false;">getPath</a></span></span><span class="py-op">(</span><span class="py-op">)</span><span class="py-op">,</span> <span class="py-name">self</span><span class="py-op">.</span><span class="py-name">strokestyles</span><span class="py-op">)</span> </span>
</div></div><span class="py-lineno">175</span> <span class="py-line"> </span>
<span class="py-lineno">176</span> <span class="py-line"> </span>
<span class="py-lineno">177</span> <span class="py-line"><span class="py-comment">## A dictionary to map feynML blob shape choices to blob classes</span> </span>
<span class="py-lineno">178</span> <span class="py-line"><span class="py-comment"></span><span id="link-55" class="py-name"><a title="pyfeyn.blobs.NamedBlob" class="py-name" href="#" onclick="doclink('link-55', 'NamedBlob', 'Variable pyfeyn.blobs.NamedBlob=pyfeyn.blobs-module.html#NamedBlob'); return false;">NamedBlob</a></span></span> <span class="py-op">=</span> <span class="py-op">{</span> </span>
<span class="py-lineno">179</span> <span class="py-line"> <span class="py-string">"circle"</span> <span class="py-op">:</span> <span id="link-56" class="py-name"><a title="pyfeyn.blobs.Circle" class="py-name" href="#" onclick="doclink('link-56', 'Circle', 'Class pyfeyn.blobs.Circle=pyfeyn.blobs.Circle-class.html'); return false;">Circle</a></span></span><span class="py-op">,</span> </span>
<span class="py-lineno">180</span> <span class="py-line"> <span class="py-string">"ellipse"</span> <span class="py-op">:</span> <span id="link-57" class="py-name"><a title="pyfeyn.blobs.Ellipse" class="py-name" href="#" onclick="doclink('link-57', 'Ellipse', 'Class pyfeyn.blobs.Ellipse=pyfeyn.blobs.Ellipse-class.html'); return false;">Ellipse</a></span></span> </span>
<span class="py-lineno">181</span> <span class="py-line"> <span class="py-op">}</span> </span>
<span class="py-lineno">182</span> <span class="py-line"> </span><script type="text/javascript">
<!--
expandto(location.href);
// -->
</script>
</pre>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
<tr valign="middle">
<!-- Home link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="pyfeyn-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Tree link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Index link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Help link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
<th class="navbar" width="100%"></th>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">Generated by Epydoc
3.0alpha3 on Fri Feb 9 00:16:38 2007</td>
<td align="right" class="footer">
<a href="http://epydoc.sourceforge.net">http://epydoc.sourceforge.net</a>
</td>
</tr>
</table>
<script type="text/javascript">
<!--
// Private objects are initially displayed (because if
// javascript is turned off then we want them to be
// visible); but by default, we want to hide them. So hide
// them unless we have a cookie that says to show them.
checkCookie()
// -->
</script>
</body>
</html>

File Metadata

Mime Type
application/xml
Expires
Wed, May 14, 11:50 AM (2 h, 7 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5111538
Default Alt Text
pyfeyn.blobs-pysrc.html (65 KB)

Event Timeline