-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathextrusion.html
More file actions
263 lines (223 loc) · 24.6 KB
/
extrusion.html
File metadata and controls
263 lines (223 loc) · 24.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<title>Extrusions — VPython 3.2 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/alabaster.css" />
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="_static/doctools.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Shapes and Paths" href="shapes_and_paths.html" />
<link rel="prev" title="A Mesh of Triangles" href="vertex.html" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="extrusions">
<h1><a class="toc-backref" href="#id2" role="doc-backlink">Extrusions</a><a class="headerlink" href="#extrusions" title="Permalink to this heading">¶</a></h1>
<figure class="align-default" id="id1">
<img alt="_images/extrusion-shape-vs-path.png" src="_images/extrusion-shape-vs-path.png" />
<figcaption>
<p><span class="caption-text">Left (cyan): a circular shape extruded along a rectangular path. Right (magenta): A rectangular shape extruded along a circular path.</span><a class="headerlink" href="#id1" title="Permalink to this image">¶</a></p>
</figcaption>
</figure>
<nav class="contents" id="contents">
<p class="topic-title">Contents</p>
<ul class="simple">
<li><p><a class="reference internal" href="#extrusions" id="id2">Extrusions</a></p>
<ul>
<li><p><a class="reference internal" href="#basics-of-extrusions" id="id3">Basics of Extrusions</a></p></li>
<li><p><a class="reference internal" href="#objects-with-holes" id="id4">Objects with Holes</a></p></li>
<li><p><a class="reference internal" href="#common-shapes-and-paths" id="id5">Common Shapes and Paths</a></p></li>
<li><p><a class="reference internal" href="#color-blending" id="id6">Color Blending</a></p></li>
<li><p><a class="reference internal" href="#hemispheres" id="id7">Hemispheres</a></p></li>
</ul>
</li>
</ul>
</nav>
<section id="basics-of-extrusions">
<h2><a class="toc-backref" href="#id3" role="doc-backlink">Basics of Extrusions</a><a class="headerlink" href="#basics-of-extrusions" title="Permalink to this heading">¶</a></h2>
<p>An extrusion object is produced by extruding a 2D shape along a 3D path.</p>
<dl class="py function">
<dt class="sig sig-object py">
<span class="sig-name descname"><span class="pre">myext</span> <span class="pre">=</span> <span class="pre">extrusion(</span> <span class="pre">shape=myshape,</span> <span class="pre">path=mypath</span> <span class="pre">)</span></span></dt>
<dd><dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>shape</strong> (<em>list</em>) – A list of x-y pairs, each itself a list, describing a closed figure in the <em>xy</em> plane.</p></li>
<li><p><strong>path</strong> (<em>list</em>) – A list of 3D vectors denoting a path.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<p>The following code creates a triangle shape in the <em>xy</em> plane and extrudes it along a straight line path in the <em>+z</em> direction, making a long wedge:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">triangleshape</span> <span class="o">=</span> <span class="p">[</span> <span class="p">[</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">],</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="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">],</span> <span class="p">[</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">]</span> <span class="p">]</span>
<span class="n">linepath</span> <span class="o">=</span> <span class="p">[</span> <span class="n">vec</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="o">-</span><span class="mi">4</span><span class="p">),</span> <span class="n">vec</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">4</span><span class="p">)</span> <span class="p">]</span>
<span class="n">wedge</span> <span class="o">=</span> <span class="n">extrusion</span><span class="p">(</span> <span class="n">shape</span><span class="o">=</span><span class="n">triangleshape</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="n">linepath</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="n">color</span><span class="o">.</span><span class="n">magenta</span><span class="p">)</span>
</pre></div>
</div>
<img alt="_images/extrusion2.png" src="_images/extrusion2.png" />
<p>Other attributes of <em>extrusion</em> include:</p>
<dl class="py function">
<dt class="sig sig-object py">
<span class="sig-name descname"><span class="pre">myext</span> <span class="pre">=</span> <span class="pre">extrusion(</span> <span class="pre">shape=myshape,</span> <span class="pre">path=mypath,</span> <span class="pre">color=color.red,</span> <span class="pre">smooth=0.9,</span> <span class="pre">scale=3,</span> <span class="pre">twist=0.1</span> <span class="pre">)</span></span></dt>
<dd><dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>color</strong> (<em>vector</em>) – Color of extrusion. Default is <em>color.white</em></p></li>
<li><p><strong>smooth</strong> (<em>scalar</em>) – If the cosine of the angle between adjacent path elements is greater than this number, smooth the joint between them. Default: 0.95 (an angle of 18 degrees).</p></li>
<li><p><strong>scale</strong> (<em>scalar</em><em> or </em><em>list</em>) – If scale is 3, all joints are enlarged by a factor of 3. If instead you give a list of numbers, such as “scale = [2, 3, 0.5.]”, the initial cross section is scaled by a factor of 2, the second by a factor of 3, and the third by a factor of 0.5. For a list, the number of scale factors must be the same as the number of points along the path.</p></li>
<li><p><strong>xscale</strong> (<em>scalar</em><em> or </em><em>list</em>) – Same as scale, but in x-direction only.</p></li>
<li><p><strong>yscale</strong> (<em>scalar</em><em> or </em><em>list</em>) – Same as scale, but in y-direction only.</p></li>
<li><p><strong>twist</strong> (<em>scalar</em><em> or </em><em>list</em>) – Angle in radians (or list of angles) by which subsequent segments should be rotated about path. For a list, the number of twist factors must be the same as the number of points along the path.</p></li>
<li><p><strong>start_normal</strong> (<em>vector</em>) – Outward-going normal to the starting face. By default this is determined by the direction of the path from the starting point to the next segment on the path. This attribute has no effect if the path is closed.</p></li>
<li><p><strong>end_normal</strong> (<em>vector</em>) – Same as start_normal but for end face.</p></li>
<li><p><strong>show_start_face</strong> (<em>boolean</em>) – If <em>False</em> starting face is left open. Default <em>True</em>.</p></li>
<li><p><strong>show_end_face</strong> (<em>boolean</em>) – Same as show_start_face, but for end face of extrusion.</p></li>
<li><p><strong>smooth_joints</strong> (<em>list</em>) – A list of path points, by position in path, whose joints should be smoothed, regardless of overall setting. First position in path is 0. Setting <code class="docutils literal notranslate"><span class="pre">smooth_joints=[2,5]</span></code> turns on smoothing for these joints.</p></li>
<li><p><strong>sharp_joints</strong> (<em>list</em>) – Effect opposite to smooth_joints, with same syntax.</p></li>
<li><p><strong>group</strong> (<em>object</em>) – The group to which this object belongs.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<a class="reference internal image-reference" href="_images/extrusion-twist.png"><img alt="_images/extrusion-twist.png" src="_images/extrusion-twist.png" style="width: 200px;" /></a>
<p>Above: A rectangle extruded along a linear path with a twist.</p>
</section>
<section id="objects-with-holes">
<h2><a class="toc-backref" href="#id4" role="doc-backlink">Objects with Holes</a><a class="headerlink" href="#objects-with-holes" title="Permalink to this heading">¶</a></h2>
<p>A path is always a single set of points. A shape, however, can have holes in it. If the shape has holes, it will contain multiple sub-lists: the first list denoting the outer perimter of the shape, the others each specifying the perimeter of a hole within the outer perimeter. Holes must not overlap each other.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">outershape</span> <span class="o">=</span> <span class="p">[[</span><span class="mf">0.5</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.5</span><span class="p">],</span> <span class="p">[</span><span class="mf">0.5</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">],</span> <span class="p">[</span><span class="o">-</span><span class="mf">0.5</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">],</span> <span class="p">[</span><span class="o">-</span><span class="mf">0.5</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.5</span><span class="p">],</span> <span class="p">[</span><span class="mf">0.5</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.5</span><span class="p">]]</span>
<span class="n">innershape</span> <span class="o">=</span> <span class="p">[[</span><span class="mf">0.35</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.20</span><span class="p">],</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mf">0.40</span><span class="p">],</span> <span class="p">[</span><span class="o">-</span><span class="mf">0.35</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.20</span><span class="p">],</span> <span class="p">[</span><span class="mf">0.35</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.20</span><span class="p">]]</span>
<span class="n">zpath</span> <span class="o">=</span> <span class="p">[</span> <span class="n">vec</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span> <span class="n">vec</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mf">0.5</span><span class="p">)</span> <span class="p">]</span>
<span class="n">thing</span> <span class="o">=</span> <span class="n">extrusion</span><span class="p">(</span> <span class="n">shape</span><span class="o">=</span><span class="p">[</span> <span class="n">outershape</span><span class="p">,</span> <span class="n">innershape</span> <span class="p">],</span> <span class="n">path</span><span class="o">=</span><span class="n">zpath</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="n">color</span><span class="o">.</span><span class="n">yellow</span> <span class="p">)</span>
</pre></div>
</div>
<a class="reference internal image-reference" href="_images/extrusion_1hole.png"><img alt="_images/extrusion_1hole.png" src="_images/extrusion_1hole.png" style="width: 175px;" /></a>
</section>
<section id="common-shapes-and-paths">
<h2><a class="toc-backref" href="#id5" role="doc-backlink">Common Shapes and Paths</a><a class="headerlink" href="#common-shapes-and-paths" title="Permalink to this heading">¶</a></h2>
<p>VPython provides a <a class="reference internal" href="shapes_and_paths.html"><span class="doc">library of commonly used shapes</span></a>: closed figures in the <em>xy</em> plane. Each shape is a list of precalculated <em>x-y</em> pairs. You can use these in making an extrusion:</p>
<p><code class="docutils literal notranslate"><span class="pre">myextrusion</span> <span class="pre">=</span> <span class="pre">extrusion(</span> <span class="pre">shape=shapes.rectangle(width=10,</span> <span class="pre">height=6),</span> <span class="pre">path=mypath</span> <span class="pre">)</span></code></p>
<p>The <a class="reference internal" href="shapes_and_paths.html"><span class="doc">paths library</span></a> in VPython contains the same figures as does the shapes library. Each path, however, is a list of precalculated 3D vector positions.</p>
<p>To extrude a triangular shape along a circular path, you can employ these libraries:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">trishape</span> <span class="o">=</span> <span class="n">shapes</span><span class="o">.</span><span class="n">triangle</span><span class="p">(</span><span class="n">xscale</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">yscale</span><span class="o">=</span><span class="mf">0.3</span><span class="p">)</span>
<span class="n">circpath</span> <span class="o">=</span> <span class="n">paths</span><span class="o">.</span><span class="n">circle</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
<span class="n">oddring</span> <span class="o">=</span> <span class="n">extrusion</span><span class="p">(</span><span class="n">shape</span><span class="o">=</span><span class="n">trishape</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="n">circpath</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="n">color</span><span class="o">.</span><span class="n">yellow</span><span class="p">)</span>
</pre></div>
</div>
<img alt="_images/extrusion3.png" src="_images/extrusion3.png" />
<p>For detailed documentation on these libraries, see <a class="reference internal" href="shapes_and_paths.html"><span class="doc">Shapes and Paths Libraries</span></a></p>
</section>
<section id="color-blending">
<h2><a class="toc-backref" href="#id6" role="doc-backlink">Color Blending</a><a class="headerlink" href="#color-blending" title="Permalink to this heading">¶</a></h2>
<p>As with a compound object, setting the color of an extrusion that was made with a color other than white makes a multiplicative blend of the overall color with the original color. For example, if the color of the extrusion was originally <0,1,1> (cyan), and you later set the color to <1,1,0> (yellow), the blend results in <0*1, 1*1, 0*0> or <0,1,0>, which is green. If you plan to vary the color after creating the extrusion object, start with <strong>color.white</strong>, which is the default.</p>
</section>
<section id="hemispheres">
<h2><a class="toc-backref" href="#id7" role="doc-backlink">Hemispheres</a><a class="headerlink" href="#hemispheres" title="Permalink to this heading">¶</a></h2>
<p>There are two ways to make a hemisphere using an extrusion. The first involves extruding a quarter-circle arc shape along a circular path using an offset (pos):</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">hshape</span> <span class="o">=</span> <span class="n">shapes</span><span class="o">.</span><span class="n">arc</span><span class="p">(</span><span class="n">angle1</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">angle2</span><span class="o">=</span><span class="mf">0.999</span><span class="o">*</span><span class="n">pi</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="n">radius</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">thickness</span><span class="o">=</span><span class="mf">0.01</span><span class="p">,</span> <span class="n">pos</span><span class="o">=</span><span class="p">[</span><span class="o">-</span><span class="mf">0.5</span><span class="p">,</span><span class="mi">0</span><span class="p">]</span> <span class="p">)</span>
<span class="n">hpath</span> <span class="o">=</span> <span class="n">paths</span><span class="o">.</span><span class="n">circle</span><span class="p">(</span><span class="n">radius</span><span class="o">=</span><span class="mf">0.5</span><span class="p">)</span>
<span class="n">demihemi</span> <span class="o">=</span> <span class="n">extrusion</span><span class="p">(</span> <span class="n">shape</span><span class="o">=</span><span class="n">hshape</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="n">hpath</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="n">color</span><span class="o">.</span><span class="n">green</span><span class="p">)</span>
</pre></div>
</div>
<img alt="_images/extrusion-hemisphere-1.png" src="_images/extrusion-hemisphere-1.png" />
<p>The second way involves extruding a circle shape along a linear path, but adjusting the scale factor for the circle at each step along the path:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rr</span> <span class="o">=</span> <span class="mi">1</span>
<span class="n">N</span> <span class="o">=</span> <span class="mi">400</span>
<span class="n">x</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">dx</span> <span class="o">=</span> <span class="mi">1</span><span class="o">/</span><span class="p">(</span><span class="n">N</span><span class="p">)</span>
<span class="n">scalef</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">hpath</span> <span class="o">=</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="n">N</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">):</span>
<span class="n">rad</span> <span class="o">=</span> <span class="n">sqrt</span><span class="p">(</span><span class="n">rr</span><span class="o">**</span><span class="mi">2</span> <span class="o">-</span> <span class="n">x</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
<span class="n">scalef</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">rad</span><span class="p">)</span>
<span class="n">x</span> <span class="o">=</span> <span class="n">i</span><span class="o">*</span><span class="n">dx</span>
<span class="n">hpath</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">vec</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">x</span><span class="p">,</span><span class="mi">0</span><span class="p">))</span>
<span class="n">hem</span> <span class="o">=</span> <span class="n">extrusion</span><span class="p">(</span><span class="n">path</span><span class="o">=</span><span class="n">hpath</span><span class="p">,</span> <span class="n">shape</span><span class="o">=</span><span class="n">shapes</span><span class="o">.</span><span class="n">circle</span><span class="p">(</span><span class="n">radius</span><span class="o">=</span><span class="n">rr</span><span class="p">),</span> <span class="n">scale</span><span class="o">=</span><span class="n">scalef</span><span class="p">,</span>
<span class="n">show_start_face</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="n">color</span><span class="o">.</span><span class="n">magenta</span> <span class="p">)</span>
</pre></div>
</div>
<img alt="_images/extrusion-hemisphere-2.png" src="_images/extrusion-hemisphere-2.png" />
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="index.html">VPython</a></h1>
<h3>Navigation</h3>
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="objects.html">3D Objects</a></li>
<li class="toctree-l1"><a class="reference internal" href="rate.html">Animations</a></li>
<li class="toctree-l1"><a class="reference internal" href="canvas.html">Canvases</a></li>
<li class="toctree-l1"><a class="reference internal" href="cameraAndLights.html">Camera and Lighting</a></li>
<li class="toctree-l1"><a class="reference internal" href="colorOpacityGlow.html">Color/Opacity/Glow</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="makeshapes.html">Design New Objects</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="compound.html">compound</a></li>
<li class="toctree-l2"><a class="reference internal" href="group.html">group</a></li>
<li class="toctree-l2"><a class="reference internal" href="vertex.html">vertex, triangle, and quad</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">extrusion</a></li>
<li class="toctree-l2"><a class="reference internal" href="shapes_and_paths.html">shapes and paths</a></li>
<li class="toctree-l2"><a class="reference internal" href="clone.html">cloning an object</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="file.html">Files/Libraries</a></li>
<li class="toctree-l1"><a class="reference internal" href="graph.html">Graphs</a></li>
<li class="toctree-l1"><a class="reference internal" href="math.html">Math Functions</a></li>
<li class="toctree-l1"><a class="reference internal" href="workwithobjects.html">Object Attachments</a></li>
<li class="toctree-l1"><a class="reference internal" href="rotation.html">Rotation</a></li>
<li class="toctree-l1"><a class="reference internal" href="textoutput.html">Text output</a></li>
<li class="toctree-l1"><a class="reference internal" href="texture.html">Textures</a></li>
<li class="toctree-l1"><a class="reference internal" href="userinput.html">User Input</a></li>
<li class="toctree-l1"><a class="reference internal" href="webvs7.html">VPython/WebVpython</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">VPython license</a></li>
<li class="toctree-l1"><a class="reference internal" href="resources.html">Additional Resources</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="index.html">Documentation overview</a><ul>
<li><a href="makeshapes.html">Making New Objects</a><ul>
<li>Previous: <a href="vertex.html" title="previous chapter">A Mesh of Triangles</a></li>
<li>Next: <a href="shapes_and_paths.html" title="next chapter">Shapes and Paths</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>document.getElementById('searchbox').style.display = "block"</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
©2023, Ruth Chabay and Bruce Sherwood.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 5.0.2</a>
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="_sources/extrusion.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>