Moved documentation to github pages

This commit is contained in:
Elod Csirmaz 2024-12-01 16:31:32 +00:00
parent 65a725ce31
commit 4193f2956b
25 changed files with 20 additions and 6297 deletions

View file

@ -1,287 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py.circle API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>openscad_py.circle</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="openscad_py.circle.Circle"><code class="flex name class">
<span>class <span class="ident">Circle</span></span>
<span>(</span><span>r: float, fn: int | None = None)</span>
</code></dt>
<dd>
<div class="desc"><p>A 2D primitive, circle.
Creates a circle (or regular polygon) at the origin.</p>
<p>See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#circle">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#circle</a></p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class Circle(Object):
&#34;&#34;&#34;A 2D primitive, circle.
Creates a circle (or regular polygon) at the origin.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#circle
&#34;&#34;&#34;
def __init__(self, r: float, fn: TUnion[int, None] = None):
self.r = r
self.fn = fn
# $fa, $fs, $fn
@classmethod
def triangle(cls, r):
&#34;&#34;&#34;Create a regular triangle&#34;&#34;&#34;
return cls(r=r, fn=3)
@classmethod
def regular_polygon(cls, r, sides: int):
&#34;&#34;&#34;Create a regular polygon&#34;&#34;&#34;
return cls(r=r, fn=sides)
def render(self) -&gt; str:
&#34;&#34;&#34;Render the object into OpenSCAD code&#34;&#34;&#34;
fnstr = &#39;&#39; if self.fn is None else f&#34;, $fn={self.fn}&#34;
return f&#34;circle(r={self.r}{fnstr});&#34;</code></pre>
</details>
<h3>Ancestors</h3>
<ul class="hlist">
<li><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></li>
</ul>
<h3>Static methods</h3>
<dl>
<dt id="openscad_py.circle.Circle.regular_polygon"><code class="name flex">
<span>def <span class="ident">regular_polygon</span></span>(<span>r, sides: int)</span>
</code></dt>
<dd>
<div class="desc"><p>Create a regular polygon</p></div>
</dd>
<dt id="openscad_py.circle.Circle.triangle"><code class="name flex">
<span>def <span class="ident">triangle</span></span>(<span>r)</span>
</code></dt>
<dd>
<div class="desc"><p>Create a regular triangle</p></div>
</dd>
</dl>
<h3>Methods</h3>
<dl>
<dt id="openscad_py.circle.Circle.color"><code class="name flex">
<span>def <span class="ident">color</span></span>(<span>self, r, g, b, a=1.0) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.color" href="object_.html#openscad_py.object_.Object.color">color</a></code>
</p>
<div class="desc inherited"><p>Apply a color and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color</a></p></div>
</dd>
<dt id="openscad_py.circle.Circle.delta_offset"><code class="name flex">
<span>def <span class="ident">delta_offset</span></span>(<span>self, delta, chamfer=False)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.delta_offset" href="object_.html#openscad_py.object_.Object.delta_offset">delta_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.circle.Circle.diff"><code class="name flex">
<span>def <span class="ident">diff</span></span>(<span>self,<br>tool: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.diff" href="object_.html#openscad_py.object_.Object.diff">diff</a></code>
</p>
<div class="desc inherited"><p>Remove from the object using a difference operator, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.circle.Circle.extrude"><code class="name flex">
<span>def <span class="ident">extrude</span></span>(<span>self, height, convexity=10, center: bool = False) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.extrude" href="object_.html#openscad_py.object_.Object.extrude">extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a linear extrusion and return a new object.
If <code>center</code> is false, the linear extrusion Z range is from 0 to height;
if it is true, the range is …</p></div>
</dd>
<dt id="openscad_py.circle.Circle.intersection"><code class="name flex">
<span>def <span class="ident">intersection</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.intersection" href="object_.html#openscad_py.object_.Object.intersection">intersection</a></code>
</p>
<div class="desc inherited"><p>Get the intersection of self and an object of list of objects, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.circle.Circle.move"><code class="name flex">
<span>def <span class="ident">move</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.move" href="object_.html#openscad_py.object_.Object.move">move</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object. Synonym of <code>translate()</code></p></div>
</dd>
<dt id="openscad_py.circle.Circle.radial_offset"><code class="name flex">
<span>def <span class="ident">radial_offset</span></span>(<span>self, r)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.radial_offset" href="object_.html#openscad_py.object_.Object.radial_offset">radial_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.circle.Circle.render"><code class="name flex">
<span>def <span class="ident">render</span></span>(<span>self) > str</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.render" href="object_.html#openscad_py.object_.Object.render">render</a></code>
</p>
<div class="desc inherited"><p>Render the object into OpenSCAD code</p></div>
</dd>
<dt id="openscad_py.circle.Circle.rotate"><code class="name flex">
<span>def <span class="ident">rotate</span></span>(<span>self,<br>a,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate" href="object_.html#openscad_py.object_.Object.rotate">rotate</a></code>
</p>
<div class="desc inherited"><p>Apply a rotation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate</a></p></div>
</dd>
<dt id="openscad_py.circle.Circle.rotate_extrude"><code class="name flex">
<span>def <span class="ident">rotate_extrude</span></span>(<span>self, angle, convexity=10) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate_extrude" href="object_.html#openscad_py.object_.Object.rotate_extrude">rotate_extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a rotational extrusion and return a new object. For all points x &gt;= 0 must be true.
See …</p></div>
</dd>
<dt id="openscad_py.circle.Circle.scale"><code class="name flex">
<span>def <span class="ident">scale</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a> | float) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.scale" href="object_.html#openscad_py.object_.Object.scale">scale</a></code>
</p>
<div class="desc inherited"><p>Apply scaling and return a new object. Accepts a vector (a Point object or a list of floats)
or a single float for uniform scaling.
See …</p></div>
</dd>
<dt id="openscad_py.circle.Circle.translate"><code class="name flex">
<span>def <span class="ident">translate</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.translate" href="object_.html#openscad_py.object_.Object.translate">translate</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate</a></p></div>
</dd>
<dt id="openscad_py.circle.Circle.union"><code class="name flex">
<span>def <span class="ident">union</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.union" href="object_.html#openscad_py.object_.Object.union">union</a></code>
</p>
<div class="desc inherited"><p>Form the union of self and an object or list of objects, and return a new object.
See …</p></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="openscad_py" href="index.html">openscad_py</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="openscad_py.circle.Circle" href="#openscad_py.circle.Circle">Circle</a></code></h4>
<ul class="two-column">
<li><code><a title="openscad_py.circle.Circle.color" href="object_.html#openscad_py.circle.Circle.color">color</a></code></li>
<li><code><a title="openscad_py.circle.Circle.delta_offset" href="object_.html#openscad_py.circle.Circle.delta_offset">delta_offset</a></code></li>
<li><code><a title="openscad_py.circle.Circle.diff" href="object_.html#openscad_py.circle.Circle.diff">diff</a></code></li>
<li><code><a title="openscad_py.circle.Circle.extrude" href="object_.html#openscad_py.circle.Circle.extrude">extrude</a></code></li>
<li><code><a title="openscad_py.circle.Circle.intersection" href="object_.html#openscad_py.circle.Circle.intersection">intersection</a></code></li>
<li><code><a title="openscad_py.circle.Circle.move" href="object_.html#openscad_py.circle.Circle.move">move</a></code></li>
<li><code><a title="openscad_py.circle.Circle.radial_offset" href="object_.html#openscad_py.circle.Circle.radial_offset">radial_offset</a></code></li>
<li><code><a title="openscad_py.circle.Circle.regular_polygon" href="#openscad_py.circle.Circle.regular_polygon">regular_polygon</a></code></li>
<li><code><a title="openscad_py.circle.Circle.render" href="#openscad_py.circle.Circle.render">render</a></code></li>
<li><code><a title="openscad_py.circle.Circle.rotate" href="object_.html#openscad_py.circle.Circle.rotate">rotate</a></code></li>
<li><code><a title="openscad_py.circle.Circle.rotate_extrude" href="object_.html#openscad_py.circle.Circle.rotate_extrude">rotate_extrude</a></code></li>
<li><code><a title="openscad_py.circle.Circle.scale" href="object_.html#openscad_py.circle.Circle.scale">scale</a></code></li>
<li><code><a title="openscad_py.circle.Circle.translate" href="object_.html#openscad_py.circle.Circle.translate">translate</a></code></li>
<li><code><a title="openscad_py.circle.Circle.triangle" href="#openscad_py.circle.Circle.triangle">triangle</a></code></li>
<li><code><a title="openscad_py.circle.Circle.union" href="object_.html#openscad_py.circle.Circle.union">union</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -1,271 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py.collection API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>openscad_py.collection</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="openscad_py.collection.Collection"><code class="flex name class">
<span>class <span class="ident">Collection</span></span>
<span>(</span><span>coll: list)</span>
</code></dt>
<dd>
<div class="desc"><p>Represents a collection of objects</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class Collection(Object):
&#34;&#34;&#34;Represents a collection of objects&#34;&#34;&#34;
def __init__(self, coll: list):
self.collection = coll
@classmethod
def c(cls, coll: TUnion[list, Object]) -&gt; Object:
&#34;&#34;&#34;Ensure the list of objects is a Collection (idempotent)&#34;&#34;&#34;
if isinstance(coll, Object):
return coll
return cls(coll)
def _add(self, obj):
return self.__class__(self.collection + [obj])
def render(self) -&gt; str:
&#34;&#34;&#34;Render the object into OpenSCAD code&#34;&#34;&#34;
return &#34;\n&#34;.join([o.render() for o in self.collection])</code></pre>
</details>
<h3>Ancestors</h3>
<ul class="hlist">
<li><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></li>
</ul>
<h3>Static methods</h3>
<dl>
<dt id="openscad_py.collection.Collection.c"><code class="name flex">
<span>def <span class="ident">c</span></span>(<span>coll: list | <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<div class="desc"><p>Ensure the list of objects is a Collection (idempotent)</p></div>
</dd>
</dl>
<h3>Methods</h3>
<dl>
<dt id="openscad_py.collection.Collection.color"><code class="name flex">
<span>def <span class="ident">color</span></span>(<span>self, r, g, b, a=1.0) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.color" href="object_.html#openscad_py.object_.Object.color">color</a></code>
</p>
<div class="desc inherited"><p>Apply a color and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color</a></p></div>
</dd>
<dt id="openscad_py.collection.Collection.delta_offset"><code class="name flex">
<span>def <span class="ident">delta_offset</span></span>(<span>self, delta, chamfer=False)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.delta_offset" href="object_.html#openscad_py.object_.Object.delta_offset">delta_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.collection.Collection.diff"><code class="name flex">
<span>def <span class="ident">diff</span></span>(<span>self,<br>tool: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.diff" href="object_.html#openscad_py.object_.Object.diff">diff</a></code>
</p>
<div class="desc inherited"><p>Remove from the object using a difference operator, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.collection.Collection.extrude"><code class="name flex">
<span>def <span class="ident">extrude</span></span>(<span>self, height, convexity=10, center: bool = False) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.extrude" href="object_.html#openscad_py.object_.Object.extrude">extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a linear extrusion and return a new object.
If <code>center</code> is false, the linear extrusion Z range is from 0 to height;
if it is true, the range is …</p></div>
</dd>
<dt id="openscad_py.collection.Collection.intersection"><code class="name flex">
<span>def <span class="ident">intersection</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.intersection" href="object_.html#openscad_py.object_.Object.intersection">intersection</a></code>
</p>
<div class="desc inherited"><p>Get the intersection of self and an object of list of objects, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.collection.Collection.move"><code class="name flex">
<span>def <span class="ident">move</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.move" href="object_.html#openscad_py.object_.Object.move">move</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object. Synonym of <code>translate()</code></p></div>
</dd>
<dt id="openscad_py.collection.Collection.radial_offset"><code class="name flex">
<span>def <span class="ident">radial_offset</span></span>(<span>self, r)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.radial_offset" href="object_.html#openscad_py.object_.Object.radial_offset">radial_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.collection.Collection.render"><code class="name flex">
<span>def <span class="ident">render</span></span>(<span>self) > str</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.render" href="object_.html#openscad_py.object_.Object.render">render</a></code>
</p>
<div class="desc inherited"><p>Render the object into OpenSCAD code</p></div>
</dd>
<dt id="openscad_py.collection.Collection.rotate"><code class="name flex">
<span>def <span class="ident">rotate</span></span>(<span>self,<br>a,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate" href="object_.html#openscad_py.object_.Object.rotate">rotate</a></code>
</p>
<div class="desc inherited"><p>Apply a rotation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate</a></p></div>
</dd>
<dt id="openscad_py.collection.Collection.rotate_extrude"><code class="name flex">
<span>def <span class="ident">rotate_extrude</span></span>(<span>self, angle, convexity=10) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate_extrude" href="object_.html#openscad_py.object_.Object.rotate_extrude">rotate_extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a rotational extrusion and return a new object. For all points x &gt;= 0 must be true.
See …</p></div>
</dd>
<dt id="openscad_py.collection.Collection.scale"><code class="name flex">
<span>def <span class="ident">scale</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a> | float) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.scale" href="object_.html#openscad_py.object_.Object.scale">scale</a></code>
</p>
<div class="desc inherited"><p>Apply scaling and return a new object. Accepts a vector (a Point object or a list of floats)
or a single float for uniform scaling.
See …</p></div>
</dd>
<dt id="openscad_py.collection.Collection.translate"><code class="name flex">
<span>def <span class="ident">translate</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.translate" href="object_.html#openscad_py.object_.Object.translate">translate</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate</a></p></div>
</dd>
<dt id="openscad_py.collection.Collection.union"><code class="name flex">
<span>def <span class="ident">union</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.union" href="object_.html#openscad_py.object_.Object.union">union</a></code>
</p>
<div class="desc inherited"><p>Form the union of self and an object or list of objects, and return a new object.
See …</p></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="openscad_py" href="index.html">openscad_py</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="openscad_py.collection.Collection" href="#openscad_py.collection.Collection">Collection</a></code></h4>
<ul class="two-column">
<li><code><a title="openscad_py.collection.Collection.c" href="#openscad_py.collection.Collection.c">c</a></code></li>
<li><code><a title="openscad_py.collection.Collection.color" href="object_.html#openscad_py.collection.Collection.color">color</a></code></li>
<li><code><a title="openscad_py.collection.Collection.delta_offset" href="object_.html#openscad_py.collection.Collection.delta_offset">delta_offset</a></code></li>
<li><code><a title="openscad_py.collection.Collection.diff" href="object_.html#openscad_py.collection.Collection.diff">diff</a></code></li>
<li><code><a title="openscad_py.collection.Collection.extrude" href="object_.html#openscad_py.collection.Collection.extrude">extrude</a></code></li>
<li><code><a title="openscad_py.collection.Collection.intersection" href="object_.html#openscad_py.collection.Collection.intersection">intersection</a></code></li>
<li><code><a title="openscad_py.collection.Collection.move" href="object_.html#openscad_py.collection.Collection.move">move</a></code></li>
<li><code><a title="openscad_py.collection.Collection.radial_offset" href="object_.html#openscad_py.collection.Collection.radial_offset">radial_offset</a></code></li>
<li><code><a title="openscad_py.collection.Collection.render" href="#openscad_py.collection.Collection.render">render</a></code></li>
<li><code><a title="openscad_py.collection.Collection.rotate" href="object_.html#openscad_py.collection.Collection.rotate">rotate</a></code></li>
<li><code><a title="openscad_py.collection.Collection.rotate_extrude" href="object_.html#openscad_py.collection.Collection.rotate_extrude">rotate_extrude</a></code></li>
<li><code><a title="openscad_py.collection.Collection.scale" href="object_.html#openscad_py.collection.Collection.scale">scale</a></code></li>
<li><code><a title="openscad_py.collection.Collection.translate" href="object_.html#openscad_py.collection.Collection.translate">translate</a></code></li>
<li><code><a title="openscad_py.collection.Collection.union" href="object_.html#openscad_py.collection.Collection.union">union</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -1,255 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py.color API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>openscad_py.color</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="openscad_py.color.Color"><code class="flex name class">
<span>class <span class="ident">Color</span></span>
<span>(</span><span>child: <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>,<br>r: float,<br>g: float,<br>b: float,<br>a: float = 1.0)</span>
</code></dt>
<dd>
<div class="desc"><p>Represents a color applied to an object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color</a></p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class Color(Object):
&#34;&#34;&#34;Represents a color applied to an object.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color
&#34;&#34;&#34;
def __init__(self, child: Object, r: float, g: float, b: float, a: float = 1.):
self.color = [r, g, b, a]
self.child = child
def render(self) -&gt; str:
&#34;&#34;&#34;Render the object into OpenSCAD code&#34;&#34;&#34;
return f&#34;color(c=[{&#39;,&#39;.join([str(c) for c in self.color])}]){{ {self.child.render()} }}&#34;</code></pre>
</details>
<h3>Ancestors</h3>
<ul class="hlist">
<li><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></li>
</ul>
<h3>Methods</h3>
<dl>
<dt id="openscad_py.color.Color.color"><code class="name flex">
<span>def <span class="ident">color</span></span>(<span>self, r, g, b, a=1.0) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.color" href="object_.html#openscad_py.object_.Object.color">color</a></code>
</p>
<div class="desc inherited"><p>Apply a color and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color</a></p></div>
</dd>
<dt id="openscad_py.color.Color.delta_offset"><code class="name flex">
<span>def <span class="ident">delta_offset</span></span>(<span>self, delta, chamfer=False)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.delta_offset" href="object_.html#openscad_py.object_.Object.delta_offset">delta_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.color.Color.diff"><code class="name flex">
<span>def <span class="ident">diff</span></span>(<span>self,<br>tool: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.diff" href="object_.html#openscad_py.object_.Object.diff">diff</a></code>
</p>
<div class="desc inherited"><p>Remove from the object using a difference operator, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.color.Color.extrude"><code class="name flex">
<span>def <span class="ident">extrude</span></span>(<span>self, height, convexity=10, center: bool = False) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.extrude" href="object_.html#openscad_py.object_.Object.extrude">extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a linear extrusion and return a new object.
If <code>center</code> is false, the linear extrusion Z range is from 0 to height;
if it is true, the range is …</p></div>
</dd>
<dt id="openscad_py.color.Color.intersection"><code class="name flex">
<span>def <span class="ident">intersection</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.intersection" href="object_.html#openscad_py.object_.Object.intersection">intersection</a></code>
</p>
<div class="desc inherited"><p>Get the intersection of self and an object of list of objects, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.color.Color.move"><code class="name flex">
<span>def <span class="ident">move</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.move" href="object_.html#openscad_py.object_.Object.move">move</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object. Synonym of <code>translate()</code></p></div>
</dd>
<dt id="openscad_py.color.Color.radial_offset"><code class="name flex">
<span>def <span class="ident">radial_offset</span></span>(<span>self, r)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.radial_offset" href="object_.html#openscad_py.object_.Object.radial_offset">radial_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.color.Color.render"><code class="name flex">
<span>def <span class="ident">render</span></span>(<span>self) > str</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.render" href="object_.html#openscad_py.object_.Object.render">render</a></code>
</p>
<div class="desc inherited"><p>Render the object into OpenSCAD code</p></div>
</dd>
<dt id="openscad_py.color.Color.rotate"><code class="name flex">
<span>def <span class="ident">rotate</span></span>(<span>self,<br>a,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate" href="object_.html#openscad_py.object_.Object.rotate">rotate</a></code>
</p>
<div class="desc inherited"><p>Apply a rotation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate</a></p></div>
</dd>
<dt id="openscad_py.color.Color.rotate_extrude"><code class="name flex">
<span>def <span class="ident">rotate_extrude</span></span>(<span>self, angle, convexity=10) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate_extrude" href="object_.html#openscad_py.object_.Object.rotate_extrude">rotate_extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a rotational extrusion and return a new object. For all points x &gt;= 0 must be true.
See …</p></div>
</dd>
<dt id="openscad_py.color.Color.scale"><code class="name flex">
<span>def <span class="ident">scale</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a> | float) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.scale" href="object_.html#openscad_py.object_.Object.scale">scale</a></code>
</p>
<div class="desc inherited"><p>Apply scaling and return a new object. Accepts a vector (a Point object or a list of floats)
or a single float for uniform scaling.
See …</p></div>
</dd>
<dt id="openscad_py.color.Color.translate"><code class="name flex">
<span>def <span class="ident">translate</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.translate" href="object_.html#openscad_py.object_.Object.translate">translate</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate</a></p></div>
</dd>
<dt id="openscad_py.color.Color.union"><code class="name flex">
<span>def <span class="ident">union</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.union" href="object_.html#openscad_py.object_.Object.union">union</a></code>
</p>
<div class="desc inherited"><p>Form the union of self and an object or list of objects, and return a new object.
See …</p></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="openscad_py" href="index.html">openscad_py</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="openscad_py.color.Color" href="#openscad_py.color.Color">Color</a></code></h4>
<ul class="two-column">
<li><code><a title="openscad_py.color.Color.color" href="object_.html#openscad_py.color.Color.color">color</a></code></li>
<li><code><a title="openscad_py.color.Color.delta_offset" href="object_.html#openscad_py.color.Color.delta_offset">delta_offset</a></code></li>
<li><code><a title="openscad_py.color.Color.diff" href="object_.html#openscad_py.color.Color.diff">diff</a></code></li>
<li><code><a title="openscad_py.color.Color.extrude" href="object_.html#openscad_py.color.Color.extrude">extrude</a></code></li>
<li><code><a title="openscad_py.color.Color.intersection" href="object_.html#openscad_py.color.Color.intersection">intersection</a></code></li>
<li><code><a title="openscad_py.color.Color.move" href="object_.html#openscad_py.color.Color.move">move</a></code></li>
<li><code><a title="openscad_py.color.Color.radial_offset" href="object_.html#openscad_py.color.Color.radial_offset">radial_offset</a></code></li>
<li><code><a title="openscad_py.color.Color.render" href="#openscad_py.color.Color.render">render</a></code></li>
<li><code><a title="openscad_py.color.Color.rotate" href="object_.html#openscad_py.color.Color.rotate">rotate</a></code></li>
<li><code><a title="openscad_py.color.Color.rotate_extrude" href="object_.html#openscad_py.color.Color.rotate_extrude">rotate_extrude</a></code></li>
<li><code><a title="openscad_py.color.Color.scale" href="object_.html#openscad_py.color.Color.scale">scale</a></code></li>
<li><code><a title="openscad_py.color.Color.translate" href="object_.html#openscad_py.color.Color.translate">translate</a></code></li>
<li><code><a title="openscad_py.color.Color.union" href="object_.html#openscad_py.color.Color.union">union</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -1,258 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py.cube API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>openscad_py.cube</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="openscad_py.cube.Cube"><code class="flex name class">
<span>class <span class="ident">Cube</span></span>
<span>(</span><span>size: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>,<br>center: bool = False)</span>
</code></dt>
<dd>
<div class="desc"><p>A 3D primitive, cube.
Creates a cube in the first octant. When center is true, the cube is centered on the origin.</p>
<p>See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#cube">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#cube</a></p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class Cube(Object):
&#34;&#34;&#34;A 3D primitive, cube.
Creates a cube in the first octant. When center is true, the cube is centered on the origin.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#cube
&#34;&#34;&#34;
def __init__(self, size: TUnion[list, Point], center: bool = False):
self.size = Point.c(size)
self.center = center
def render(self):
&#34;&#34;&#34;Render the object into OpenSCAD code&#34;&#34;&#34;
return f&#34;cube(size={self.size.render()}, center={self._center()});&#34;</code></pre>
</details>
<h3>Ancestors</h3>
<ul class="hlist">
<li><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></li>
</ul>
<h3>Methods</h3>
<dl>
<dt id="openscad_py.cube.Cube.color"><code class="name flex">
<span>def <span class="ident">color</span></span>(<span>self, r, g, b, a=1.0) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.color" href="object_.html#openscad_py.object_.Object.color">color</a></code>
</p>
<div class="desc inherited"><p>Apply a color and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color</a></p></div>
</dd>
<dt id="openscad_py.cube.Cube.delta_offset"><code class="name flex">
<span>def <span class="ident">delta_offset</span></span>(<span>self, delta, chamfer=False)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.delta_offset" href="object_.html#openscad_py.object_.Object.delta_offset">delta_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.cube.Cube.diff"><code class="name flex">
<span>def <span class="ident">diff</span></span>(<span>self,<br>tool: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.diff" href="object_.html#openscad_py.object_.Object.diff">diff</a></code>
</p>
<div class="desc inherited"><p>Remove from the object using a difference operator, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.cube.Cube.extrude"><code class="name flex">
<span>def <span class="ident">extrude</span></span>(<span>self, height, convexity=10, center: bool = False) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.extrude" href="object_.html#openscad_py.object_.Object.extrude">extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a linear extrusion and return a new object.
If <code>center</code> is false, the linear extrusion Z range is from 0 to height;
if it is true, the range is …</p></div>
</dd>
<dt id="openscad_py.cube.Cube.intersection"><code class="name flex">
<span>def <span class="ident">intersection</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.intersection" href="object_.html#openscad_py.object_.Object.intersection">intersection</a></code>
</p>
<div class="desc inherited"><p>Get the intersection of self and an object of list of objects, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.cube.Cube.move"><code class="name flex">
<span>def <span class="ident">move</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.move" href="object_.html#openscad_py.object_.Object.move">move</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object. Synonym of <code>translate()</code></p></div>
</dd>
<dt id="openscad_py.cube.Cube.radial_offset"><code class="name flex">
<span>def <span class="ident">radial_offset</span></span>(<span>self, r)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.radial_offset" href="object_.html#openscad_py.object_.Object.radial_offset">radial_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.cube.Cube.render"><code class="name flex">
<span>def <span class="ident">render</span></span>(<span>self)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.render" href="object_.html#openscad_py.object_.Object.render">render</a></code>
</p>
<div class="desc inherited"><p>Render the object into OpenSCAD code</p></div>
</dd>
<dt id="openscad_py.cube.Cube.rotate"><code class="name flex">
<span>def <span class="ident">rotate</span></span>(<span>self,<br>a,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate" href="object_.html#openscad_py.object_.Object.rotate">rotate</a></code>
</p>
<div class="desc inherited"><p>Apply a rotation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate</a></p></div>
</dd>
<dt id="openscad_py.cube.Cube.rotate_extrude"><code class="name flex">
<span>def <span class="ident">rotate_extrude</span></span>(<span>self, angle, convexity=10) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate_extrude" href="object_.html#openscad_py.object_.Object.rotate_extrude">rotate_extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a rotational extrusion and return a new object. For all points x &gt;= 0 must be true.
See …</p></div>
</dd>
<dt id="openscad_py.cube.Cube.scale"><code class="name flex">
<span>def <span class="ident">scale</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a> | float) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.scale" href="object_.html#openscad_py.object_.Object.scale">scale</a></code>
</p>
<div class="desc inherited"><p>Apply scaling and return a new object. Accepts a vector (a Point object or a list of floats)
or a single float for uniform scaling.
See …</p></div>
</dd>
<dt id="openscad_py.cube.Cube.translate"><code class="name flex">
<span>def <span class="ident">translate</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.translate" href="object_.html#openscad_py.object_.Object.translate">translate</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate</a></p></div>
</dd>
<dt id="openscad_py.cube.Cube.union"><code class="name flex">
<span>def <span class="ident">union</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.union" href="object_.html#openscad_py.object_.Object.union">union</a></code>
</p>
<div class="desc inherited"><p>Form the union of self and an object or list of objects, and return a new object.
See …</p></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="openscad_py" href="index.html">openscad_py</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="openscad_py.cube.Cube" href="#openscad_py.cube.Cube">Cube</a></code></h4>
<ul class="two-column">
<li><code><a title="openscad_py.cube.Cube.color" href="object_.html#openscad_py.cube.Cube.color">color</a></code></li>
<li><code><a title="openscad_py.cube.Cube.delta_offset" href="object_.html#openscad_py.cube.Cube.delta_offset">delta_offset</a></code></li>
<li><code><a title="openscad_py.cube.Cube.diff" href="object_.html#openscad_py.cube.Cube.diff">diff</a></code></li>
<li><code><a title="openscad_py.cube.Cube.extrude" href="object_.html#openscad_py.cube.Cube.extrude">extrude</a></code></li>
<li><code><a title="openscad_py.cube.Cube.intersection" href="object_.html#openscad_py.cube.Cube.intersection">intersection</a></code></li>
<li><code><a title="openscad_py.cube.Cube.move" href="object_.html#openscad_py.cube.Cube.move">move</a></code></li>
<li><code><a title="openscad_py.cube.Cube.radial_offset" href="object_.html#openscad_py.cube.Cube.radial_offset">radial_offset</a></code></li>
<li><code><a title="openscad_py.cube.Cube.render" href="#openscad_py.cube.Cube.render">render</a></code></li>
<li><code><a title="openscad_py.cube.Cube.rotate" href="object_.html#openscad_py.cube.Cube.rotate">rotate</a></code></li>
<li><code><a title="openscad_py.cube.Cube.rotate_extrude" href="object_.html#openscad_py.cube.Cube.rotate_extrude">rotate_extrude</a></code></li>
<li><code><a title="openscad_py.cube.Cube.scale" href="object_.html#openscad_py.cube.Cube.scale">scale</a></code></li>
<li><code><a title="openscad_py.cube.Cube.translate" href="object_.html#openscad_py.cube.Cube.translate">translate</a></code></li>
<li><code><a title="openscad_py.cube.Cube.union" href="object_.html#openscad_py.cube.Cube.union">union</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -1,292 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py.cylinder API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>openscad_py.cylinder</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="openscad_py.cylinder.Cylinder"><code class="flex name class">
<span>class <span class="ident">Cylinder</span></span>
<span>(</span><span>h, r=None, r1=None, r2=None, center: bool = False)</span>
</code></dt>
<dd>
<div class="desc"><p>A 3D primitive, cylinder.
Creates a cylinder or cone centered about the z axis. When center is true, it is also centered vertically along the z axis.</p>
<p>See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#cylinder">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#cylinder</a></p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class Cylinder(Object):
&#34;&#34;&#34;A 3D primitive, cylinder.
Creates a cylinder or cone centered about the z axis. When center is true, it is also centered vertically along the z axis.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#cylinder
&#34;&#34;&#34;
def __init__(self, h, r=None, r1=None, r2=None, center: bool = False):
self.height = h
self.r1 = r if r1 is None else r1
self.r2 = r if r2 is None else r2
self.center = center
# $fa, $fs, $fn
def render(self):
&#34;&#34;&#34;Render the object into OpenSCAD code&#34;&#34;&#34;
return f&#34;cylinder(h={self.height}, r1={self.r1}, r2={self.r2}, center={self._center()});&#34;
@classmethod
def from_ends(cls, radius: float, p1: TUnion[list, Point], p2: TUnion[list, Point]) -&gt; Object:
&#34;&#34;&#34;Construct a cylinder between two points&#34;&#34;&#34;
p1 = Point.c(p1)
p2 = Point.c(p2)
v = p2.sub(p1)
length = v.length()
assert length != 0
z = Point([0, 0, 1])
r = z.cross(v)
rangle = v.angle(z)
if r.length() == 0:
# The cylinder is in the Z direction
if abs(abs(rangle) - 180.) &lt; .1:
p1 = p2
rangle = 0
r = z
else:
r = r.norm()
return cls(h=length, r=radius, center=False).rotate(a=rangle, v=r).move(p1)</code></pre>
</details>
<h3>Ancestors</h3>
<ul class="hlist">
<li><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></li>
</ul>
<h3>Static methods</h3>
<dl>
<dt id="openscad_py.cylinder.Cylinder.from_ends"><code class="name flex">
<span>def <span class="ident">from_ends</span></span>(<span>radius: float,<br>p1: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>,<br>p2: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<div class="desc"><p>Construct a cylinder between two points</p></div>
</dd>
</dl>
<h3>Methods</h3>
<dl>
<dt id="openscad_py.cylinder.Cylinder.color"><code class="name flex">
<span>def <span class="ident">color</span></span>(<span>self, r, g, b, a=1.0) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.color" href="object_.html#openscad_py.object_.Object.color">color</a></code>
</p>
<div class="desc inherited"><p>Apply a color and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color</a></p></div>
</dd>
<dt id="openscad_py.cylinder.Cylinder.delta_offset"><code class="name flex">
<span>def <span class="ident">delta_offset</span></span>(<span>self, delta, chamfer=False)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.delta_offset" href="object_.html#openscad_py.object_.Object.delta_offset">delta_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.cylinder.Cylinder.diff"><code class="name flex">
<span>def <span class="ident">diff</span></span>(<span>self,<br>tool: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.diff" href="object_.html#openscad_py.object_.Object.diff">diff</a></code>
</p>
<div class="desc inherited"><p>Remove from the object using a difference operator, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.cylinder.Cylinder.extrude"><code class="name flex">
<span>def <span class="ident">extrude</span></span>(<span>self, height, convexity=10, center: bool = False) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.extrude" href="object_.html#openscad_py.object_.Object.extrude">extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a linear extrusion and return a new object.
If <code>center</code> is false, the linear extrusion Z range is from 0 to height;
if it is true, the range is …</p></div>
</dd>
<dt id="openscad_py.cylinder.Cylinder.intersection"><code class="name flex">
<span>def <span class="ident">intersection</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.intersection" href="object_.html#openscad_py.object_.Object.intersection">intersection</a></code>
</p>
<div class="desc inherited"><p>Get the intersection of self and an object of list of objects, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.cylinder.Cylinder.move"><code class="name flex">
<span>def <span class="ident">move</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.move" href="object_.html#openscad_py.object_.Object.move">move</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object. Synonym of <code>translate()</code></p></div>
</dd>
<dt id="openscad_py.cylinder.Cylinder.radial_offset"><code class="name flex">
<span>def <span class="ident">radial_offset</span></span>(<span>self, r)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.radial_offset" href="object_.html#openscad_py.object_.Object.radial_offset">radial_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.cylinder.Cylinder.render"><code class="name flex">
<span>def <span class="ident">render</span></span>(<span>self)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.render" href="object_.html#openscad_py.object_.Object.render">render</a></code>
</p>
<div class="desc inherited"><p>Render the object into OpenSCAD code</p></div>
</dd>
<dt id="openscad_py.cylinder.Cylinder.rotate"><code class="name flex">
<span>def <span class="ident">rotate</span></span>(<span>self,<br>a,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate" href="object_.html#openscad_py.object_.Object.rotate">rotate</a></code>
</p>
<div class="desc inherited"><p>Apply a rotation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate</a></p></div>
</dd>
<dt id="openscad_py.cylinder.Cylinder.rotate_extrude"><code class="name flex">
<span>def <span class="ident">rotate_extrude</span></span>(<span>self, angle, convexity=10) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate_extrude" href="object_.html#openscad_py.object_.Object.rotate_extrude">rotate_extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a rotational extrusion and return a new object. For all points x &gt;= 0 must be true.
See …</p></div>
</dd>
<dt id="openscad_py.cylinder.Cylinder.scale"><code class="name flex">
<span>def <span class="ident">scale</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a> | float) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.scale" href="object_.html#openscad_py.object_.Object.scale">scale</a></code>
</p>
<div class="desc inherited"><p>Apply scaling and return a new object. Accepts a vector (a Point object or a list of floats)
or a single float for uniform scaling.
See …</p></div>
</dd>
<dt id="openscad_py.cylinder.Cylinder.translate"><code class="name flex">
<span>def <span class="ident">translate</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.translate" href="object_.html#openscad_py.object_.Object.translate">translate</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate</a></p></div>
</dd>
<dt id="openscad_py.cylinder.Cylinder.union"><code class="name flex">
<span>def <span class="ident">union</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.union" href="object_.html#openscad_py.object_.Object.union">union</a></code>
</p>
<div class="desc inherited"><p>Form the union of self and an object or list of objects, and return a new object.
See …</p></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="openscad_py" href="index.html">openscad_py</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="openscad_py.cylinder.Cylinder" href="#openscad_py.cylinder.Cylinder">Cylinder</a></code></h4>
<ul class="two-column">
<li><code><a title="openscad_py.cylinder.Cylinder.color" href="object_.html#openscad_py.cylinder.Cylinder.color">color</a></code></li>
<li><code><a title="openscad_py.cylinder.Cylinder.delta_offset" href="object_.html#openscad_py.cylinder.Cylinder.delta_offset">delta_offset</a></code></li>
<li><code><a title="openscad_py.cylinder.Cylinder.diff" href="object_.html#openscad_py.cylinder.Cylinder.diff">diff</a></code></li>
<li><code><a title="openscad_py.cylinder.Cylinder.extrude" href="object_.html#openscad_py.cylinder.Cylinder.extrude">extrude</a></code></li>
<li><code><a title="openscad_py.cylinder.Cylinder.from_ends" href="#openscad_py.cylinder.Cylinder.from_ends">from_ends</a></code></li>
<li><code><a title="openscad_py.cylinder.Cylinder.intersection" href="object_.html#openscad_py.cylinder.Cylinder.intersection">intersection</a></code></li>
<li><code><a title="openscad_py.cylinder.Cylinder.move" href="object_.html#openscad_py.cylinder.Cylinder.move">move</a></code></li>
<li><code><a title="openscad_py.cylinder.Cylinder.radial_offset" href="object_.html#openscad_py.cylinder.Cylinder.radial_offset">radial_offset</a></code></li>
<li><code><a title="openscad_py.cylinder.Cylinder.render" href="#openscad_py.cylinder.Cylinder.render">render</a></code></li>
<li><code><a title="openscad_py.cylinder.Cylinder.rotate" href="object_.html#openscad_py.cylinder.Cylinder.rotate">rotate</a></code></li>
<li><code><a title="openscad_py.cylinder.Cylinder.rotate_extrude" href="object_.html#openscad_py.cylinder.Cylinder.rotate_extrude">rotate_extrude</a></code></li>
<li><code><a title="openscad_py.cylinder.Cylinder.scale" href="object_.html#openscad_py.cylinder.Cylinder.scale">scale</a></code></li>
<li><code><a title="openscad_py.cylinder.Cylinder.translate" href="object_.html#openscad_py.cylinder.Cylinder.translate">translate</a></code></li>
<li><code><a title="openscad_py.cylinder.Cylinder.union" href="object_.html#openscad_py.cylinder.Cylinder.union">union</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -1,257 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py.delta_offset API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>openscad_py.delta_offset</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="openscad_py.delta_offset.DeltaOffset"><code class="flex name class">
<span>class <span class="ident">DeltaOffset</span></span>
<span>(</span><span>delta,<br>child: <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>,<br>chamfer: bool = False)</span>
</code></dt>
<dd>
<div class="desc"><p>A new 2d interior or exterior outline from an existing outline</p>
<p>See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class DeltaOffset(Object):
&#34;&#34;&#34;A new 2d interior or exterior outline from an existing outline
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset
&#34;&#34;&#34;
def __init__(self, delta, child: Object, chamfer: bool = False):
self.delta = delta
self.child = child
self.chamfer = chamfer
def render(self) -&gt; str:
&#34;&#34;&#34;Render the object into OpenSCAD code&#34;&#34;&#34;
return f&#34;offset(delta={delta}, chamfer={&#39;true&#39; if self.chamfer else &#39;false&#39;}){{\n{self.child.render()}\n}}&#34;</code></pre>
</details>
<h3>Ancestors</h3>
<ul class="hlist">
<li><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></li>
</ul>
<h3>Methods</h3>
<dl>
<dt id="openscad_py.delta_offset.DeltaOffset.color"><code class="name flex">
<span>def <span class="ident">color</span></span>(<span>self, r, g, b, a=1.0) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.color" href="object_.html#openscad_py.object_.Object.color">color</a></code>
</p>
<div class="desc inherited"><p>Apply a color and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color</a></p></div>
</dd>
<dt id="openscad_py.delta_offset.DeltaOffset.delta_offset"><code class="name flex">
<span>def <span class="ident">delta_offset</span></span>(<span>self, delta, chamfer=False)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.delta_offset" href="object_.html#openscad_py.object_.Object.delta_offset">delta_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.delta_offset.DeltaOffset.diff"><code class="name flex">
<span>def <span class="ident">diff</span></span>(<span>self,<br>tool: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.diff" href="object_.html#openscad_py.object_.Object.diff">diff</a></code>
</p>
<div class="desc inherited"><p>Remove from the object using a difference operator, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.delta_offset.DeltaOffset.extrude"><code class="name flex">
<span>def <span class="ident">extrude</span></span>(<span>self, height, convexity=10, center: bool = False) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.extrude" href="object_.html#openscad_py.object_.Object.extrude">extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a linear extrusion and return a new object.
If <code>center</code> is false, the linear extrusion Z range is from 0 to height;
if it is true, the range is …</p></div>
</dd>
<dt id="openscad_py.delta_offset.DeltaOffset.intersection"><code class="name flex">
<span>def <span class="ident">intersection</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.intersection" href="object_.html#openscad_py.object_.Object.intersection">intersection</a></code>
</p>
<div class="desc inherited"><p>Get the intersection of self and an object of list of objects, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.delta_offset.DeltaOffset.move"><code class="name flex">
<span>def <span class="ident">move</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.move" href="object_.html#openscad_py.object_.Object.move">move</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object. Synonym of <code>translate()</code></p></div>
</dd>
<dt id="openscad_py.delta_offset.DeltaOffset.radial_offset"><code class="name flex">
<span>def <span class="ident">radial_offset</span></span>(<span>self, r)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.radial_offset" href="object_.html#openscad_py.object_.Object.radial_offset">radial_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.delta_offset.DeltaOffset.render"><code class="name flex">
<span>def <span class="ident">render</span></span>(<span>self) > str</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.render" href="object_.html#openscad_py.object_.Object.render">render</a></code>
</p>
<div class="desc inherited"><p>Render the object into OpenSCAD code</p></div>
</dd>
<dt id="openscad_py.delta_offset.DeltaOffset.rotate"><code class="name flex">
<span>def <span class="ident">rotate</span></span>(<span>self,<br>a,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate" href="object_.html#openscad_py.object_.Object.rotate">rotate</a></code>
</p>
<div class="desc inherited"><p>Apply a rotation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate</a></p></div>
</dd>
<dt id="openscad_py.delta_offset.DeltaOffset.rotate_extrude"><code class="name flex">
<span>def <span class="ident">rotate_extrude</span></span>(<span>self, angle, convexity=10) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate_extrude" href="object_.html#openscad_py.object_.Object.rotate_extrude">rotate_extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a rotational extrusion and return a new object. For all points x &gt;= 0 must be true.
See …</p></div>
</dd>
<dt id="openscad_py.delta_offset.DeltaOffset.scale"><code class="name flex">
<span>def <span class="ident">scale</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a> | float) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.scale" href="object_.html#openscad_py.object_.Object.scale">scale</a></code>
</p>
<div class="desc inherited"><p>Apply scaling and return a new object. Accepts a vector (a Point object or a list of floats)
or a single float for uniform scaling.
See …</p></div>
</dd>
<dt id="openscad_py.delta_offset.DeltaOffset.translate"><code class="name flex">
<span>def <span class="ident">translate</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.translate" href="object_.html#openscad_py.object_.Object.translate">translate</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate</a></p></div>
</dd>
<dt id="openscad_py.delta_offset.DeltaOffset.union"><code class="name flex">
<span>def <span class="ident">union</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.union" href="object_.html#openscad_py.object_.Object.union">union</a></code>
</p>
<div class="desc inherited"><p>Form the union of self and an object or list of objects, and return a new object.
See …</p></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="openscad_py" href="index.html">openscad_py</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="openscad_py.delta_offset.DeltaOffset" href="#openscad_py.delta_offset.DeltaOffset">DeltaOffset</a></code></h4>
<ul class="two-column">
<li><code><a title="openscad_py.delta_offset.DeltaOffset.color" href="object_.html#openscad_py.delta_offset.DeltaOffset.color">color</a></code></li>
<li><code><a title="openscad_py.delta_offset.DeltaOffset.delta_offset" href="object_.html#openscad_py.delta_offset.DeltaOffset.delta_offset">delta_offset</a></code></li>
<li><code><a title="openscad_py.delta_offset.DeltaOffset.diff" href="object_.html#openscad_py.delta_offset.DeltaOffset.diff">diff</a></code></li>
<li><code><a title="openscad_py.delta_offset.DeltaOffset.extrude" href="object_.html#openscad_py.delta_offset.DeltaOffset.extrude">extrude</a></code></li>
<li><code><a title="openscad_py.delta_offset.DeltaOffset.intersection" href="object_.html#openscad_py.delta_offset.DeltaOffset.intersection">intersection</a></code></li>
<li><code><a title="openscad_py.delta_offset.DeltaOffset.move" href="object_.html#openscad_py.delta_offset.DeltaOffset.move">move</a></code></li>
<li><code><a title="openscad_py.delta_offset.DeltaOffset.radial_offset" href="object_.html#openscad_py.delta_offset.DeltaOffset.radial_offset">radial_offset</a></code></li>
<li><code><a title="openscad_py.delta_offset.DeltaOffset.render" href="#openscad_py.delta_offset.DeltaOffset.render">render</a></code></li>
<li><code><a title="openscad_py.delta_offset.DeltaOffset.rotate" href="object_.html#openscad_py.delta_offset.DeltaOffset.rotate">rotate</a></code></li>
<li><code><a title="openscad_py.delta_offset.DeltaOffset.rotate_extrude" href="object_.html#openscad_py.delta_offset.DeltaOffset.rotate_extrude">rotate_extrude</a></code></li>
<li><code><a title="openscad_py.delta_offset.DeltaOffset.scale" href="object_.html#openscad_py.delta_offset.DeltaOffset.scale">scale</a></code></li>
<li><code><a title="openscad_py.delta_offset.DeltaOffset.translate" href="object_.html#openscad_py.delta_offset.DeltaOffset.translate">translate</a></code></li>
<li><code><a title="openscad_py.delta_offset.DeltaOffset.union" href="object_.html#openscad_py.delta_offset.DeltaOffset.union">union</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -1,255 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py.difference API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>openscad_py.difference</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="openscad_py.difference.Difference"><code class="flex name class">
<span>class <span class="ident">Difference</span></span>
<span>(</span><span>subject: <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>,<br>tool: list | <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>)</span>
</code></dt>
<dd>
<div class="desc"><p>Represents a difference.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#difference">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#difference</a></p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class Difference(Object):
&#34;&#34;&#34;Represents a difference.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#difference
&#34;&#34;&#34;
def __init__(self, subject: Object, tool: TUnion[list, Object]):
self.subject = subject
self.tool = Collection.c(tool) # what to remove
def render(self) -&gt; str:
&#34;&#34;&#34;Render the object into OpenSCAD code&#34;&#34;&#34;
return f&#34;difference(){{ {self.subject.render()}\n{self.tool.render()} }}&#34;</code></pre>
</details>
<h3>Ancestors</h3>
<ul class="hlist">
<li><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></li>
</ul>
<h3>Methods</h3>
<dl>
<dt id="openscad_py.difference.Difference.color"><code class="name flex">
<span>def <span class="ident">color</span></span>(<span>self, r, g, b, a=1.0) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.color" href="object_.html#openscad_py.object_.Object.color">color</a></code>
</p>
<div class="desc inherited"><p>Apply a color and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color</a></p></div>
</dd>
<dt id="openscad_py.difference.Difference.delta_offset"><code class="name flex">
<span>def <span class="ident">delta_offset</span></span>(<span>self, delta, chamfer=False)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.delta_offset" href="object_.html#openscad_py.object_.Object.delta_offset">delta_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.difference.Difference.diff"><code class="name flex">
<span>def <span class="ident">diff</span></span>(<span>self,<br>tool: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.diff" href="object_.html#openscad_py.object_.Object.diff">diff</a></code>
</p>
<div class="desc inherited"><p>Remove from the object using a difference operator, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.difference.Difference.extrude"><code class="name flex">
<span>def <span class="ident">extrude</span></span>(<span>self, height, convexity=10, center: bool = False) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.extrude" href="object_.html#openscad_py.object_.Object.extrude">extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a linear extrusion and return a new object.
If <code>center</code> is false, the linear extrusion Z range is from 0 to height;
if it is true, the range is …</p></div>
</dd>
<dt id="openscad_py.difference.Difference.intersection"><code class="name flex">
<span>def <span class="ident">intersection</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.intersection" href="object_.html#openscad_py.object_.Object.intersection">intersection</a></code>
</p>
<div class="desc inherited"><p>Get the intersection of self and an object of list of objects, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.difference.Difference.move"><code class="name flex">
<span>def <span class="ident">move</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.move" href="object_.html#openscad_py.object_.Object.move">move</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object. Synonym of <code>translate()</code></p></div>
</dd>
<dt id="openscad_py.difference.Difference.radial_offset"><code class="name flex">
<span>def <span class="ident">radial_offset</span></span>(<span>self, r)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.radial_offset" href="object_.html#openscad_py.object_.Object.radial_offset">radial_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.difference.Difference.render"><code class="name flex">
<span>def <span class="ident">render</span></span>(<span>self) > str</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.render" href="object_.html#openscad_py.object_.Object.render">render</a></code>
</p>
<div class="desc inherited"><p>Render the object into OpenSCAD code</p></div>
</dd>
<dt id="openscad_py.difference.Difference.rotate"><code class="name flex">
<span>def <span class="ident">rotate</span></span>(<span>self,<br>a,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate" href="object_.html#openscad_py.object_.Object.rotate">rotate</a></code>
</p>
<div class="desc inherited"><p>Apply a rotation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate</a></p></div>
</dd>
<dt id="openscad_py.difference.Difference.rotate_extrude"><code class="name flex">
<span>def <span class="ident">rotate_extrude</span></span>(<span>self, angle, convexity=10) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate_extrude" href="object_.html#openscad_py.object_.Object.rotate_extrude">rotate_extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a rotational extrusion and return a new object. For all points x &gt;= 0 must be true.
See …</p></div>
</dd>
<dt id="openscad_py.difference.Difference.scale"><code class="name flex">
<span>def <span class="ident">scale</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a> | float) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.scale" href="object_.html#openscad_py.object_.Object.scale">scale</a></code>
</p>
<div class="desc inherited"><p>Apply scaling and return a new object. Accepts a vector (a Point object or a list of floats)
or a single float for uniform scaling.
See …</p></div>
</dd>
<dt id="openscad_py.difference.Difference.translate"><code class="name flex">
<span>def <span class="ident">translate</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.translate" href="object_.html#openscad_py.object_.Object.translate">translate</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate</a></p></div>
</dd>
<dt id="openscad_py.difference.Difference.union"><code class="name flex">
<span>def <span class="ident">union</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.union" href="object_.html#openscad_py.object_.Object.union">union</a></code>
</p>
<div class="desc inherited"><p>Form the union of self and an object or list of objects, and return a new object.
See …</p></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="openscad_py" href="index.html">openscad_py</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="openscad_py.difference.Difference" href="#openscad_py.difference.Difference">Difference</a></code></h4>
<ul class="two-column">
<li><code><a title="openscad_py.difference.Difference.color" href="object_.html#openscad_py.difference.Difference.color">color</a></code></li>
<li><code><a title="openscad_py.difference.Difference.delta_offset" href="object_.html#openscad_py.difference.Difference.delta_offset">delta_offset</a></code></li>
<li><code><a title="openscad_py.difference.Difference.diff" href="object_.html#openscad_py.difference.Difference.diff">diff</a></code></li>
<li><code><a title="openscad_py.difference.Difference.extrude" href="object_.html#openscad_py.difference.Difference.extrude">extrude</a></code></li>
<li><code><a title="openscad_py.difference.Difference.intersection" href="object_.html#openscad_py.difference.Difference.intersection">intersection</a></code></li>
<li><code><a title="openscad_py.difference.Difference.move" href="object_.html#openscad_py.difference.Difference.move">move</a></code></li>
<li><code><a title="openscad_py.difference.Difference.radial_offset" href="object_.html#openscad_py.difference.Difference.radial_offset">radial_offset</a></code></li>
<li><code><a title="openscad_py.difference.Difference.render" href="#openscad_py.difference.Difference.render">render</a></code></li>
<li><code><a title="openscad_py.difference.Difference.rotate" href="object_.html#openscad_py.difference.Difference.rotate">rotate</a></code></li>
<li><code><a title="openscad_py.difference.Difference.rotate_extrude" href="object_.html#openscad_py.difference.Difference.rotate_extrude">rotate_extrude</a></code></li>
<li><code><a title="openscad_py.difference.Difference.scale" href="object_.html#openscad_py.difference.Difference.scale">scale</a></code></li>
<li><code><a title="openscad_py.difference.Difference.translate" href="object_.html#openscad_py.difference.Difference.translate">translate</a></code></li>
<li><code><a title="openscad_py.difference.Difference.union" href="object_.html#openscad_py.difference.Difference.union">union</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -1,107 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py.header API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>openscad_py.header</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="openscad_py.header.Header"><code class="flex name class">
<span>class <span class="ident">Header</span></span>
<span>(</span><span>quality: str = 'draft')</span>
</code></dt>
<dd>
<div class="desc"><p>Render a header (setting global values) of an OpensCAD file</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class Header:
&#34;&#34;&#34;Render a header (setting global values) of an OpensCAD file&#34;&#34;&#34;
def __init__(self, quality: str = &#39;draft&#39;):
# See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Other_Language_Features#Circle_resolution:_$fa,_$fs,_and_$fn
self.quality = quality
def render(self):
&#34;&#34;&#34;Return OpenSCAD code&#34;&#34;&#34;
if self.quality == &#39;draft&#39;:
return &#34;&#34;
if self.quality == &#39;mid&#39;:
return &#34;$fa=12;$fs=0.2;&#34;
if self.quality == &#39;best&#39;:
return &#34;$fa=6;$fs=0.1;&#34;
raise ValueError(&#34;Unknown quality&#34;)</code></pre>
</details>
<h3>Methods</h3>
<dl>
<dt id="openscad_py.header.Header.render"><code class="name flex">
<span>def <span class="ident">render</span></span>(<span>self)</span>
</code></dt>
<dd>
<div class="desc"><p>Return OpenSCAD code</p></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="openscad_py" href="index.html">openscad_py</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="openscad_py.header.Header" href="#openscad_py.header.Header">Header</a></code></h4>
<ul class="">
<li><code><a title="openscad_py.header.Header.render" href="#openscad_py.header.Header.render">render</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -1,167 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Package <code>openscad_py</code></h1>
</header>
<section id="section-intro">
</section>
<section>
<h2 class="section-title" id="header-submodules">Sub-modules</h2>
<dl>
<dt><code class="name"><a title="openscad_py.circle" href="circle.html">openscad_py.circle</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="openscad_py.collection" href="collection.html">openscad_py.collection</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="openscad_py.color" href="color.html">openscad_py.color</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="openscad_py.cube" href="cube.html">openscad_py.cube</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="openscad_py.cylinder" href="cylinder.html">openscad_py.cylinder</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="openscad_py.delta_offset" href="delta_offset.html">openscad_py.delta_offset</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="openscad_py.difference" href="difference.html">openscad_py.difference</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="openscad_py.header" href="header.html">openscad_py.header</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="openscad_py.intersection" href="intersection.html">openscad_py.intersection</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="openscad_py.linear_extrude" href="linear_extrude.html">openscad_py.linear_extrude</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="openscad_py.object_" href="object_.html">openscad_py.object_</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="openscad_py.path_tube" href="path_tube.html">openscad_py.path_tube</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="openscad_py.point" href="point.html">openscad_py.point</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="openscad_py.polygon" href="polygon.html">openscad_py.polygon</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="openscad_py.polyhedron" href="polyhedron.html">openscad_py.polyhedron</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="openscad_py.radial_offset" href="radial_offset.html">openscad_py.radial_offset</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="openscad_py.rotate" href="rotate.html">openscad_py.rotate</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="openscad_py.rotate_extrude" href="rotate_extrude.html">openscad_py.rotate_extrude</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="openscad_py.scale" href="scale.html">openscad_py.scale</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="openscad_py.sphere" href="sphere.html">openscad_py.sphere</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="openscad_py.translate" href="translate.html">openscad_py.translate</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="openscad_py.union" href="union.html">openscad_py.union</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
</dl>
</section>
<section>
</section>
<section>
</section>
<section>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3><a href="#header-submodules">Sub-modules</a></h3>
<ul>
<li><code><a title="openscad_py.circle" href="circle.html">openscad_py.circle</a></code></li>
<li><code><a title="openscad_py.collection" href="collection.html">openscad_py.collection</a></code></li>
<li><code><a title="openscad_py.color" href="color.html">openscad_py.color</a></code></li>
<li><code><a title="openscad_py.cube" href="cube.html">openscad_py.cube</a></code></li>
<li><code><a title="openscad_py.cylinder" href="cylinder.html">openscad_py.cylinder</a></code></li>
<li><code><a title="openscad_py.delta_offset" href="delta_offset.html">openscad_py.delta_offset</a></code></li>
<li><code><a title="openscad_py.difference" href="difference.html">openscad_py.difference</a></code></li>
<li><code><a title="openscad_py.header" href="header.html">openscad_py.header</a></code></li>
<li><code><a title="openscad_py.intersection" href="intersection.html">openscad_py.intersection</a></code></li>
<li><code><a title="openscad_py.linear_extrude" href="linear_extrude.html">openscad_py.linear_extrude</a></code></li>
<li><code><a title="openscad_py.object_" href="object_.html">openscad_py.object_</a></code></li>
<li><code><a title="openscad_py.path_tube" href="path_tube.html">openscad_py.path_tube</a></code></li>
<li><code><a title="openscad_py.point" href="point.html">openscad_py.point</a></code></li>
<li><code><a title="openscad_py.polygon" href="polygon.html">openscad_py.polygon</a></code></li>
<li><code><a title="openscad_py.polyhedron" href="polyhedron.html">openscad_py.polyhedron</a></code></li>
<li><code><a title="openscad_py.radial_offset" href="radial_offset.html">openscad_py.radial_offset</a></code></li>
<li><code><a title="openscad_py.rotate" href="rotate.html">openscad_py.rotate</a></code></li>
<li><code><a title="openscad_py.rotate_extrude" href="rotate_extrude.html">openscad_py.rotate_extrude</a></code></li>
<li><code><a title="openscad_py.scale" href="scale.html">openscad_py.scale</a></code></li>
<li><code><a title="openscad_py.sphere" href="sphere.html">openscad_py.sphere</a></code></li>
<li><code><a title="openscad_py.translate" href="translate.html">openscad_py.translate</a></code></li>
<li><code><a title="openscad_py.union" href="union.html">openscad_py.union</a></code></li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -1,254 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py.intersection API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>openscad_py.intersection</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="openscad_py.intersection.Intersection"><code class="flex name class">
<span>class <span class="ident">Intersection</span></span>
<span>(</span><span>child: list | <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>)</span>
</code></dt>
<dd>
<div class="desc"><p>Represents an intersection applied to an object (usually a collection of objects).
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#intersection">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#intersection</a></p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class Intersection(Object):
&#34;&#34;&#34;Represents an intersection applied to an object (usually a collection of objects).
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#intersection
&#34;&#34;&#34;
def __init__(self, child: TUnion[Object, list]):
self.child = Collection.c(child)
def render(self) -&gt; str:
&#34;&#34;&#34;Render the object into OpenSCAD code&#34;&#34;&#34;
return f&#34;intersection(){{ {self.child.render()} }}&#34;</code></pre>
</details>
<h3>Ancestors</h3>
<ul class="hlist">
<li><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></li>
</ul>
<h3>Methods</h3>
<dl>
<dt id="openscad_py.intersection.Intersection.color"><code class="name flex">
<span>def <span class="ident">color</span></span>(<span>self, r, g, b, a=1.0) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.color" href="object_.html#openscad_py.object_.Object.color">color</a></code>
</p>
<div class="desc inherited"><p>Apply a color and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color</a></p></div>
</dd>
<dt id="openscad_py.intersection.Intersection.delta_offset"><code class="name flex">
<span>def <span class="ident">delta_offset</span></span>(<span>self, delta, chamfer=False)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.delta_offset" href="object_.html#openscad_py.object_.Object.delta_offset">delta_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.intersection.Intersection.diff"><code class="name flex">
<span>def <span class="ident">diff</span></span>(<span>self,<br>tool: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.diff" href="object_.html#openscad_py.object_.Object.diff">diff</a></code>
</p>
<div class="desc inherited"><p>Remove from the object using a difference operator, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.intersection.Intersection.extrude"><code class="name flex">
<span>def <span class="ident">extrude</span></span>(<span>self, height, convexity=10, center: bool = False) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.extrude" href="object_.html#openscad_py.object_.Object.extrude">extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a linear extrusion and return a new object.
If <code>center</code> is false, the linear extrusion Z range is from 0 to height;
if it is true, the range is …</p></div>
</dd>
<dt id="openscad_py.intersection.Intersection.intersection"><code class="name flex">
<span>def <span class="ident">intersection</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.intersection" href="object_.html#openscad_py.object_.Object.intersection">intersection</a></code>
</p>
<div class="desc inherited"><p>Get the intersection of self and an object of list of objects, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.intersection.Intersection.move"><code class="name flex">
<span>def <span class="ident">move</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.move" href="object_.html#openscad_py.object_.Object.move">move</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object. Synonym of <code>translate()</code></p></div>
</dd>
<dt id="openscad_py.intersection.Intersection.radial_offset"><code class="name flex">
<span>def <span class="ident">radial_offset</span></span>(<span>self, r)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.radial_offset" href="object_.html#openscad_py.object_.Object.radial_offset">radial_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.intersection.Intersection.render"><code class="name flex">
<span>def <span class="ident">render</span></span>(<span>self) > str</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.render" href="object_.html#openscad_py.object_.Object.render">render</a></code>
</p>
<div class="desc inherited"><p>Render the object into OpenSCAD code</p></div>
</dd>
<dt id="openscad_py.intersection.Intersection.rotate"><code class="name flex">
<span>def <span class="ident">rotate</span></span>(<span>self,<br>a,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate" href="object_.html#openscad_py.object_.Object.rotate">rotate</a></code>
</p>
<div class="desc inherited"><p>Apply a rotation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate</a></p></div>
</dd>
<dt id="openscad_py.intersection.Intersection.rotate_extrude"><code class="name flex">
<span>def <span class="ident">rotate_extrude</span></span>(<span>self, angle, convexity=10) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate_extrude" href="object_.html#openscad_py.object_.Object.rotate_extrude">rotate_extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a rotational extrusion and return a new object. For all points x &gt;= 0 must be true.
See …</p></div>
</dd>
<dt id="openscad_py.intersection.Intersection.scale"><code class="name flex">
<span>def <span class="ident">scale</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a> | float) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.scale" href="object_.html#openscad_py.object_.Object.scale">scale</a></code>
</p>
<div class="desc inherited"><p>Apply scaling and return a new object. Accepts a vector (a Point object or a list of floats)
or a single float for uniform scaling.
See …</p></div>
</dd>
<dt id="openscad_py.intersection.Intersection.translate"><code class="name flex">
<span>def <span class="ident">translate</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.translate" href="object_.html#openscad_py.object_.Object.translate">translate</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate</a></p></div>
</dd>
<dt id="openscad_py.intersection.Intersection.union"><code class="name flex">
<span>def <span class="ident">union</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.union" href="object_.html#openscad_py.object_.Object.union">union</a></code>
</p>
<div class="desc inherited"><p>Form the union of self and an object or list of objects, and return a new object.
See …</p></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="openscad_py" href="index.html">openscad_py</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="openscad_py.intersection.Intersection" href="#openscad_py.intersection.Intersection">Intersection</a></code></h4>
<ul class="two-column">
<li><code><a title="openscad_py.intersection.Intersection.color" href="object_.html#openscad_py.intersection.Intersection.color">color</a></code></li>
<li><code><a title="openscad_py.intersection.Intersection.delta_offset" href="object_.html#openscad_py.intersection.Intersection.delta_offset">delta_offset</a></code></li>
<li><code><a title="openscad_py.intersection.Intersection.diff" href="object_.html#openscad_py.intersection.Intersection.diff">diff</a></code></li>
<li><code><a title="openscad_py.intersection.Intersection.extrude" href="object_.html#openscad_py.intersection.Intersection.extrude">extrude</a></code></li>
<li><code><a title="openscad_py.intersection.Intersection.intersection" href="object_.html#openscad_py.intersection.Intersection.intersection">intersection</a></code></li>
<li><code><a title="openscad_py.intersection.Intersection.move" href="object_.html#openscad_py.intersection.Intersection.move">move</a></code></li>
<li><code><a title="openscad_py.intersection.Intersection.radial_offset" href="object_.html#openscad_py.intersection.Intersection.radial_offset">radial_offset</a></code></li>
<li><code><a title="openscad_py.intersection.Intersection.render" href="#openscad_py.intersection.Intersection.render">render</a></code></li>
<li><code><a title="openscad_py.intersection.Intersection.rotate" href="object_.html#openscad_py.intersection.Intersection.rotate">rotate</a></code></li>
<li><code><a title="openscad_py.intersection.Intersection.rotate_extrude" href="object_.html#openscad_py.intersection.Intersection.rotate_extrude">rotate_extrude</a></code></li>
<li><code><a title="openscad_py.intersection.Intersection.scale" href="object_.html#openscad_py.intersection.Intersection.scale">scale</a></code></li>
<li><code><a title="openscad_py.intersection.Intersection.translate" href="object_.html#openscad_py.intersection.Intersection.translate">translate</a></code></li>
<li><code><a title="openscad_py.intersection.Intersection.union" href="object_.html#openscad_py.intersection.Intersection.union">union</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -1,258 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py.linear_extrude API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>openscad_py.linear_extrude</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="openscad_py.linear_extrude.LinearExtrude"><code class="flex name class">
<span>class <span class="ident">LinearExtrude</span></span>
<span>(</span><span>height,<br>child: <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>,<br>convexity: int = 10,<br>center: bool = False)</span>
</code></dt>
<dd>
<div class="desc"><p>Represents a linear extrusion applied to an object.
If center is false the linear extrusion Z range is from 0 to height; if it is true, the range is from -height/2 to height/2.</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class LinearExtrude(Object):
&#34;&#34;&#34;Represents a linear extrusion applied to an object.
If center is false the linear extrusion Z range is from 0 to height; if it is true, the range is from -height/2 to height/2.
&#34;&#34;&#34;
def __init__(self, height, child: Object, convexity: int = 10, center: bool = False):
self.height = height
self.child = child
self.convexity = convexity
self.center = center
# twist, slices, scale (float/vector), $fn
def render(self) -&gt; str:
&#34;&#34;&#34;Render the object into OpenSCAD code&#34;&#34;&#34;
return f&#34;linear_extrude(height={self.height}, center={self._center()}, convexity={self.convexity}){{\n{self.child.render()}\n}}&#34;</code></pre>
</details>
<h3>Ancestors</h3>
<ul class="hlist">
<li><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></li>
</ul>
<h3>Methods</h3>
<dl>
<dt id="openscad_py.linear_extrude.LinearExtrude.color"><code class="name flex">
<span>def <span class="ident">color</span></span>(<span>self, r, g, b, a=1.0) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.color" href="object_.html#openscad_py.object_.Object.color">color</a></code>
</p>
<div class="desc inherited"><p>Apply a color and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color</a></p></div>
</dd>
<dt id="openscad_py.linear_extrude.LinearExtrude.delta_offset"><code class="name flex">
<span>def <span class="ident">delta_offset</span></span>(<span>self, delta, chamfer=False)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.delta_offset" href="object_.html#openscad_py.object_.Object.delta_offset">delta_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.linear_extrude.LinearExtrude.diff"><code class="name flex">
<span>def <span class="ident">diff</span></span>(<span>self,<br>tool: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.diff" href="object_.html#openscad_py.object_.Object.diff">diff</a></code>
</p>
<div class="desc inherited"><p>Remove from the object using a difference operator, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.linear_extrude.LinearExtrude.extrude"><code class="name flex">
<span>def <span class="ident">extrude</span></span>(<span>self, height, convexity=10, center: bool = False) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.extrude" href="object_.html#openscad_py.object_.Object.extrude">extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a linear extrusion and return a new object.
If <code>center</code> is false, the linear extrusion Z range is from 0 to height;
if it is true, the range is …</p></div>
</dd>
<dt id="openscad_py.linear_extrude.LinearExtrude.intersection"><code class="name flex">
<span>def <span class="ident">intersection</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.intersection" href="object_.html#openscad_py.object_.Object.intersection">intersection</a></code>
</p>
<div class="desc inherited"><p>Get the intersection of self and an object of list of objects, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.linear_extrude.LinearExtrude.move"><code class="name flex">
<span>def <span class="ident">move</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.move" href="object_.html#openscad_py.object_.Object.move">move</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object. Synonym of <code>translate()</code></p></div>
</dd>
<dt id="openscad_py.linear_extrude.LinearExtrude.radial_offset"><code class="name flex">
<span>def <span class="ident">radial_offset</span></span>(<span>self, r)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.radial_offset" href="object_.html#openscad_py.object_.Object.radial_offset">radial_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.linear_extrude.LinearExtrude.render"><code class="name flex">
<span>def <span class="ident">render</span></span>(<span>self) > str</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.render" href="object_.html#openscad_py.object_.Object.render">render</a></code>
</p>
<div class="desc inherited"><p>Render the object into OpenSCAD code</p></div>
</dd>
<dt id="openscad_py.linear_extrude.LinearExtrude.rotate"><code class="name flex">
<span>def <span class="ident">rotate</span></span>(<span>self,<br>a,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate" href="object_.html#openscad_py.object_.Object.rotate">rotate</a></code>
</p>
<div class="desc inherited"><p>Apply a rotation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate</a></p></div>
</dd>
<dt id="openscad_py.linear_extrude.LinearExtrude.rotate_extrude"><code class="name flex">
<span>def <span class="ident">rotate_extrude</span></span>(<span>self, angle, convexity=10) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate_extrude" href="object_.html#openscad_py.object_.Object.rotate_extrude">rotate_extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a rotational extrusion and return a new object. For all points x &gt;= 0 must be true.
See …</p></div>
</dd>
<dt id="openscad_py.linear_extrude.LinearExtrude.scale"><code class="name flex">
<span>def <span class="ident">scale</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a> | float) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.scale" href="object_.html#openscad_py.object_.Object.scale">scale</a></code>
</p>
<div class="desc inherited"><p>Apply scaling and return a new object. Accepts a vector (a Point object or a list of floats)
or a single float for uniform scaling.
See …</p></div>
</dd>
<dt id="openscad_py.linear_extrude.LinearExtrude.translate"><code class="name flex">
<span>def <span class="ident">translate</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.translate" href="object_.html#openscad_py.object_.Object.translate">translate</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate</a></p></div>
</dd>
<dt id="openscad_py.linear_extrude.LinearExtrude.union"><code class="name flex">
<span>def <span class="ident">union</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.union" href="object_.html#openscad_py.object_.Object.union">union</a></code>
</p>
<div class="desc inherited"><p>Form the union of self and an object or list of objects, and return a new object.
See …</p></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="openscad_py" href="index.html">openscad_py</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="openscad_py.linear_extrude.LinearExtrude" href="#openscad_py.linear_extrude.LinearExtrude">LinearExtrude</a></code></h4>
<ul class="two-column">
<li><code><a title="openscad_py.linear_extrude.LinearExtrude.color" href="object_.html#openscad_py.linear_extrude.LinearExtrude.color">color</a></code></li>
<li><code><a title="openscad_py.linear_extrude.LinearExtrude.delta_offset" href="object_.html#openscad_py.linear_extrude.LinearExtrude.delta_offset">delta_offset</a></code></li>
<li><code><a title="openscad_py.linear_extrude.LinearExtrude.diff" href="object_.html#openscad_py.linear_extrude.LinearExtrude.diff">diff</a></code></li>
<li><code><a title="openscad_py.linear_extrude.LinearExtrude.extrude" href="object_.html#openscad_py.linear_extrude.LinearExtrude.extrude">extrude</a></code></li>
<li><code><a title="openscad_py.linear_extrude.LinearExtrude.intersection" href="object_.html#openscad_py.linear_extrude.LinearExtrude.intersection">intersection</a></code></li>
<li><code><a title="openscad_py.linear_extrude.LinearExtrude.move" href="object_.html#openscad_py.linear_extrude.LinearExtrude.move">move</a></code></li>
<li><code><a title="openscad_py.linear_extrude.LinearExtrude.radial_offset" href="object_.html#openscad_py.linear_extrude.LinearExtrude.radial_offset">radial_offset</a></code></li>
<li><code><a title="openscad_py.linear_extrude.LinearExtrude.render" href="#openscad_py.linear_extrude.LinearExtrude.render">render</a></code></li>
<li><code><a title="openscad_py.linear_extrude.LinearExtrude.rotate" href="object_.html#openscad_py.linear_extrude.LinearExtrude.rotate">rotate</a></code></li>
<li><code><a title="openscad_py.linear_extrude.LinearExtrude.rotate_extrude" href="object_.html#openscad_py.linear_extrude.LinearExtrude.rotate_extrude">rotate_extrude</a></code></li>
<li><code><a title="openscad_py.linear_extrude.LinearExtrude.scale" href="object_.html#openscad_py.linear_extrude.LinearExtrude.scale">scale</a></code></li>
<li><code><a title="openscad_py.linear_extrude.LinearExtrude.translate" href="object_.html#openscad_py.linear_extrude.LinearExtrude.translate">translate</a></code></li>
<li><code><a title="openscad_py.linear_extrude.LinearExtrude.union" href="object_.html#openscad_py.linear_extrude.LinearExtrude.union">union</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -1,310 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py.object_ API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>openscad_py.object_</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="openscad_py.object_.Object"><code class="flex name class">
<span>class <span class="ident">Object</span></span>
</code></dt>
<dd>
<div class="desc"><p>Base class for an SCAD object. Defines convenience methods to apply transformations.</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class Object:
&#34;&#34;&#34;Base class for an SCAD object. Defines convenience methods to apply transformations.&#34;&#34;&#34;
def _center(self) -&gt; str:
&#34;&#34;&#34;Render the `center` flag into string&#34;&#34;&#34;
return (&#39;true&#39; if self.center else &#39;false&#39;)
def _add(self, obj: &#39;Object&#39;):
&#34;&#34;&#34;Add an object, forming a Collection&#34;&#34;&#34;
from openscad_py.collection import Collection
return Collection([self, obj])
def render(self) -&gt; str:
&#34;&#34;&#34;Render the object into OpenSCAD code&#34;&#34;&#34;
raise Exception(&#34;abstract method&#34;)
def translate(self, v: TUnion[list, Point]) -&gt; &#39;Object&#39;:
&#34;&#34;&#34;Apply a translation and return a new object.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate
&#34;&#34;&#34;
from openscad_py.translate import Translate
return Translate(v=v, child=self)
def move(self, v: TUnion[list, Point]) -&gt; &#39;Object&#39;:
&#34;&#34;&#34;Apply a translation and return a new object. Synonym of `translate()`&#34;&#34;&#34;
from openscad_py.translate import Translate
return Translate(v=v, child=self)
def rotate(self, a, v: TUnion[list, Point]) -&gt; &#39;Object&#39;:
&#34;&#34;&#34;Apply a rotation and return a new object.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate
&#34;&#34;&#34;
from openscad_py.rotate import Rotate
return Rotate(a=a, v=v, child=self)
def scale(self, v: TUnion[list, Point, float]) -&gt; &#39;Object&#39;:
&#34;&#34;&#34;Apply scaling and return a new object. Accepts a vector (a Point object or a list of floats)
or a single float for uniform scaling.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#scale
&#34;&#34;&#34;
from openscad_py.scale import Scale
return Scale(v=v, child=self)
def color(self, r, g, b, a=1.) -&gt; &#39;Object&#39;:
&#34;&#34;&#34;Apply a color and return a new object.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color
&#34;&#34;&#34;
from openscad_py.color import Color
return Color(r=r, g=g, b=b, a=a, child=self)
def extrude(self, height, convexity = 10, center: bool = False) -&gt; &#39;Object&#39;:
&#34;&#34;&#34;Apply a linear extrusion and return a new object.
If `center` is false, the linear extrusion Z range is from 0 to height;
if it is true, the range is from -height/2 to height/2.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/2D_to_3D_Extrusion
&#34;&#34;&#34;
from openscad_py.linear_extrude import LinearExtrude
return LinearExtrude(height=height, child=self, convexity=convexity, center=center)
def rotate_extrude(self, angle, convexity = 10) -&gt; &#39;Object&#39;:
&#34;&#34;&#34;Apply a rotational extrusion and return a new object. For all points x &gt;= 0 must be true.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/2D_to_3D_Extrusion
&#34;&#34;&#34;
from openscad_py.rotate_extrude import RotateExtrude
return RotateExtrude(angle=angle, child=self, convexity=convexity)
def radial_offset(self, r):
&#34;&#34;&#34;Return a new 2D interior or exterior outline from an existing outline.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset
&#34;&#34;&#34;
from openscad_py.radial_offset import RadialOffset
return RadialOffset(r=r, child=self)
def delta_offset(self, delta, chamfer=False):
&#34;&#34;&#34;Return a new 2D interior or exterior outline from an existing outline.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset
&#34;&#34;&#34;
from openscad_py.delta_offset import DeltaOffset
return DeltaOffset(delta=delta, child=self, chamfer=chamfer)
def diff(self, tool: TUnion[list, &#39;Object&#39;]) -&gt; &#39;Object&#39;:
&#34;&#34;&#34;Remove from the object using a difference operator, and return a new object.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#difference
&#34;&#34;&#34;
from openscad_py.difference import Difference
return Difference(subject=self, tool=tool)
def union(self, objects: TUnion[list, &#39;Object&#39;]) -&gt; &#39;Object&#39;:
&#34;&#34;&#34;Form the union of self and an object or list of objects, and return a new object.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#union
&#34;&#34;&#34;
from openscad_py.union import Union
from openscad_py.collection import Collection
return Union(child=Collection.c(objects)._add(self))
def intersection(self, objects: TUnion[list, &#39;Object&#39;]) -&gt; &#39;Object&#39;:
&#34;&#34;&#34;Get the intersection of self and an object of list of objects, and return a new object.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#intersection
&#34;&#34;&#34;
from openscad_py.intersection import Intersection
from openscad_py.collection import Collection
return Intersection(child=Collection.c(objects)._add(self))</code></pre>
</details>
<h3>Subclasses</h3>
<ul class="hlist">
<li><a title="openscad_py.circle.Circle" href="circle.html#openscad_py.circle.Circle">Circle</a></li>
<li><a title="openscad_py.collection.Collection" href="collection.html#openscad_py.collection.Collection">Collection</a></li>
<li><a title="openscad_py.color.Color" href="color.html#openscad_py.color.Color">Color</a></li>
<li><a title="openscad_py.cube.Cube" href="cube.html#openscad_py.cube.Cube">Cube</a></li>
<li><a title="openscad_py.cylinder.Cylinder" href="cylinder.html#openscad_py.cylinder.Cylinder">Cylinder</a></li>
<li><a title="openscad_py.delta_offset.DeltaOffset" href="delta_offset.html#openscad_py.delta_offset.DeltaOffset">DeltaOffset</a></li>
<li><a title="openscad_py.difference.Difference" href="difference.html#openscad_py.difference.Difference">Difference</a></li>
<li><a title="openscad_py.intersection.Intersection" href="intersection.html#openscad_py.intersection.Intersection">Intersection</a></li>
<li><a title="openscad_py.linear_extrude.LinearExtrude" href="linear_extrude.html#openscad_py.linear_extrude.LinearExtrude">LinearExtrude</a></li>
<li><a title="openscad_py.path_tube.PathTube" href="path_tube.html#openscad_py.path_tube.PathTube">PathTube</a></li>
<li><a title="openscad_py.polygon.Polygon" href="polygon.html#openscad_py.polygon.Polygon">Polygon</a></li>
<li><a title="openscad_py.polyhedron.Polyhedron" href="polyhedron.html#openscad_py.polyhedron.Polyhedron">Polyhedron</a></li>
<li><a title="openscad_py.radial_offset.RadialOffset" href="radial_offset.html#openscad_py.radial_offset.RadialOffset">RadialOffset</a></li>
<li><a title="openscad_py.rotate.Rotate" href="rotate.html#openscad_py.rotate.Rotate">Rotate</a></li>
<li><a title="openscad_py.rotate_extrude.RotateExtrude" href="rotate_extrude.html#openscad_py.rotate_extrude.RotateExtrude">RotateExtrude</a></li>
<li><a title="openscad_py.scale.Scale" href="scale.html#openscad_py.scale.Scale">Scale</a></li>
<li><a title="openscad_py.sphere.Sphere" href="sphere.html#openscad_py.sphere.Sphere">Sphere</a></li>
<li><a title="openscad_py.translate.Translate" href="translate.html#openscad_py.translate.Translate">Translate</a></li>
<li><a title="openscad_py.union.Union" href="union.html#openscad_py.union.Union">Union</a></li>
</ul>
<h3>Methods</h3>
<dl>
<dt id="openscad_py.object_.Object.color"><code class="name flex">
<span>def <span class="ident">color</span></span>(<span>self, r, g, b, a=1.0) > <a title="openscad_py.object_.Object" href="#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<div class="desc"><p>Apply a color and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color</a></p></div>
</dd>
<dt id="openscad_py.object_.Object.delta_offset"><code class="name flex">
<span>def <span class="ident">delta_offset</span></span>(<span>self, delta, chamfer=False)</span>
</code></dt>
<dd>
<div class="desc"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.object_.Object.diff"><code class="name flex">
<span>def <span class="ident">diff</span></span>(<span>self,<br>tool: list | ForwardRef('<a title="openscad_py.object_.Object" href="#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<div class="desc"><p>Remove from the object using a difference operator, and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#difference">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#difference</a></p></div>
</dd>
<dt id="openscad_py.object_.Object.extrude"><code class="name flex">
<span>def <span class="ident">extrude</span></span>(<span>self, height, convexity=10, center: bool = False) > <a title="openscad_py.object_.Object" href="#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<div class="desc"><p>Apply a linear extrusion and return a new object.
If <code>center</code> is false, the linear extrusion Z range is from 0 to height;
if it is true, the range is from -height/2 to height/2.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/2D_to_3D_Extrusion">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/2D_to_3D_Extrusion</a></p></div>
</dd>
<dt id="openscad_py.object_.Object.intersection"><code class="name flex">
<span>def <span class="ident">intersection</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<div class="desc"><p>Get the intersection of self and an object of list of objects, and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#intersection">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#intersection</a></p></div>
</dd>
<dt id="openscad_py.object_.Object.move"><code class="name flex">
<span>def <span class="ident">move</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<div class="desc"><p>Apply a translation and return a new object. Synonym of <code>translate()</code></p></div>
</dd>
<dt id="openscad_py.object_.Object.radial_offset"><code class="name flex">
<span>def <span class="ident">radial_offset</span></span>(<span>self, r)</span>
</code></dt>
<dd>
<div class="desc"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.object_.Object.render"><code class="name flex">
<span>def <span class="ident">render</span></span>(<span>self) > str</span>
</code></dt>
<dd>
<div class="desc"><p>Render the object into OpenSCAD code</p></div>
</dd>
<dt id="openscad_py.object_.Object.rotate"><code class="name flex">
<span>def <span class="ident">rotate</span></span>(<span>self,<br>a,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<div class="desc"><p>Apply a rotation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate</a></p></div>
</dd>
<dt id="openscad_py.object_.Object.rotate_extrude"><code class="name flex">
<span>def <span class="ident">rotate_extrude</span></span>(<span>self, angle, convexity=10) > <a title="openscad_py.object_.Object" href="#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<div class="desc"><p>Apply a rotational extrusion and return a new object. For all points x &gt;= 0 must be true.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/2D_to_3D_Extrusion">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/2D_to_3D_Extrusion</a></p></div>
</dd>
<dt id="openscad_py.object_.Object.scale"><code class="name flex">
<span>def <span class="ident">scale</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a> | float) > <a title="openscad_py.object_.Object" href="#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<div class="desc"><p>Apply scaling and return a new object. Accepts a vector (a Point object or a list of floats)
or a single float for uniform scaling.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#scale">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#scale</a></p></div>
</dd>
<dt id="openscad_py.object_.Object.translate"><code class="name flex">
<span>def <span class="ident">translate</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<div class="desc"><p>Apply a translation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate</a></p></div>
</dd>
<dt id="openscad_py.object_.Object.union"><code class="name flex">
<span>def <span class="ident">union</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<div class="desc"><p>Form the union of self and an object or list of objects, and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#union">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#union</a></p></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="openscad_py" href="index.html">openscad_py</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="openscad_py.object_.Object" href="#openscad_py.object_.Object">Object</a></code></h4>
<ul class="two-column">
<li><code><a title="openscad_py.object_.Object.color" href="#openscad_py.object_.Object.color">color</a></code></li>
<li><code><a title="openscad_py.object_.Object.delta_offset" href="#openscad_py.object_.Object.delta_offset">delta_offset</a></code></li>
<li><code><a title="openscad_py.object_.Object.diff" href="#openscad_py.object_.Object.diff">diff</a></code></li>
<li><code><a title="openscad_py.object_.Object.extrude" href="#openscad_py.object_.Object.extrude">extrude</a></code></li>
<li><code><a title="openscad_py.object_.Object.intersection" href="#openscad_py.object_.Object.intersection">intersection</a></code></li>
<li><code><a title="openscad_py.object_.Object.move" href="#openscad_py.object_.Object.move">move</a></code></li>
<li><code><a title="openscad_py.object_.Object.radial_offset" href="#openscad_py.object_.Object.radial_offset">radial_offset</a></code></li>
<li><code><a title="openscad_py.object_.Object.render" href="#openscad_py.object_.Object.render">render</a></code></li>
<li><code><a title="openscad_py.object_.Object.rotate" href="#openscad_py.object_.Object.rotate">rotate</a></code></li>
<li><code><a title="openscad_py.object_.Object.rotate_extrude" href="#openscad_py.object_.Object.rotate_extrude">rotate_extrude</a></code></li>
<li><code><a title="openscad_py.object_.Object.scale" href="#openscad_py.object_.Object.scale">scale</a></code></li>
<li><code><a title="openscad_py.object_.Object.translate" href="#openscad_py.object_.Object.translate">translate</a></code></li>
<li><code><a title="openscad_py.object_.Object.union" href="#openscad_py.object_.Object.union">union</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -1,367 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py.path_tube API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>openscad_py.path_tube</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="openscad_py.path_tube.PathTube"><code class="flex name class">
<span>class <span class="ident">PathTube</span></span>
<span>(</span><span>points: List[list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>],<br>radius: float | list,<br>fn: int,<br>make_torus: bool = False,<br>convexity: int = 10)</span>
</code></dt>
<dd>
<div class="desc"><p>Creates a tube-like or toroid polyhedron from a path (list of points).</p>
<p>points: The list of points
radius: A float or a list of floats for each point
fn: int, The number of sides
make_torus: bool, Whether to make a torus instead of a pipe with ends. Warning: the last segment may be twisted.
convexity: see openscad</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class PathTube(Object):
&#34;&#34;&#34;Creates a tube-like or toroid polyhedron from a path (list of points).&#34;&#34;&#34;
def __init__(self, points: List[TUnion[list, Point]], radius: TUnion[float, list], fn: int, make_torus: bool = False, convexity: int = 10):
&#34;&#34;&#34;
points: The list of points
radius: A float or a list of floats for each point
fn: int, The number of sides
make_torus: bool, Whether to make a torus instead of a pipe with ends. Warning: the last segment may be twisted.
convexity: see openscad
&#34;&#34;&#34;
self.points = [Point.c(p) for p in points]
self.radii = radius if isinstance(radius, list) else [radius for p in points]
self.fn = fn
self.make_torus = make_torus
self.convexity = convexity
def process(self, debug: bool = False) -&gt; Polyhedron:
&#34;&#34;&#34;Generate a Polyhedron object from the parameters&#34;&#34;&#34;
points_rows = []
for ix, point in enumerate(self.points):
if debug: print(f&#34;//LOOP {ix}: {point.render()}&#34;)
if (not self.make_torus) and ix == 0:
# Start of the path
v = self.points[1].sub(point) # vector toward the first point
z_point = Point([0,0,1])
seam = v.cross(z_point) # Track a seam along the pipe using this vector pointing from the middle line
if seam.length() == 0: # v is in the z direction
seam = Point([1,0,0])
seam = seam.norm()
seam2 = v.cross(seam).norm()
if debug: print(f&#34;//Start. v={v.render()} seam={seam.render()} seam2={seam2.render()}&#34;)
points = []
for i in range(self.fn):
a = math.pi*2*i/self.fn
points.append((seam*math.cos(a) + seam2*math.sin(a))*self.radii[ix] + point)
points_rows.append(points)
if debug: print(f&#34;// Row: {&#39;, &#39;.join([p.render() for p in points])}&#34;)
elif (not self.make_torus) and ix == len(self.points) - 1:
# End of the path
v = point.sub(self.points[-2])
seam2 = v.cross(seam).norm()
if debug: print(f&#34;//End. v={v.render()} seam={seam.render()} seam2={seam2.render()}&#34;)
points = []
for i in range(self.fn):
a = math.pi*2*i/self.fn
points.append((seam*math.cos(a) + seam2*math.sin(a))*self.radii[ix] + point)
points_rows.append(points)
if debug: print(f&#34;// Row: {&#39;, &#39;.join([p.render() for p in points])}&#34;)
else:
# Middle of the path
iprev = ix - 1 if ix &gt; 0 else len(self.points) - 1
inext = ix + 1 if ix &lt; len(self.points) - 1 else 0
# (p[-1]) -va-&gt; (p[0]) -vb-&gt; (p[1])
va = point.sub(self.points[iprev]).norm() # vector incoming to this elbow
vb = self.points[inext].sub(point).norm() # vector going out from this elbow
if debug: print(f&#34;//Middle. va={va.render()} vb={vb.render()}&#34;)
# Get the vector perpendicular to va that points to the inside of the cylinder around va according
# to the elbow at p[0]. This is the component of vb in a basis defined by va.
vdot = va.dot(vb)
vb_proj = va.scale(vdot) # The projection of vb onto va
vb_perp = vb.sub(vb_proj) # This is perpendicular to va
if debug: print(f&#34;// vb_proj={vb_proj.render()} vb_perp={vb_perp.render()}&#34;)
va_inner = vb_perp.norm()
va_proj = vb.scale(vdot)
va_perp = va.sub(va_proj)
if debug: print(f&#34;// va_proj={va_proj.render()} va_perp={va_perp.render()}&#34;)
vb_inner = va_perp.scale(-1).norm() # Here we want to project -va onto vb
if debug: print(f&#34;// va_inner={va_inner.render()} vb_inner={vb_inner.render()}&#34;)
if ix == 0:
# We just choose a seam when making a torus
seam_angle = 0
else:
# The new seam on vb (seam_b) has the same angle to vb_inner as it had on va to va_inner
seam_angle = seam.angle(va_inner, mode=&#34;rad&#34;)
# need to figure out the sign of the angle
if seam_angle != 0:
if va_inner.cross(seam).dot(va) &lt; 0:
seam_angle = -seam_angle
vb_inner2 = vb.cross(vb_inner).norm()
seam_b = vb_inner*math.cos(seam_angle) + vb_inner2*math.sin(seam_angle)
if debug:
if ix == 0:
print(f&#34;// seam=N/A seam_b={seam_b.render()}&#34;)
else:
print(f&#34;// seam={seam.render()} seam_b={seam_b.render()}&#34;)
vangle = va.scale(-1).angle(vb, mode=&#34;rad&#34;)
long_inner = (vb-va).norm().scale(1/math.sin(vangle/2))
# long_inner is the long axis of the elliptic intersection between the cylinders around va and vb
short = va.cross(long_inner).norm() # the short axis of the ellipse
if debug: print(f&#34;// long_inner={long_inner.render()} short={short.render()} vangle={vangle/math.pi*180}(deg) seam_angle={seam_angle/math.pi*180}(deg)&#34;)
points = []
for i in range(self.fn):
# We draw the ellipse according to long_inner and short, but use seam_angle to get the right points
a = math.pi*2*i/self.fn + seam_angle
points.append((long_inner*math.cos(a) + short*math.sin(a))*self.radii[ix] + point)
points_rows.append(points)
if debug: print(f&#34;// Row: {&#39;, &#39;.join([p.render() for p in points])}&#34;)
seam = seam_b
return Polyhedron.tube(points=points_rows, convexity=self.convexity, make_torus=self.make_torus)
def render(self) -&gt; str:
&#34;&#34;&#34;Render the object into OpenSCAD code&#34;&#34;&#34;
return self.process().render()</code></pre>
</details>
<h3>Ancestors</h3>
<ul class="hlist">
<li><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></li>
</ul>
<h3>Methods</h3>
<dl>
<dt id="openscad_py.path_tube.PathTube.color"><code class="name flex">
<span>def <span class="ident">color</span></span>(<span>self, r, g, b, a=1.0) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.color" href="object_.html#openscad_py.object_.Object.color">color</a></code>
</p>
<div class="desc inherited"><p>Apply a color and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color</a></p></div>
</dd>
<dt id="openscad_py.path_tube.PathTube.delta_offset"><code class="name flex">
<span>def <span class="ident">delta_offset</span></span>(<span>self, delta, chamfer=False)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.delta_offset" href="object_.html#openscad_py.object_.Object.delta_offset">delta_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.path_tube.PathTube.diff"><code class="name flex">
<span>def <span class="ident">diff</span></span>(<span>self,<br>tool: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.diff" href="object_.html#openscad_py.object_.Object.diff">diff</a></code>
</p>
<div class="desc inherited"><p>Remove from the object using a difference operator, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.path_tube.PathTube.extrude"><code class="name flex">
<span>def <span class="ident">extrude</span></span>(<span>self, height, convexity=10, center: bool = False) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.extrude" href="object_.html#openscad_py.object_.Object.extrude">extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a linear extrusion and return a new object.
If <code>center</code> is false, the linear extrusion Z range is from 0 to height;
if it is true, the range is …</p></div>
</dd>
<dt id="openscad_py.path_tube.PathTube.intersection"><code class="name flex">
<span>def <span class="ident">intersection</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.intersection" href="object_.html#openscad_py.object_.Object.intersection">intersection</a></code>
</p>
<div class="desc inherited"><p>Get the intersection of self and an object of list of objects, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.path_tube.PathTube.move"><code class="name flex">
<span>def <span class="ident">move</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.move" href="object_.html#openscad_py.object_.Object.move">move</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object. Synonym of <code>translate()</code></p></div>
</dd>
<dt id="openscad_py.path_tube.PathTube.process"><code class="name flex">
<span>def <span class="ident">process</span></span>(<span>self, debug: bool = False) > <a title="openscad_py.polyhedron.Polyhedron" href="polyhedron.html#openscad_py.polyhedron.Polyhedron">Polyhedron</a></span>
</code></dt>
<dd>
<div class="desc"><p>Generate a Polyhedron object from the parameters</p></div>
</dd>
<dt id="openscad_py.path_tube.PathTube.radial_offset"><code class="name flex">
<span>def <span class="ident">radial_offset</span></span>(<span>self, r)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.radial_offset" href="object_.html#openscad_py.object_.Object.radial_offset">radial_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.path_tube.PathTube.render"><code class="name flex">
<span>def <span class="ident">render</span></span>(<span>self) > str</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.render" href="object_.html#openscad_py.object_.Object.render">render</a></code>
</p>
<div class="desc inherited"><p>Render the object into OpenSCAD code</p></div>
</dd>
<dt id="openscad_py.path_tube.PathTube.rotate"><code class="name flex">
<span>def <span class="ident">rotate</span></span>(<span>self,<br>a,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate" href="object_.html#openscad_py.object_.Object.rotate">rotate</a></code>
</p>
<div class="desc inherited"><p>Apply a rotation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate</a></p></div>
</dd>
<dt id="openscad_py.path_tube.PathTube.rotate_extrude"><code class="name flex">
<span>def <span class="ident">rotate_extrude</span></span>(<span>self, angle, convexity=10) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate_extrude" href="object_.html#openscad_py.object_.Object.rotate_extrude">rotate_extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a rotational extrusion and return a new object. For all points x &gt;= 0 must be true.
See …</p></div>
</dd>
<dt id="openscad_py.path_tube.PathTube.scale"><code class="name flex">
<span>def <span class="ident">scale</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a> | float) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.scale" href="object_.html#openscad_py.object_.Object.scale">scale</a></code>
</p>
<div class="desc inherited"><p>Apply scaling and return a new object. Accepts a vector (a Point object or a list of floats)
or a single float for uniform scaling.
See …</p></div>
</dd>
<dt id="openscad_py.path_tube.PathTube.translate"><code class="name flex">
<span>def <span class="ident">translate</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.translate" href="object_.html#openscad_py.object_.Object.translate">translate</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate</a></p></div>
</dd>
<dt id="openscad_py.path_tube.PathTube.union"><code class="name flex">
<span>def <span class="ident">union</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.union" href="object_.html#openscad_py.object_.Object.union">union</a></code>
</p>
<div class="desc inherited"><p>Form the union of self and an object or list of objects, and return a new object.
See …</p></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="openscad_py" href="index.html">openscad_py</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="openscad_py.path_tube.PathTube" href="#openscad_py.path_tube.PathTube">PathTube</a></code></h4>
<ul class="two-column">
<li><code><a title="openscad_py.path_tube.PathTube.color" href="object_.html#openscad_py.path_tube.PathTube.color">color</a></code></li>
<li><code><a title="openscad_py.path_tube.PathTube.delta_offset" href="object_.html#openscad_py.path_tube.PathTube.delta_offset">delta_offset</a></code></li>
<li><code><a title="openscad_py.path_tube.PathTube.diff" href="object_.html#openscad_py.path_tube.PathTube.diff">diff</a></code></li>
<li><code><a title="openscad_py.path_tube.PathTube.extrude" href="object_.html#openscad_py.path_tube.PathTube.extrude">extrude</a></code></li>
<li><code><a title="openscad_py.path_tube.PathTube.intersection" href="object_.html#openscad_py.path_tube.PathTube.intersection">intersection</a></code></li>
<li><code><a title="openscad_py.path_tube.PathTube.move" href="object_.html#openscad_py.path_tube.PathTube.move">move</a></code></li>
<li><code><a title="openscad_py.path_tube.PathTube.process" href="#openscad_py.path_tube.PathTube.process">process</a></code></li>
<li><code><a title="openscad_py.path_tube.PathTube.radial_offset" href="object_.html#openscad_py.path_tube.PathTube.radial_offset">radial_offset</a></code></li>
<li><code><a title="openscad_py.path_tube.PathTube.render" href="#openscad_py.path_tube.PathTube.render">render</a></code></li>
<li><code><a title="openscad_py.path_tube.PathTube.rotate" href="object_.html#openscad_py.path_tube.PathTube.rotate">rotate</a></code></li>
<li><code><a title="openscad_py.path_tube.PathTube.rotate_extrude" href="object_.html#openscad_py.path_tube.PathTube.rotate_extrude">rotate_extrude</a></code></li>
<li><code><a title="openscad_py.path_tube.PathTube.scale" href="object_.html#openscad_py.path_tube.PathTube.scale">scale</a></code></li>
<li><code><a title="openscad_py.path_tube.PathTube.translate" href="object_.html#openscad_py.path_tube.PathTube.translate">translate</a></code></li>
<li><code><a title="openscad_py.path_tube.PathTube.union" href="object_.html#openscad_py.path_tube.PathTube.union">union</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -1,373 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py.point API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>openscad_py.point</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="openscad_py.point.Point"><code class="flex name class">
<span>class <span class="ident">Point</span></span>
<span>(</span><span>coords)</span>
</code></dt>
<dd>
<div class="desc"><p>Represents a point or vector in arbitrary dimensions</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class Point:
&#34;&#34;&#34;Represents a point or vector in arbitrary dimensions&#34;&#34;&#34;
def __init__(self, coords):
self.c = np.array(coords, dtype=NP_TYPE)
@classmethod
def c(cls, coords: TUnion[list, &#39;Point&#39;]) -&gt; &#39;Point&#39;:
&#34;&#34;&#34;Ensure coords is an instance of Point (idempotent)&#34;&#34;&#34;
if isinstance(coords, Point):
return coords
return Point(coords)
def render(self) -&gt; str:
&#34;&#34;&#34;Render the object into OpenSCAD code&#34;&#34;&#34;
return &#34;[&#34; + (&#34;,&#34;.join([str(c) for c in self.c])) + &#34;]&#34;
def render_stl(self) -&gt; str:
return &#34; &#34;.join([str(c) for c in self.c])
def scale(self, x: float) -&gt; &#39;Point&#39;:
&#34;&#34;&#34;Scale the current vector/point by a scalar&#34;&#34;&#34;
return self.__class__(self.c * x)
def add(self, p: &#39;Point&#39;) -&gt; &#39;Point&#39;:
assert isinstance(p, Point)
assert self.dim() == p.dim()
return self.__class__(self.c + p.c)
def sub(self, p: &#39;Point&#39;) -&gt; &#39;Point&#39;:
assert isinstance(p, Point)
assert self.dim() == p.dim()
return self.__class__(self.c - p.c)
def dim(self) -&gt; int:
&#34;&#34;&#34;Return the number of dimensions&#34;&#34;&#34;
return self.c.shape[0]
def is_zero(self) -&gt; bool:
&#34;&#34;&#34;Return whether all coordinates are very close to 0&#34;&#34;&#34;
return np.all(np.abs(self.c) &lt; EPSILON)
def length(self) -&gt; float:
&#34;&#34;&#34;Return the length of the vector&#34;&#34;&#34;
return np.sqrt(np.square(self.c).sum())
def norm(self) -&gt; &#39;Point&#39;:
l = self.length()
if l == 0:
raise Exception(&#34;normalising 0 vector&#34;)
return self.__class__(self.c / self.length())
def dot(self, p: &#39;Point&#39;) -&gt; float:
&#34;&#34;&#34;Return the dot product&#34;&#34;&#34;
return np.dot(self.c, p.c)
def cross(self, p: &#39;Point&#39;) -&gt; &#39;Point&#39;:
&#34;&#34;&#34;Return the cross product&#34;&#34;&#34;
assert self.dim() == 3
assert p.dim() == 3
return Point([
self.c[1]*p.c[2] - self.c[2]*p.c[1],
self.c[2]*p.c[0] - self.c[0]*p.c[2],
self.c[0]*p.c[1] - self.c[1]*p.c[0]
])
def eq(self, p: &#39;Point&#39;) -&gt; bool:
return (self.c == p.c).all()
def lt(self, p: &#39;Point&#39;) -&gt; bool:
return (self.c &lt; p.c).all()
def le(self, p: &#39;Point&#39;) -&gt; bool:
return (self.c &lt;= p.c).all()
def gt(self, p: &#39;Point&#39;) -&gt; bool:
return (self.c &gt; p.c).all()
def ge(self, p: &#39;Point&#39;) -&gt; bool:
return (self.c &gt;= p.c).all()
def allclose(self, p: &#39;Point&#39;) -&gt; bool:
return self.c.shape == p.c.shape and np.allclose(self.c, p.c)
def angle(self, p: &#39;Point&#39;, mode: str = &#34;deg&#34;) -&gt; float:
&#34;&#34;&#34;Return the angle between two vectors in degrees or radians&#34;&#34;&#34;
r = self.dot(p)
r = r / self.length() / p.length()
r = math.acos(r)
if mode == &#34;rad&#34;:
return r
if mode == &#34;deg&#34;:
return r / math.pi * 180.
raise ValueError(&#34;Unknown mode&#34;)
def z_slope(self, mode: str = &#34;deg&#34;) -&gt; float:
&#34;&#34;&#34;Return the slope of a vector in degrees or radians&#34;&#34;&#34;
r = self.c[2] / self.length()
r = math.asin(r)
if mode == &#34;rad&#34;:
return r
if mode == &#34;deg&#34;:
return r / math.pi * 180.
raise ValueError(&#34;Unknown mode&#34;)
def rotate(self, coords, angle: float) -&gt; &#39;Point&#39;:
&#34;&#34;&#34;Rotate. coords is a list of 2 coordinate indices that we rotate&#34;&#34;&#34;
assert len(coords) == 2
ca, cb = coords
s = np.sin(angle / 180. * np.pi)
c = np.cos(angle / 180. * np.pi)
r = self.clone().reset_cache()
r.c[ca] = c * self.c[ca] + s * self.c[cb]
r.c[cb] = -s * self.c[ca] + c * self.c[cb]
return r
# Operator overloading
def __add__(self, other):
return self.add(other)
def __radd__(self, other):
assert isinstance(other, Point)
return other.add(self)
def __sub__(self, other):
return self.sub(other)
def __rsub__(self, other):
assert isinstance(other, Point)
return other.sub(self)
def __mul__(self, other):
return self.scale(other)
def __rmul__(self, other):
return self.scale(other)
def __neg__(self):
return self.scale(-1.)</code></pre>
</details>
<h3>Static methods</h3>
<dl>
<dt id="openscad_py.point.Point.c"><code class="name flex">
<span>def <span class="ident">c</span></span>(<span>coords: list | ForwardRef('<a title="openscad_py.point.Point" href="#openscad_py.point.Point">Point</a>')) > <a title="openscad_py.point.Point" href="#openscad_py.point.Point">Point</a></span>
</code></dt>
<dd>
<div class="desc"><p>Ensure coords is an instance of Point (idempotent)</p></div>
</dd>
</dl>
<h3>Methods</h3>
<dl>
<dt id="openscad_py.point.Point.add"><code class="name flex">
<span>def <span class="ident">add</span></span>(<span>self,<br>p: <a title="openscad_py.point.Point" href="#openscad_py.point.Point">Point</a>) > <a title="openscad_py.point.Point" href="#openscad_py.point.Point">Point</a></span>
</code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="openscad_py.point.Point.allclose"><code class="name flex">
<span>def <span class="ident">allclose</span></span>(<span>self,<br>p: <a title="openscad_py.point.Point" href="#openscad_py.point.Point">Point</a>) > bool</span>
</code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="openscad_py.point.Point.angle"><code class="name flex">
<span>def <span class="ident">angle</span></span>(<span>self,<br>p: <a title="openscad_py.point.Point" href="#openscad_py.point.Point">Point</a>,<br>mode: str = 'deg') > float</span>
</code></dt>
<dd>
<div class="desc"><p>Return the angle between two vectors in degrees or radians</p></div>
</dd>
<dt id="openscad_py.point.Point.cross"><code class="name flex">
<span>def <span class="ident">cross</span></span>(<span>self,<br>p: <a title="openscad_py.point.Point" href="#openscad_py.point.Point">Point</a>) > <a title="openscad_py.point.Point" href="#openscad_py.point.Point">Point</a></span>
</code></dt>
<dd>
<div class="desc"><p>Return the cross product</p></div>
</dd>
<dt id="openscad_py.point.Point.dim"><code class="name flex">
<span>def <span class="ident">dim</span></span>(<span>self) > int</span>
</code></dt>
<dd>
<div class="desc"><p>Return the number of dimensions</p></div>
</dd>
<dt id="openscad_py.point.Point.dot"><code class="name flex">
<span>def <span class="ident">dot</span></span>(<span>self,<br>p: <a title="openscad_py.point.Point" href="#openscad_py.point.Point">Point</a>) > float</span>
</code></dt>
<dd>
<div class="desc"><p>Return the dot product</p></div>
</dd>
<dt id="openscad_py.point.Point.eq"><code class="name flex">
<span>def <span class="ident">eq</span></span>(<span>self,<br>p: <a title="openscad_py.point.Point" href="#openscad_py.point.Point">Point</a>) > bool</span>
</code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="openscad_py.point.Point.ge"><code class="name flex">
<span>def <span class="ident">ge</span></span>(<span>self,<br>p: <a title="openscad_py.point.Point" href="#openscad_py.point.Point">Point</a>) > bool</span>
</code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="openscad_py.point.Point.gt"><code class="name flex">
<span>def <span class="ident">gt</span></span>(<span>self,<br>p: <a title="openscad_py.point.Point" href="#openscad_py.point.Point">Point</a>) > bool</span>
</code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="openscad_py.point.Point.is_zero"><code class="name flex">
<span>def <span class="ident">is_zero</span></span>(<span>self) > bool</span>
</code></dt>
<dd>
<div class="desc"><p>Return whether all coordinates are very close to 0</p></div>
</dd>
<dt id="openscad_py.point.Point.le"><code class="name flex">
<span>def <span class="ident">le</span></span>(<span>self,<br>p: <a title="openscad_py.point.Point" href="#openscad_py.point.Point">Point</a>) > bool</span>
</code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="openscad_py.point.Point.length"><code class="name flex">
<span>def <span class="ident">length</span></span>(<span>self) > float</span>
</code></dt>
<dd>
<div class="desc"><p>Return the length of the vector</p></div>
</dd>
<dt id="openscad_py.point.Point.lt"><code class="name flex">
<span>def <span class="ident">lt</span></span>(<span>self,<br>p: <a title="openscad_py.point.Point" href="#openscad_py.point.Point">Point</a>) > bool</span>
</code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="openscad_py.point.Point.norm"><code class="name flex">
<span>def <span class="ident">norm</span></span>(<span>self) > <a title="openscad_py.point.Point" href="#openscad_py.point.Point">Point</a></span>
</code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="openscad_py.point.Point.render"><code class="name flex">
<span>def <span class="ident">render</span></span>(<span>self) > str</span>
</code></dt>
<dd>
<div class="desc"><p>Render the object into OpenSCAD code</p></div>
</dd>
<dt id="openscad_py.point.Point.render_stl"><code class="name flex">
<span>def <span class="ident">render_stl</span></span>(<span>self) > str</span>
</code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="openscad_py.point.Point.rotate"><code class="name flex">
<span>def <span class="ident">rotate</span></span>(<span>self, coords, angle: float) > <a title="openscad_py.point.Point" href="#openscad_py.point.Point">Point</a></span>
</code></dt>
<dd>
<div class="desc"><p>Rotate. coords is a list of 2 coordinate indices that we rotate</p></div>
</dd>
<dt id="openscad_py.point.Point.scale"><code class="name flex">
<span>def <span class="ident">scale</span></span>(<span>self, x: float) > <a title="openscad_py.point.Point" href="#openscad_py.point.Point">Point</a></span>
</code></dt>
<dd>
<div class="desc"><p>Scale the current vector/point by a scalar</p></div>
</dd>
<dt id="openscad_py.point.Point.sub"><code class="name flex">
<span>def <span class="ident">sub</span></span>(<span>self,<br>p: <a title="openscad_py.point.Point" href="#openscad_py.point.Point">Point</a>) > <a title="openscad_py.point.Point" href="#openscad_py.point.Point">Point</a></span>
</code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="openscad_py.point.Point.z_slope"><code class="name flex">
<span>def <span class="ident">z_slope</span></span>(<span>self, mode: str = 'deg') > float</span>
</code></dt>
<dd>
<div class="desc"><p>Return the slope of a vector in degrees or radians</p></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="openscad_py" href="index.html">openscad_py</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="openscad_py.point.Point" href="#openscad_py.point.Point">Point</a></code></h4>
<ul class="two-column">
<li><code><a title="openscad_py.point.Point.add" href="#openscad_py.point.Point.add">add</a></code></li>
<li><code><a title="openscad_py.point.Point.allclose" href="#openscad_py.point.Point.allclose">allclose</a></code></li>
<li><code><a title="openscad_py.point.Point.angle" href="#openscad_py.point.Point.angle">angle</a></code></li>
<li><code><a title="openscad_py.point.Point.c" href="#openscad_py.point.Point.c">c</a></code></li>
<li><code><a title="openscad_py.point.Point.cross" href="#openscad_py.point.Point.cross">cross</a></code></li>
<li><code><a title="openscad_py.point.Point.dim" href="#openscad_py.point.Point.dim">dim</a></code></li>
<li><code><a title="openscad_py.point.Point.dot" href="#openscad_py.point.Point.dot">dot</a></code></li>
<li><code><a title="openscad_py.point.Point.eq" href="#openscad_py.point.Point.eq">eq</a></code></li>
<li><code><a title="openscad_py.point.Point.ge" href="#openscad_py.point.Point.ge">ge</a></code></li>
<li><code><a title="openscad_py.point.Point.gt" href="#openscad_py.point.Point.gt">gt</a></code></li>
<li><code><a title="openscad_py.point.Point.is_zero" href="#openscad_py.point.Point.is_zero">is_zero</a></code></li>
<li><code><a title="openscad_py.point.Point.le" href="#openscad_py.point.Point.le">le</a></code></li>
<li><code><a title="openscad_py.point.Point.length" href="#openscad_py.point.Point.length">length</a></code></li>
<li><code><a title="openscad_py.point.Point.lt" href="#openscad_py.point.Point.lt">lt</a></code></li>
<li><code><a title="openscad_py.point.Point.norm" href="#openscad_py.point.Point.norm">norm</a></code></li>
<li><code><a title="openscad_py.point.Point.render" href="#openscad_py.point.Point.render">render</a></code></li>
<li><code><a title="openscad_py.point.Point.render_stl" href="#openscad_py.point.Point.render_stl">render_stl</a></code></li>
<li><code><a title="openscad_py.point.Point.rotate" href="#openscad_py.point.Point.rotate">rotate</a></code></li>
<li><code><a title="openscad_py.point.Point.scale" href="#openscad_py.point.Point.scale">scale</a></code></li>
<li><code><a title="openscad_py.point.Point.sub" href="#openscad_py.point.Point.sub">sub</a></code></li>
<li><code><a title="openscad_py.point.Point.z_slope" href="#openscad_py.point.Point.z_slope">z_slope</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -1,253 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py.polygon API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>openscad_py.polygon</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="openscad_py.polygon.Polygon"><code class="flex name class">
<span>class <span class="ident">Polygon</span></span>
<span>(</span><span>points, paths=None, convexity=10)</span>
</code></dt>
<dd>
<div class="desc"><p>A 2D primitive, polygon. Use points/lists with 2 coordinates.</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class Polygon(Object):
&#34;&#34;&#34;A 2D primitive, polygon. Use points/lists with 2 coordinates.&#34;&#34;&#34;
def __init__(self, points, paths=None, convexity=10):
assert paths is None # not implemented yet
self.points = [Point.c(p) for p in points]
self.convexity = convexity
def render(self) -&gt; str:
&#34;&#34;&#34;Render the object into OpenSCAD code&#34;&#34;&#34;
return f&#34;polygon(points=[{&#39;,&#39;.join([p.render() for p in self.points])}], convexity={self.convexity});&#34;</code></pre>
</details>
<h3>Ancestors</h3>
<ul class="hlist">
<li><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></li>
</ul>
<h3>Methods</h3>
<dl>
<dt id="openscad_py.polygon.Polygon.color"><code class="name flex">
<span>def <span class="ident">color</span></span>(<span>self, r, g, b, a=1.0) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.color" href="object_.html#openscad_py.object_.Object.color">color</a></code>
</p>
<div class="desc inherited"><p>Apply a color and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color</a></p></div>
</dd>
<dt id="openscad_py.polygon.Polygon.delta_offset"><code class="name flex">
<span>def <span class="ident">delta_offset</span></span>(<span>self, delta, chamfer=False)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.delta_offset" href="object_.html#openscad_py.object_.Object.delta_offset">delta_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.polygon.Polygon.diff"><code class="name flex">
<span>def <span class="ident">diff</span></span>(<span>self,<br>tool: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.diff" href="object_.html#openscad_py.object_.Object.diff">diff</a></code>
</p>
<div class="desc inherited"><p>Remove from the object using a difference operator, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.polygon.Polygon.extrude"><code class="name flex">
<span>def <span class="ident">extrude</span></span>(<span>self, height, convexity=10, center: bool = False) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.extrude" href="object_.html#openscad_py.object_.Object.extrude">extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a linear extrusion and return a new object.
If <code>center</code> is false, the linear extrusion Z range is from 0 to height;
if it is true, the range is …</p></div>
</dd>
<dt id="openscad_py.polygon.Polygon.intersection"><code class="name flex">
<span>def <span class="ident">intersection</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.intersection" href="object_.html#openscad_py.object_.Object.intersection">intersection</a></code>
</p>
<div class="desc inherited"><p>Get the intersection of self and an object of list of objects, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.polygon.Polygon.move"><code class="name flex">
<span>def <span class="ident">move</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.move" href="object_.html#openscad_py.object_.Object.move">move</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object. Synonym of <code>translate()</code></p></div>
</dd>
<dt id="openscad_py.polygon.Polygon.radial_offset"><code class="name flex">
<span>def <span class="ident">radial_offset</span></span>(<span>self, r)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.radial_offset" href="object_.html#openscad_py.object_.Object.radial_offset">radial_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.polygon.Polygon.render"><code class="name flex">
<span>def <span class="ident">render</span></span>(<span>self) > str</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.render" href="object_.html#openscad_py.object_.Object.render">render</a></code>
</p>
<div class="desc inherited"><p>Render the object into OpenSCAD code</p></div>
</dd>
<dt id="openscad_py.polygon.Polygon.rotate"><code class="name flex">
<span>def <span class="ident">rotate</span></span>(<span>self,<br>a,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate" href="object_.html#openscad_py.object_.Object.rotate">rotate</a></code>
</p>
<div class="desc inherited"><p>Apply a rotation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate</a></p></div>
</dd>
<dt id="openscad_py.polygon.Polygon.rotate_extrude"><code class="name flex">
<span>def <span class="ident">rotate_extrude</span></span>(<span>self, angle, convexity=10) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate_extrude" href="object_.html#openscad_py.object_.Object.rotate_extrude">rotate_extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a rotational extrusion and return a new object. For all points x &gt;= 0 must be true.
See …</p></div>
</dd>
<dt id="openscad_py.polygon.Polygon.scale"><code class="name flex">
<span>def <span class="ident">scale</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a> | float) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.scale" href="object_.html#openscad_py.object_.Object.scale">scale</a></code>
</p>
<div class="desc inherited"><p>Apply scaling and return a new object. Accepts a vector (a Point object or a list of floats)
or a single float for uniform scaling.
See …</p></div>
</dd>
<dt id="openscad_py.polygon.Polygon.translate"><code class="name flex">
<span>def <span class="ident">translate</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.translate" href="object_.html#openscad_py.object_.Object.translate">translate</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate</a></p></div>
</dd>
<dt id="openscad_py.polygon.Polygon.union"><code class="name flex">
<span>def <span class="ident">union</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.union" href="object_.html#openscad_py.object_.Object.union">union</a></code>
</p>
<div class="desc inherited"><p>Form the union of self and an object or list of objects, and return a new object.
See …</p></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="openscad_py" href="index.html">openscad_py</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="openscad_py.polygon.Polygon" href="#openscad_py.polygon.Polygon">Polygon</a></code></h4>
<ul class="two-column">
<li><code><a title="openscad_py.polygon.Polygon.color" href="object_.html#openscad_py.polygon.Polygon.color">color</a></code></li>
<li><code><a title="openscad_py.polygon.Polygon.delta_offset" href="object_.html#openscad_py.polygon.Polygon.delta_offset">delta_offset</a></code></li>
<li><code><a title="openscad_py.polygon.Polygon.diff" href="object_.html#openscad_py.polygon.Polygon.diff">diff</a></code></li>
<li><code><a title="openscad_py.polygon.Polygon.extrude" href="object_.html#openscad_py.polygon.Polygon.extrude">extrude</a></code></li>
<li><code><a title="openscad_py.polygon.Polygon.intersection" href="object_.html#openscad_py.polygon.Polygon.intersection">intersection</a></code></li>
<li><code><a title="openscad_py.polygon.Polygon.move" href="object_.html#openscad_py.polygon.Polygon.move">move</a></code></li>
<li><code><a title="openscad_py.polygon.Polygon.radial_offset" href="object_.html#openscad_py.polygon.Polygon.radial_offset">radial_offset</a></code></li>
<li><code><a title="openscad_py.polygon.Polygon.render" href="#openscad_py.polygon.Polygon.render">render</a></code></li>
<li><code><a title="openscad_py.polygon.Polygon.rotate" href="object_.html#openscad_py.polygon.Polygon.rotate">rotate</a></code></li>
<li><code><a title="openscad_py.polygon.Polygon.rotate_extrude" href="object_.html#openscad_py.polygon.Polygon.rotate_extrude">rotate_extrude</a></code></li>
<li><code><a title="openscad_py.polygon.Polygon.scale" href="object_.html#openscad_py.polygon.Polygon.scale">scale</a></code></li>
<li><code><a title="openscad_py.polygon.Polygon.translate" href="object_.html#openscad_py.polygon.Polygon.translate">translate</a></code></li>
<li><code><a title="openscad_py.polygon.Polygon.union" href="object_.html#openscad_py.polygon.Polygon.union">union</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -1,517 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py.polyhedron API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>openscad_py.polyhedron</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="openscad_py.polyhedron.Polyhedron"><code class="flex name class">
<span>class <span class="ident">Polyhedron</span></span>
<span>(</span><span>points: List[list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>],<br>faces: List[list],<br>convexity: int = 10)</span>
</code></dt>
<dd>
<div class="desc"><p>A 3D primitive, a polyhedron defined by a list of points and faces.
Faces are defined by lists of point indices. The points of a face must be listed clockwise when
looking at the face from the outside inward.
Nonplanar faces should be triangulated by OpenSCAD.</p>
<p>See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#polyhedron">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#polyhedron</a></p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class Polyhedron(Object):
&#34;&#34;&#34;A 3D primitive, a polyhedron defined by a list of points and faces.
Faces are defined by lists of point indices. The points of a face must be listed clockwise when
looking at the face from the outside inward.
Nonplanar faces should be triangulated by OpenSCAD.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#polyhedron
&#34;&#34;&#34;
def __init__(self, points: List[TUnion[list, Point]], faces: List[list], convexity: int = 10):
self.points = [Point.c(p) for p in points]
self.faces = faces
self.convexity = convexity
@classmethod
def torus(cls, points: List[List[TUnion[list, Point]]], torus_connect_offset: int = 0, convexity: int = 10):
&#34;&#34;&#34;Construct a torus-like polyhedron from a 2D array of points.
Each row of points must be oriented clockwise when looking from the first row (loop) toward the next.
The rows of points form loops.
points: A 2D array of points
torus_connect_offset: int, Whether to shift which points are connected in a torus in the last segment
convexity: int, see OpensCAD
&#34;&#34;&#34;
return cls.tube(points=points, convexity=convexity, make_torus=True, torus_connect_offset=torus_connect_offset)
@classmethod
def tube(cls, points: List[List[TUnion[list, Point]]], make_torus: bool = False, torus_connect_offset: int = 0, convexity: int = 10):
&#34;&#34;&#34;Construct a tube-like polyhedron from a 2D array of points.
Each row of points must be oriented clockwise when looking at the pipe at the start inwards.
The rows of points form loops.
points: A 2D array of points
make_torus: bool, Whether to create a torus-like shape instead of a pipe with ends
torus_connect_offset: int, Whether to shift which points are connected in a torus in the last segment
convexity: int, see OpensCAD
&#34;&#34;&#34;
rows = len(points)
row_len = len(points[0])
point_list = []
point_map = {} # { (row_ix,col_ix) -&gt; list_ix, ...
for row_ix, row in enumerate(points):
for col_ix, point in enumerate(row):
point_map[(row_ix, col_ix)] = len(point_list)
point_list.append(point)
faces = []
# Side faces
for row_ix in range(1, rows):
for col_ix in range(1, row_len):
faces.append([
point_map[(row_ix, col_ix-1)],
point_map[(row_ix, col_ix)],
point_map[(row_ix-1, col_ix)],
point_map[(row_ix-1, col_ix-1)]
])
faces.append([
point_map[(row_ix, row_len-1)],
point_map[(row_ix, 0)],
point_map[(row_ix-1, 0)],
point_map[(row_ix-1, row_len-1)]
])
if not make_torus:
# Starting cap
faces.append([point_map[(0,x)] for x in range(row_len)])
# Ending cap
faces.append([point_map[(rows-1,row_len-1-x)] for x in range(row_len)])
else:
# Connect the end to the start
for col_ix in range(row_len):
faces.append([
point_map[(0, (col_ix-1+torus_connect_offset)%row_len)],
point_map[(0, (col_ix+torus_connect_offset)%row_len)],
point_map[(rows-1, col_ix%row_len)],
point_map[(rows-1, (col_ix-1)%row_len)]
])
return cls(points=point_list, faces=faces, convexity=convexity)
@classmethod
def from_heightmap(cls, heights: List[List[float]], base: float = 0., convexity: int = 10):
&#34;&#34;&#34;Construct a polyhedron from a 2D matrix of heights. If the height at [0,0] is Z, it maps
to the point (0, 0, Z).
heights: The 2D matrix of heights
base: The height at which the base will be - in the scale of heights (optional; default 0)
convexity: see OpenSCAD
&#34;&#34;&#34;
rows = len(heights)
row_len = len(heights[0])
point_list = []
point_map = {} # { (row_ix,col_ix) -&gt; list_ix, ...
bottom_point_map = {}
for row_ix, row in enumerate(heights):
for col_ix, height in enumerate(row):
point = Point([row_ix, col_ix, height])
bottom_point = Point([row_ix, col_ix, base])
point_map[(row_ix, col_ix)] = len(point_list)
point_list.append(point)
bottom_point_map[(row_ix, col_ix)] = len(point_list)
point_list.append(bottom_point)
faces = []
# Surface (top) faces
# r 10 11
# c
# 10 1 2
# 11 4 3
for row_ix in range(1, rows):
for col_ix in range(1, row_len):
faces.append([
point_map[(row_ix-1, col_ix-1)],
point_map[(row_ix, col_ix-1)],
point_map[(row_ix, col_ix)],
point_map[(row_ix-1, col_ix)]
])
# Bottom faces
for row_ix in range(1, rows):
for col_ix in range(1, row_len):
faces.append([
bottom_point_map[(row_ix-1, col_ix-1)], # 1
bottom_point_map[(row_ix-1, col_ix)], # 4
bottom_point_map[(row_ix, col_ix)], # 3
bottom_point_map[(row_ix, col_ix-1)] # 2
])
# Side faces
for row_ix in range(1, rows):
m = row_len - 1
faces.append([
point_map[(row_ix-1, m)],
point_map[(row_ix, m)],
bottom_point_map[(row_ix, m)],
bottom_point_map[(row_ix-1, m)]
])
faces.append([
point_map[(row_ix, 0)],
point_map[(row_ix-1, 0)],
bottom_point_map[(row_ix-1, 0)],
bottom_point_map[(row_ix, 0)]
])
for col_ix in range(1, row_len):
m = rows - 1
faces.append([
point_map[(m, col_ix-1)],
point_map[(m, col_ix)],
bottom_point_map[(m, col_ix)],
bottom_point_map[(m, col_ix-1)]
])
faces.append([
point_map[(0, col_ix)],
point_map[(0, col_ix-1)],
bottom_point_map[(0, col_ix-1)],
bottom_point_map[(0, col_ix)]
])
return cls(points=point_list, faces=faces, convexity=convexity)
def render(self) -&gt; str:
&#34;&#34;&#34;Render the object into OpenSCAD code&#34;&#34;&#34;
faces_list = [f&#34;[{&#39;,&#39;.join([str(x) for x in face])}]&#34; for face in self.faces]
return f&#34;polyhedron(points=[{&#39;,&#39;.join([p.render() for p in self.points])}], faces=[{&#39;,&#39;.join(faces_list)}], convexity={self.convexity});&#34;
def render_stl(self) -&gt; str:
&#34;&#34;&#34;Export the polyhedron as an STL file&#34;&#34;&#34;
stl = []
def write_triangle(p1, p2, p3):
normal = (p2 - p1).cross(p3 - p1)
if normal.is_zero():
# Degenerate triangle
return
normal = normal.norm()
stl.append(&#34;facet normal &#34; + normal.render_stl())
stl.append(&#34;outer loop&#34;)
for p in [p1, p2, p3]:
stl.append(&#34;vertex &#34; + p.render_stl())
stl.append(&#34;endloop&#34;)
stl.append(&#34;endfacet&#34;)
stl.append(&#34;solid oscpy&#34;)
for face in self.faces:
face = [self.points[i] for i in face]
# stl.append(f&#34;# FACE {len(face)} {&#39;,&#39;.join([p.render() for p in face])}&#34;)
if len(face) &lt; 3:
raise Exception(&#34;Face has less than 3 points&#34;)
elif len(face) == 3:
write_triangle(face[0], face[1], face[2])
elif len(face) == 4:
# Decide which diagonal is best to break on
d1 = face[0].sub(face[2]).length()
d2 = face[1].sub(face[3]).length()
if d1 &lt; d2:
write_triangle(face[0], face[1], face[2])
write_triangle(face[0], face[2], face[3])
else:
write_triangle(face[0], face[1], face[3])
write_triangle(face[1], face[2], face[3])
else:
# Add central point and split face in a star-shaped form
# of course this won&#39;t always work on concave faces
s = None
for p in face:
if s is None:
s = p
else:
s += p
s = s.scale(1 / len(face))
for i in range(len(face)):
i_next = i + 1
if i_next &gt; len(face) - 1:
i_next = 0
write_triangle(face[i], face[i_next], s)
stl.append(&#34;endsolid oscpy&#34;)
return &#34;\n&#34;.join(stl)</code></pre>
</details>
<h3>Ancestors</h3>
<ul class="hlist">
<li><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></li>
</ul>
<h3>Static methods</h3>
<dl>
<dt id="openscad_py.polyhedron.Polyhedron.from_heightmap"><code class="name flex">
<span>def <span class="ident">from_heightmap</span></span>(<span>heights: List[List[float]], base: float = 0.0, convexity: int = 10)</span>
</code></dt>
<dd>
<div class="desc"><p>Construct a polyhedron from a 2D matrix of heights. If the height at [0,0] is Z, it maps
to the point (0, 0, Z).</p>
<p>heights: The 2D matrix of heights
base: The height at which the base will be - in the scale of heights (optional; default 0)
convexity: see OpenSCAD</p></div>
</dd>
<dt id="openscad_py.polyhedron.Polyhedron.torus"><code class="name flex">
<span>def <span class="ident">torus</span></span>(<span>points: List[List[list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>]],<br>torus_connect_offset: int = 0,<br>convexity: int = 10)</span>
</code></dt>
<dd>
<div class="desc"><p>Construct a torus-like polyhedron from a 2D array of points.
Each row of points must be oriented clockwise when looking from the first row (loop) toward the next.
The rows of points form loops.</p>
<p>points: A 2D array of points
torus_connect_offset: int, Whether to shift which points are connected in a torus in the last segment
convexity: int, see OpensCAD</p></div>
</dd>
<dt id="openscad_py.polyhedron.Polyhedron.tube"><code class="name flex">
<span>def <span class="ident">tube</span></span>(<span>points: List[List[list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>]],<br>make_torus: bool = False,<br>torus_connect_offset: int = 0,<br>convexity: int = 10)</span>
</code></dt>
<dd>
<div class="desc"><p>Construct a tube-like polyhedron from a 2D array of points.
Each row of points must be oriented clockwise when looking at the pipe at the start inwards.
The rows of points form loops.</p>
<p>points: A 2D array of points
make_torus: bool, Whether to create a torus-like shape instead of a pipe with ends
torus_connect_offset: int, Whether to shift which points are connected in a torus in the last segment
convexity: int, see OpensCAD</p></div>
</dd>
</dl>
<h3>Methods</h3>
<dl>
<dt id="openscad_py.polyhedron.Polyhedron.color"><code class="name flex">
<span>def <span class="ident">color</span></span>(<span>self, r, g, b, a=1.0) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.color" href="object_.html#openscad_py.object_.Object.color">color</a></code>
</p>
<div class="desc inherited"><p>Apply a color and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color</a></p></div>
</dd>
<dt id="openscad_py.polyhedron.Polyhedron.delta_offset"><code class="name flex">
<span>def <span class="ident">delta_offset</span></span>(<span>self, delta, chamfer=False)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.delta_offset" href="object_.html#openscad_py.object_.Object.delta_offset">delta_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.polyhedron.Polyhedron.diff"><code class="name flex">
<span>def <span class="ident">diff</span></span>(<span>self,<br>tool: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.diff" href="object_.html#openscad_py.object_.Object.diff">diff</a></code>
</p>
<div class="desc inherited"><p>Remove from the object using a difference operator, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.polyhedron.Polyhedron.extrude"><code class="name flex">
<span>def <span class="ident">extrude</span></span>(<span>self, height, convexity=10, center: bool = False) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.extrude" href="object_.html#openscad_py.object_.Object.extrude">extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a linear extrusion and return a new object.
If <code>center</code> is false, the linear extrusion Z range is from 0 to height;
if it is true, the range is …</p></div>
</dd>
<dt id="openscad_py.polyhedron.Polyhedron.intersection"><code class="name flex">
<span>def <span class="ident">intersection</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.intersection" href="object_.html#openscad_py.object_.Object.intersection">intersection</a></code>
</p>
<div class="desc inherited"><p>Get the intersection of self and an object of list of objects, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.polyhedron.Polyhedron.move"><code class="name flex">
<span>def <span class="ident">move</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.move" href="object_.html#openscad_py.object_.Object.move">move</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object. Synonym of <code>translate()</code></p></div>
</dd>
<dt id="openscad_py.polyhedron.Polyhedron.radial_offset"><code class="name flex">
<span>def <span class="ident">radial_offset</span></span>(<span>self, r)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.radial_offset" href="object_.html#openscad_py.object_.Object.radial_offset">radial_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.polyhedron.Polyhedron.render"><code class="name flex">
<span>def <span class="ident">render</span></span>(<span>self) > str</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.render" href="object_.html#openscad_py.object_.Object.render">render</a></code>
</p>
<div class="desc inherited"><p>Render the object into OpenSCAD code</p></div>
</dd>
<dt id="openscad_py.polyhedron.Polyhedron.render_stl"><code class="name flex">
<span>def <span class="ident">render_stl</span></span>(<span>self) > str</span>
</code></dt>
<dd>
<div class="desc"><p>Export the polyhedron as an STL file</p></div>
</dd>
<dt id="openscad_py.polyhedron.Polyhedron.rotate"><code class="name flex">
<span>def <span class="ident">rotate</span></span>(<span>self,<br>a,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate" href="object_.html#openscad_py.object_.Object.rotate">rotate</a></code>
</p>
<div class="desc inherited"><p>Apply a rotation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate</a></p></div>
</dd>
<dt id="openscad_py.polyhedron.Polyhedron.rotate_extrude"><code class="name flex">
<span>def <span class="ident">rotate_extrude</span></span>(<span>self, angle, convexity=10) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate_extrude" href="object_.html#openscad_py.object_.Object.rotate_extrude">rotate_extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a rotational extrusion and return a new object. For all points x &gt;= 0 must be true.
See …</p></div>
</dd>
<dt id="openscad_py.polyhedron.Polyhedron.scale"><code class="name flex">
<span>def <span class="ident">scale</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a> | float) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.scale" href="object_.html#openscad_py.object_.Object.scale">scale</a></code>
</p>
<div class="desc inherited"><p>Apply scaling and return a new object. Accepts a vector (a Point object or a list of floats)
or a single float for uniform scaling.
See …</p></div>
</dd>
<dt id="openscad_py.polyhedron.Polyhedron.translate"><code class="name flex">
<span>def <span class="ident">translate</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.translate" href="object_.html#openscad_py.object_.Object.translate">translate</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate</a></p></div>
</dd>
<dt id="openscad_py.polyhedron.Polyhedron.union"><code class="name flex">
<span>def <span class="ident">union</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.union" href="object_.html#openscad_py.object_.Object.union">union</a></code>
</p>
<div class="desc inherited"><p>Form the union of self and an object or list of objects, and return a new object.
See …</p></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="openscad_py" href="index.html">openscad_py</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="openscad_py.polyhedron.Polyhedron" href="#openscad_py.polyhedron.Polyhedron">Polyhedron</a></code></h4>
<ul class="two-column">
<li><code><a title="openscad_py.polyhedron.Polyhedron.color" href="object_.html#openscad_py.polyhedron.Polyhedron.color">color</a></code></li>
<li><code><a title="openscad_py.polyhedron.Polyhedron.delta_offset" href="object_.html#openscad_py.polyhedron.Polyhedron.delta_offset">delta_offset</a></code></li>
<li><code><a title="openscad_py.polyhedron.Polyhedron.diff" href="object_.html#openscad_py.polyhedron.Polyhedron.diff">diff</a></code></li>
<li><code><a title="openscad_py.polyhedron.Polyhedron.extrude" href="object_.html#openscad_py.polyhedron.Polyhedron.extrude">extrude</a></code></li>
<li><code><a title="openscad_py.polyhedron.Polyhedron.from_heightmap" href="#openscad_py.polyhedron.Polyhedron.from_heightmap">from_heightmap</a></code></li>
<li><code><a title="openscad_py.polyhedron.Polyhedron.intersection" href="object_.html#openscad_py.polyhedron.Polyhedron.intersection">intersection</a></code></li>
<li><code><a title="openscad_py.polyhedron.Polyhedron.move" href="object_.html#openscad_py.polyhedron.Polyhedron.move">move</a></code></li>
<li><code><a title="openscad_py.polyhedron.Polyhedron.radial_offset" href="object_.html#openscad_py.polyhedron.Polyhedron.radial_offset">radial_offset</a></code></li>
<li><code><a title="openscad_py.polyhedron.Polyhedron.render" href="#openscad_py.polyhedron.Polyhedron.render">render</a></code></li>
<li><code><a title="openscad_py.polyhedron.Polyhedron.render_stl" href="#openscad_py.polyhedron.Polyhedron.render_stl">render_stl</a></code></li>
<li><code><a title="openscad_py.polyhedron.Polyhedron.rotate" href="object_.html#openscad_py.polyhedron.Polyhedron.rotate">rotate</a></code></li>
<li><code><a title="openscad_py.polyhedron.Polyhedron.rotate_extrude" href="object_.html#openscad_py.polyhedron.Polyhedron.rotate_extrude">rotate_extrude</a></code></li>
<li><code><a title="openscad_py.polyhedron.Polyhedron.scale" href="object_.html#openscad_py.polyhedron.Polyhedron.scale">scale</a></code></li>
<li><code><a title="openscad_py.polyhedron.Polyhedron.torus" href="#openscad_py.polyhedron.Polyhedron.torus">torus</a></code></li>
<li><code><a title="openscad_py.polyhedron.Polyhedron.translate" href="object_.html#openscad_py.polyhedron.Polyhedron.translate">translate</a></code></li>
<li><code><a title="openscad_py.polyhedron.Polyhedron.tube" href="#openscad_py.polyhedron.Polyhedron.tube">tube</a></code></li>
<li><code><a title="openscad_py.polyhedron.Polyhedron.union" href="object_.html#openscad_py.polyhedron.Polyhedron.union">union</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -1,257 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py.radial_offset API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>openscad_py.radial_offset</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="openscad_py.radial_offset.RadialOffset"><code class="flex name class">
<span>class <span class="ident">RadialOffset</span></span>
<span>(</span><span>r,<br>child: <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>)</span>
</code></dt>
<dd>
<div class="desc"><p>A new 2d interior or exterior outline from an existing outline</p>
<p>See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class RadialOffset(Object):
&#34;&#34;&#34;A new 2d interior or exterior outline from an existing outline
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset
&#34;&#34;&#34;
def __init__(self, r, child: Object):
self.r = r
self.child = child
# $fa, $fs, and $fn
def render(self) -&gt; str:
&#34;&#34;&#34;Render the object into OpenSCAD code&#34;&#34;&#34;
return f&#34;offset(r={self.r}){{\n{self.child.render()}\n}}&#34;</code></pre>
</details>
<h3>Ancestors</h3>
<ul class="hlist">
<li><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></li>
</ul>
<h3>Methods</h3>
<dl>
<dt id="openscad_py.radial_offset.RadialOffset.color"><code class="name flex">
<span>def <span class="ident">color</span></span>(<span>self, r, g, b, a=1.0) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.color" href="object_.html#openscad_py.object_.Object.color">color</a></code>
</p>
<div class="desc inherited"><p>Apply a color and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color</a></p></div>
</dd>
<dt id="openscad_py.radial_offset.RadialOffset.delta_offset"><code class="name flex">
<span>def <span class="ident">delta_offset</span></span>(<span>self, delta, chamfer=False)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.delta_offset" href="object_.html#openscad_py.object_.Object.delta_offset">delta_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.radial_offset.RadialOffset.diff"><code class="name flex">
<span>def <span class="ident">diff</span></span>(<span>self,<br>tool: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.diff" href="object_.html#openscad_py.object_.Object.diff">diff</a></code>
</p>
<div class="desc inherited"><p>Remove from the object using a difference operator, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.radial_offset.RadialOffset.extrude"><code class="name flex">
<span>def <span class="ident">extrude</span></span>(<span>self, height, convexity=10, center: bool = False) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.extrude" href="object_.html#openscad_py.object_.Object.extrude">extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a linear extrusion and return a new object.
If <code>center</code> is false, the linear extrusion Z range is from 0 to height;
if it is true, the range is …</p></div>
</dd>
<dt id="openscad_py.radial_offset.RadialOffset.intersection"><code class="name flex">
<span>def <span class="ident">intersection</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.intersection" href="object_.html#openscad_py.object_.Object.intersection">intersection</a></code>
</p>
<div class="desc inherited"><p>Get the intersection of self and an object of list of objects, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.radial_offset.RadialOffset.move"><code class="name flex">
<span>def <span class="ident">move</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.move" href="object_.html#openscad_py.object_.Object.move">move</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object. Synonym of <code>translate()</code></p></div>
</dd>
<dt id="openscad_py.radial_offset.RadialOffset.radial_offset"><code class="name flex">
<span>def <span class="ident">radial_offset</span></span>(<span>self, r)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.radial_offset" href="object_.html#openscad_py.object_.Object.radial_offset">radial_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.radial_offset.RadialOffset.render"><code class="name flex">
<span>def <span class="ident">render</span></span>(<span>self) > str</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.render" href="object_.html#openscad_py.object_.Object.render">render</a></code>
</p>
<div class="desc inherited"><p>Render the object into OpenSCAD code</p></div>
</dd>
<dt id="openscad_py.radial_offset.RadialOffset.rotate"><code class="name flex">
<span>def <span class="ident">rotate</span></span>(<span>self,<br>a,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate" href="object_.html#openscad_py.object_.Object.rotate">rotate</a></code>
</p>
<div class="desc inherited"><p>Apply a rotation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate</a></p></div>
</dd>
<dt id="openscad_py.radial_offset.RadialOffset.rotate_extrude"><code class="name flex">
<span>def <span class="ident">rotate_extrude</span></span>(<span>self, angle, convexity=10) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate_extrude" href="object_.html#openscad_py.object_.Object.rotate_extrude">rotate_extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a rotational extrusion and return a new object. For all points x &gt;= 0 must be true.
See …</p></div>
</dd>
<dt id="openscad_py.radial_offset.RadialOffset.scale"><code class="name flex">
<span>def <span class="ident">scale</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a> | float) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.scale" href="object_.html#openscad_py.object_.Object.scale">scale</a></code>
</p>
<div class="desc inherited"><p>Apply scaling and return a new object. Accepts a vector (a Point object or a list of floats)
or a single float for uniform scaling.
See …</p></div>
</dd>
<dt id="openscad_py.radial_offset.RadialOffset.translate"><code class="name flex">
<span>def <span class="ident">translate</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.translate" href="object_.html#openscad_py.object_.Object.translate">translate</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate</a></p></div>
</dd>
<dt id="openscad_py.radial_offset.RadialOffset.union"><code class="name flex">
<span>def <span class="ident">union</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.union" href="object_.html#openscad_py.object_.Object.union">union</a></code>
</p>
<div class="desc inherited"><p>Form the union of self and an object or list of objects, and return a new object.
See …</p></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="openscad_py" href="index.html">openscad_py</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="openscad_py.radial_offset.RadialOffset" href="#openscad_py.radial_offset.RadialOffset">RadialOffset</a></code></h4>
<ul class="two-column">
<li><code><a title="openscad_py.radial_offset.RadialOffset.color" href="object_.html#openscad_py.radial_offset.RadialOffset.color">color</a></code></li>
<li><code><a title="openscad_py.radial_offset.RadialOffset.delta_offset" href="object_.html#openscad_py.radial_offset.RadialOffset.delta_offset">delta_offset</a></code></li>
<li><code><a title="openscad_py.radial_offset.RadialOffset.diff" href="object_.html#openscad_py.radial_offset.RadialOffset.diff">diff</a></code></li>
<li><code><a title="openscad_py.radial_offset.RadialOffset.extrude" href="object_.html#openscad_py.radial_offset.RadialOffset.extrude">extrude</a></code></li>
<li><code><a title="openscad_py.radial_offset.RadialOffset.intersection" href="object_.html#openscad_py.radial_offset.RadialOffset.intersection">intersection</a></code></li>
<li><code><a title="openscad_py.radial_offset.RadialOffset.move" href="object_.html#openscad_py.radial_offset.RadialOffset.move">move</a></code></li>
<li><code><a title="openscad_py.radial_offset.RadialOffset.radial_offset" href="object_.html#openscad_py.radial_offset.RadialOffset.radial_offset">radial_offset</a></code></li>
<li><code><a title="openscad_py.radial_offset.RadialOffset.render" href="#openscad_py.radial_offset.RadialOffset.render">render</a></code></li>
<li><code><a title="openscad_py.radial_offset.RadialOffset.rotate" href="object_.html#openscad_py.radial_offset.RadialOffset.rotate">rotate</a></code></li>
<li><code><a title="openscad_py.radial_offset.RadialOffset.rotate_extrude" href="object_.html#openscad_py.radial_offset.RadialOffset.rotate_extrude">rotate_extrude</a></code></li>
<li><code><a title="openscad_py.radial_offset.RadialOffset.scale" href="object_.html#openscad_py.radial_offset.RadialOffset.scale">scale</a></code></li>
<li><code><a title="openscad_py.radial_offset.RadialOffset.translate" href="object_.html#openscad_py.radial_offset.RadialOffset.translate">translate</a></code></li>
<li><code><a title="openscad_py.radial_offset.RadialOffset.union" href="object_.html#openscad_py.radial_offset.RadialOffset.union">union</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -1,256 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py.rotate API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>openscad_py.rotate</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="openscad_py.rotate.Rotate"><code class="flex name class">
<span>class <span class="ident">Rotate</span></span>
<span>(</span><span>a,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>,<br>child: <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>)</span>
</code></dt>
<dd>
<div class="desc"><p>Represents a rotation transformation applied to an object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate</a></p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class Rotate(Object):
&#34;&#34;&#34;Represents a rotation transformation applied to an object.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate
&#34;&#34;&#34;
def __init__(self, a, v: TUnion[list, Point], child: Object):
self.a = a
self.v = Point.c(v)
self.child = child
def render(self) -&gt; str:
&#34;&#34;&#34;Render the object into OpenSCAD code&#34;&#34;&#34;
return f&#34;rotate(a={self.a}, v={self.v.render()}){{\n{self.child.render()}\n}}&#34;</code></pre>
</details>
<h3>Ancestors</h3>
<ul class="hlist">
<li><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></li>
</ul>
<h3>Methods</h3>
<dl>
<dt id="openscad_py.rotate.Rotate.color"><code class="name flex">
<span>def <span class="ident">color</span></span>(<span>self, r, g, b, a=1.0) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.color" href="object_.html#openscad_py.object_.Object.color">color</a></code>
</p>
<div class="desc inherited"><p>Apply a color and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color</a></p></div>
</dd>
<dt id="openscad_py.rotate.Rotate.delta_offset"><code class="name flex">
<span>def <span class="ident">delta_offset</span></span>(<span>self, delta, chamfer=False)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.delta_offset" href="object_.html#openscad_py.object_.Object.delta_offset">delta_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.rotate.Rotate.diff"><code class="name flex">
<span>def <span class="ident">diff</span></span>(<span>self,<br>tool: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.diff" href="object_.html#openscad_py.object_.Object.diff">diff</a></code>
</p>
<div class="desc inherited"><p>Remove from the object using a difference operator, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.rotate.Rotate.extrude"><code class="name flex">
<span>def <span class="ident">extrude</span></span>(<span>self, height, convexity=10, center: bool = False) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.extrude" href="object_.html#openscad_py.object_.Object.extrude">extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a linear extrusion and return a new object.
If <code>center</code> is false, the linear extrusion Z range is from 0 to height;
if it is true, the range is …</p></div>
</dd>
<dt id="openscad_py.rotate.Rotate.intersection"><code class="name flex">
<span>def <span class="ident">intersection</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.intersection" href="object_.html#openscad_py.object_.Object.intersection">intersection</a></code>
</p>
<div class="desc inherited"><p>Get the intersection of self and an object of list of objects, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.rotate.Rotate.move"><code class="name flex">
<span>def <span class="ident">move</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.move" href="object_.html#openscad_py.object_.Object.move">move</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object. Synonym of <code>translate()</code></p></div>
</dd>
<dt id="openscad_py.rotate.Rotate.radial_offset"><code class="name flex">
<span>def <span class="ident">radial_offset</span></span>(<span>self, r)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.radial_offset" href="object_.html#openscad_py.object_.Object.radial_offset">radial_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.rotate.Rotate.render"><code class="name flex">
<span>def <span class="ident">render</span></span>(<span>self) > str</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.render" href="object_.html#openscad_py.object_.Object.render">render</a></code>
</p>
<div class="desc inherited"><p>Render the object into OpenSCAD code</p></div>
</dd>
<dt id="openscad_py.rotate.Rotate.rotate"><code class="name flex">
<span>def <span class="ident">rotate</span></span>(<span>self,<br>a,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate" href="object_.html#openscad_py.object_.Object.rotate">rotate</a></code>
</p>
<div class="desc inherited"><p>Apply a rotation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate</a></p></div>
</dd>
<dt id="openscad_py.rotate.Rotate.rotate_extrude"><code class="name flex">
<span>def <span class="ident">rotate_extrude</span></span>(<span>self, angle, convexity=10) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate_extrude" href="object_.html#openscad_py.object_.Object.rotate_extrude">rotate_extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a rotational extrusion and return a new object. For all points x &gt;= 0 must be true.
See …</p></div>
</dd>
<dt id="openscad_py.rotate.Rotate.scale"><code class="name flex">
<span>def <span class="ident">scale</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a> | float) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.scale" href="object_.html#openscad_py.object_.Object.scale">scale</a></code>
</p>
<div class="desc inherited"><p>Apply scaling and return a new object. Accepts a vector (a Point object or a list of floats)
or a single float for uniform scaling.
See …</p></div>
</dd>
<dt id="openscad_py.rotate.Rotate.translate"><code class="name flex">
<span>def <span class="ident">translate</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.translate" href="object_.html#openscad_py.object_.Object.translate">translate</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate</a></p></div>
</dd>
<dt id="openscad_py.rotate.Rotate.union"><code class="name flex">
<span>def <span class="ident">union</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.union" href="object_.html#openscad_py.object_.Object.union">union</a></code>
</p>
<div class="desc inherited"><p>Form the union of self and an object or list of objects, and return a new object.
See …</p></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="openscad_py" href="index.html">openscad_py</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="openscad_py.rotate.Rotate" href="#openscad_py.rotate.Rotate">Rotate</a></code></h4>
<ul class="two-column">
<li><code><a title="openscad_py.rotate.Rotate.color" href="object_.html#openscad_py.rotate.Rotate.color">color</a></code></li>
<li><code><a title="openscad_py.rotate.Rotate.delta_offset" href="object_.html#openscad_py.rotate.Rotate.delta_offset">delta_offset</a></code></li>
<li><code><a title="openscad_py.rotate.Rotate.diff" href="object_.html#openscad_py.rotate.Rotate.diff">diff</a></code></li>
<li><code><a title="openscad_py.rotate.Rotate.extrude" href="object_.html#openscad_py.rotate.Rotate.extrude">extrude</a></code></li>
<li><code><a title="openscad_py.rotate.Rotate.intersection" href="object_.html#openscad_py.rotate.Rotate.intersection">intersection</a></code></li>
<li><code><a title="openscad_py.rotate.Rotate.move" href="object_.html#openscad_py.rotate.Rotate.move">move</a></code></li>
<li><code><a title="openscad_py.rotate.Rotate.radial_offset" href="object_.html#openscad_py.rotate.Rotate.radial_offset">radial_offset</a></code></li>
<li><code><a title="openscad_py.rotate.Rotate.render" href="#openscad_py.rotate.Rotate.render">render</a></code></li>
<li><code><a title="openscad_py.rotate.Rotate.rotate" href="object_.html#openscad_py.rotate.Rotate.rotate">rotate</a></code></li>
<li><code><a title="openscad_py.rotate.Rotate.rotate_extrude" href="object_.html#openscad_py.rotate.Rotate.rotate_extrude">rotate_extrude</a></code></li>
<li><code><a title="openscad_py.rotate.Rotate.scale" href="object_.html#openscad_py.rotate.Rotate.scale">scale</a></code></li>
<li><code><a title="openscad_py.rotate.Rotate.translate" href="object_.html#openscad_py.rotate.Rotate.translate">translate</a></code></li>
<li><code><a title="openscad_py.rotate.Rotate.union" href="object_.html#openscad_py.rotate.Rotate.union">union</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -1,260 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py.rotate_extrude API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>openscad_py.rotate_extrude</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="openscad_py.rotate_extrude.RotateExtrude"><code class="flex name class">
<span>class <span class="ident">RotateExtrude</span></span>
<span>(</span><span>angle,<br>child: <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>,<br>convexity: int = 10)</span>
</code></dt>
<dd>
<div class="desc"><p>Represents a rotational extrusion of a (2D) object.
For all points, x&gt;=0 must hold.</p>
<p>See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/2D_to_3D_Extrusion">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/2D_to_3D_Extrusion</a></p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class RotateExtrude(Object):
&#34;&#34;&#34;Represents a rotational extrusion of a (2D) object.
For all points, x&gt;=0 must hold.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/2D_to_3D_Extrusion
&#34;&#34;&#34;
def __init__(self, angle, child: Object, convexity: int = 10):
self.angle = angle
self.child = child
self.convexity = convexity
# $fa, $fs, $fn
def render(self) -&gt; str:
&#34;&#34;&#34;Render the object into OpenSCAD code&#34;&#34;&#34;
return f&#34;rotate_extrude(angle={self.angle}, convexity={self.convexity}) {{\n{self.child.render()}\n}}&#34;</code></pre>
</details>
<h3>Ancestors</h3>
<ul class="hlist">
<li><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></li>
</ul>
<h3>Methods</h3>
<dl>
<dt id="openscad_py.rotate_extrude.RotateExtrude.color"><code class="name flex">
<span>def <span class="ident">color</span></span>(<span>self, r, g, b, a=1.0) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.color" href="object_.html#openscad_py.object_.Object.color">color</a></code>
</p>
<div class="desc inherited"><p>Apply a color and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color</a></p></div>
</dd>
<dt id="openscad_py.rotate_extrude.RotateExtrude.delta_offset"><code class="name flex">
<span>def <span class="ident">delta_offset</span></span>(<span>self, delta, chamfer=False)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.delta_offset" href="object_.html#openscad_py.object_.Object.delta_offset">delta_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.rotate_extrude.RotateExtrude.diff"><code class="name flex">
<span>def <span class="ident">diff</span></span>(<span>self,<br>tool: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.diff" href="object_.html#openscad_py.object_.Object.diff">diff</a></code>
</p>
<div class="desc inherited"><p>Remove from the object using a difference operator, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.rotate_extrude.RotateExtrude.extrude"><code class="name flex">
<span>def <span class="ident">extrude</span></span>(<span>self, height, convexity=10, center: bool = False) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.extrude" href="object_.html#openscad_py.object_.Object.extrude">extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a linear extrusion and return a new object.
If <code>center</code> is false, the linear extrusion Z range is from 0 to height;
if it is true, the range is …</p></div>
</dd>
<dt id="openscad_py.rotate_extrude.RotateExtrude.intersection"><code class="name flex">
<span>def <span class="ident">intersection</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.intersection" href="object_.html#openscad_py.object_.Object.intersection">intersection</a></code>
</p>
<div class="desc inherited"><p>Get the intersection of self and an object of list of objects, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.rotate_extrude.RotateExtrude.move"><code class="name flex">
<span>def <span class="ident">move</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.move" href="object_.html#openscad_py.object_.Object.move">move</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object. Synonym of <code>translate()</code></p></div>
</dd>
<dt id="openscad_py.rotate_extrude.RotateExtrude.radial_offset"><code class="name flex">
<span>def <span class="ident">radial_offset</span></span>(<span>self, r)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.radial_offset" href="object_.html#openscad_py.object_.Object.radial_offset">radial_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.rotate_extrude.RotateExtrude.render"><code class="name flex">
<span>def <span class="ident">render</span></span>(<span>self) > str</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.render" href="object_.html#openscad_py.object_.Object.render">render</a></code>
</p>
<div class="desc inherited"><p>Render the object into OpenSCAD code</p></div>
</dd>
<dt id="openscad_py.rotate_extrude.RotateExtrude.rotate"><code class="name flex">
<span>def <span class="ident">rotate</span></span>(<span>self,<br>a,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate" href="object_.html#openscad_py.object_.Object.rotate">rotate</a></code>
</p>
<div class="desc inherited"><p>Apply a rotation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate</a></p></div>
</dd>
<dt id="openscad_py.rotate_extrude.RotateExtrude.rotate_extrude"><code class="name flex">
<span>def <span class="ident">rotate_extrude</span></span>(<span>self, angle, convexity=10) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate_extrude" href="object_.html#openscad_py.object_.Object.rotate_extrude">rotate_extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a rotational extrusion and return a new object. For all points x &gt;= 0 must be true.
See …</p></div>
</dd>
<dt id="openscad_py.rotate_extrude.RotateExtrude.scale"><code class="name flex">
<span>def <span class="ident">scale</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a> | float) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.scale" href="object_.html#openscad_py.object_.Object.scale">scale</a></code>
</p>
<div class="desc inherited"><p>Apply scaling and return a new object. Accepts a vector (a Point object or a list of floats)
or a single float for uniform scaling.
See …</p></div>
</dd>
<dt id="openscad_py.rotate_extrude.RotateExtrude.translate"><code class="name flex">
<span>def <span class="ident">translate</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.translate" href="object_.html#openscad_py.object_.Object.translate">translate</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate</a></p></div>
</dd>
<dt id="openscad_py.rotate_extrude.RotateExtrude.union"><code class="name flex">
<span>def <span class="ident">union</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.union" href="object_.html#openscad_py.object_.Object.union">union</a></code>
</p>
<div class="desc inherited"><p>Form the union of self and an object or list of objects, and return a new object.
See …</p></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="openscad_py" href="index.html">openscad_py</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="openscad_py.rotate_extrude.RotateExtrude" href="#openscad_py.rotate_extrude.RotateExtrude">RotateExtrude</a></code></h4>
<ul class="two-column">
<li><code><a title="openscad_py.rotate_extrude.RotateExtrude.color" href="object_.html#openscad_py.rotate_extrude.RotateExtrude.color">color</a></code></li>
<li><code><a title="openscad_py.rotate_extrude.RotateExtrude.delta_offset" href="object_.html#openscad_py.rotate_extrude.RotateExtrude.delta_offset">delta_offset</a></code></li>
<li><code><a title="openscad_py.rotate_extrude.RotateExtrude.diff" href="object_.html#openscad_py.rotate_extrude.RotateExtrude.diff">diff</a></code></li>
<li><code><a title="openscad_py.rotate_extrude.RotateExtrude.extrude" href="object_.html#openscad_py.rotate_extrude.RotateExtrude.extrude">extrude</a></code></li>
<li><code><a title="openscad_py.rotate_extrude.RotateExtrude.intersection" href="object_.html#openscad_py.rotate_extrude.RotateExtrude.intersection">intersection</a></code></li>
<li><code><a title="openscad_py.rotate_extrude.RotateExtrude.move" href="object_.html#openscad_py.rotate_extrude.RotateExtrude.move">move</a></code></li>
<li><code><a title="openscad_py.rotate_extrude.RotateExtrude.radial_offset" href="object_.html#openscad_py.rotate_extrude.RotateExtrude.radial_offset">radial_offset</a></code></li>
<li><code><a title="openscad_py.rotate_extrude.RotateExtrude.render" href="#openscad_py.rotate_extrude.RotateExtrude.render">render</a></code></li>
<li><code><a title="openscad_py.rotate_extrude.RotateExtrude.rotate" href="object_.html#openscad_py.rotate_extrude.RotateExtrude.rotate">rotate</a></code></li>
<li><code><a title="openscad_py.rotate_extrude.RotateExtrude.rotate_extrude" href="object_.html#openscad_py.rotate_extrude.RotateExtrude.rotate_extrude">rotate_extrude</a></code></li>
<li><code><a title="openscad_py.rotate_extrude.RotateExtrude.scale" href="object_.html#openscad_py.rotate_extrude.RotateExtrude.scale">scale</a></code></li>
<li><code><a title="openscad_py.rotate_extrude.RotateExtrude.translate" href="object_.html#openscad_py.rotate_extrude.RotateExtrude.translate">translate</a></code></li>
<li><code><a title="openscad_py.rotate_extrude.RotateExtrude.union" href="object_.html#openscad_py.rotate_extrude.RotateExtrude.union">union</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -1,257 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py.scale API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>openscad_py.scale</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="openscad_py.scale.Scale"><code class="flex name class">
<span>class <span class="ident">Scale</span></span>
<span>(</span><span>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a> | float | int,<br>child: <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>)</span>
</code></dt>
<dd>
<div class="desc"><p>Represents a scale transformation applied to an object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#scale">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#scale</a></p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class Scale(Object):
&#34;&#34;&#34;Represents a scale transformation applied to an object.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#scale
&#34;&#34;&#34;
def __init__(self, v: TUnion[list, Point, float, int], child: Object):
if isinstance(v, float) or isinstance(v, int):
v = [v, v, v]
self.v = Point.c(v)
self.child = child
def render(self) -&gt; str:
&#34;&#34;&#34;Render the object into OpenSCAD code&#34;&#34;&#34;
return f&#34;scale(v={self.v.render()}){{\n{self.child.render()}\n}}&#34;</code></pre>
</details>
<h3>Ancestors</h3>
<ul class="hlist">
<li><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></li>
</ul>
<h3>Methods</h3>
<dl>
<dt id="openscad_py.scale.Scale.color"><code class="name flex">
<span>def <span class="ident">color</span></span>(<span>self, r, g, b, a=1.0) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.color" href="object_.html#openscad_py.object_.Object.color">color</a></code>
</p>
<div class="desc inherited"><p>Apply a color and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color</a></p></div>
</dd>
<dt id="openscad_py.scale.Scale.delta_offset"><code class="name flex">
<span>def <span class="ident">delta_offset</span></span>(<span>self, delta, chamfer=False)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.delta_offset" href="object_.html#openscad_py.object_.Object.delta_offset">delta_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.scale.Scale.diff"><code class="name flex">
<span>def <span class="ident">diff</span></span>(<span>self,<br>tool: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.diff" href="object_.html#openscad_py.object_.Object.diff">diff</a></code>
</p>
<div class="desc inherited"><p>Remove from the object using a difference operator, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.scale.Scale.extrude"><code class="name flex">
<span>def <span class="ident">extrude</span></span>(<span>self, height, convexity=10, center: bool = False) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.extrude" href="object_.html#openscad_py.object_.Object.extrude">extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a linear extrusion and return a new object.
If <code>center</code> is false, the linear extrusion Z range is from 0 to height;
if it is true, the range is …</p></div>
</dd>
<dt id="openscad_py.scale.Scale.intersection"><code class="name flex">
<span>def <span class="ident">intersection</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.intersection" href="object_.html#openscad_py.object_.Object.intersection">intersection</a></code>
</p>
<div class="desc inherited"><p>Get the intersection of self and an object of list of objects, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.scale.Scale.move"><code class="name flex">
<span>def <span class="ident">move</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.move" href="object_.html#openscad_py.object_.Object.move">move</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object. Synonym of <code>translate()</code></p></div>
</dd>
<dt id="openscad_py.scale.Scale.radial_offset"><code class="name flex">
<span>def <span class="ident">radial_offset</span></span>(<span>self, r)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.radial_offset" href="object_.html#openscad_py.object_.Object.radial_offset">radial_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.scale.Scale.render"><code class="name flex">
<span>def <span class="ident">render</span></span>(<span>self) > str</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.render" href="object_.html#openscad_py.object_.Object.render">render</a></code>
</p>
<div class="desc inherited"><p>Render the object into OpenSCAD code</p></div>
</dd>
<dt id="openscad_py.scale.Scale.rotate"><code class="name flex">
<span>def <span class="ident">rotate</span></span>(<span>self,<br>a,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate" href="object_.html#openscad_py.object_.Object.rotate">rotate</a></code>
</p>
<div class="desc inherited"><p>Apply a rotation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate</a></p></div>
</dd>
<dt id="openscad_py.scale.Scale.rotate_extrude"><code class="name flex">
<span>def <span class="ident">rotate_extrude</span></span>(<span>self, angle, convexity=10) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate_extrude" href="object_.html#openscad_py.object_.Object.rotate_extrude">rotate_extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a rotational extrusion and return a new object. For all points x &gt;= 0 must be true.
See …</p></div>
</dd>
<dt id="openscad_py.scale.Scale.scale"><code class="name flex">
<span>def <span class="ident">scale</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a> | float) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.scale" href="object_.html#openscad_py.object_.Object.scale">scale</a></code>
</p>
<div class="desc inherited"><p>Apply scaling and return a new object. Accepts a vector (a Point object or a list of floats)
or a single float for uniform scaling.
See …</p></div>
</dd>
<dt id="openscad_py.scale.Scale.translate"><code class="name flex">
<span>def <span class="ident">translate</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.translate" href="object_.html#openscad_py.object_.Object.translate">translate</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate</a></p></div>
</dd>
<dt id="openscad_py.scale.Scale.union"><code class="name flex">
<span>def <span class="ident">union</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.union" href="object_.html#openscad_py.object_.Object.union">union</a></code>
</p>
<div class="desc inherited"><p>Form the union of self and an object or list of objects, and return a new object.
See …</p></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="openscad_py" href="index.html">openscad_py</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="openscad_py.scale.Scale" href="#openscad_py.scale.Scale">Scale</a></code></h4>
<ul class="two-column">
<li><code><a title="openscad_py.scale.Scale.color" href="object_.html#openscad_py.scale.Scale.color">color</a></code></li>
<li><code><a title="openscad_py.scale.Scale.delta_offset" href="object_.html#openscad_py.scale.Scale.delta_offset">delta_offset</a></code></li>
<li><code><a title="openscad_py.scale.Scale.diff" href="object_.html#openscad_py.scale.Scale.diff">diff</a></code></li>
<li><code><a title="openscad_py.scale.Scale.extrude" href="object_.html#openscad_py.scale.Scale.extrude">extrude</a></code></li>
<li><code><a title="openscad_py.scale.Scale.intersection" href="object_.html#openscad_py.scale.Scale.intersection">intersection</a></code></li>
<li><code><a title="openscad_py.scale.Scale.move" href="object_.html#openscad_py.scale.Scale.move">move</a></code></li>
<li><code><a title="openscad_py.scale.Scale.radial_offset" href="object_.html#openscad_py.scale.Scale.radial_offset">radial_offset</a></code></li>
<li><code><a title="openscad_py.scale.Scale.render" href="#openscad_py.scale.Scale.render">render</a></code></li>
<li><code><a title="openscad_py.scale.Scale.rotate" href="object_.html#openscad_py.scale.Scale.rotate">rotate</a></code></li>
<li><code><a title="openscad_py.scale.Scale.rotate_extrude" href="object_.html#openscad_py.scale.Scale.rotate_extrude">rotate_extrude</a></code></li>
<li><code><a title="openscad_py.scale.Scale.scale" href="object_.html#openscad_py.scale.Scale.scale">scale</a></code></li>
<li><code><a title="openscad_py.scale.Scale.translate" href="object_.html#openscad_py.scale.Scale.translate">translate</a></code></li>
<li><code><a title="openscad_py.scale.Scale.union" href="object_.html#openscad_py.scale.Scale.union">union</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -1,258 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py.sphere API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>openscad_py.sphere</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="openscad_py.sphere.Sphere"><code class="flex name class">
<span>class <span class="ident">Sphere</span></span>
<span>(</span><span>r)</span>
</code></dt>
<dd>
<div class="desc"><p>A 3D primitive, sphere.
Creates a sphere at the origin of the coordinate system.</p>
<p>See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#sphere">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#sphere</a></p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class Sphere(Object):
&#34;&#34;&#34;A 3D primitive, sphere.
Creates a sphere at the origin of the coordinate system.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#sphere
&#34;&#34;&#34;
def __init__(self, r):
self.r = r
# $fa, $fs, $fn
def render(self):
&#34;&#34;&#34;Render the object into OpenSCAD code&#34;&#34;&#34;
return f&#34;sphere(r={self.r});&#34;</code></pre>
</details>
<h3>Ancestors</h3>
<ul class="hlist">
<li><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></li>
</ul>
<h3>Methods</h3>
<dl>
<dt id="openscad_py.sphere.Sphere.color"><code class="name flex">
<span>def <span class="ident">color</span></span>(<span>self, r, g, b, a=1.0) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.color" href="object_.html#openscad_py.object_.Object.color">color</a></code>
</p>
<div class="desc inherited"><p>Apply a color and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color</a></p></div>
</dd>
<dt id="openscad_py.sphere.Sphere.delta_offset"><code class="name flex">
<span>def <span class="ident">delta_offset</span></span>(<span>self, delta, chamfer=False)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.delta_offset" href="object_.html#openscad_py.object_.Object.delta_offset">delta_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.sphere.Sphere.diff"><code class="name flex">
<span>def <span class="ident">diff</span></span>(<span>self,<br>tool: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.diff" href="object_.html#openscad_py.object_.Object.diff">diff</a></code>
</p>
<div class="desc inherited"><p>Remove from the object using a difference operator, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.sphere.Sphere.extrude"><code class="name flex">
<span>def <span class="ident">extrude</span></span>(<span>self, height, convexity=10, center: bool = False) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.extrude" href="object_.html#openscad_py.object_.Object.extrude">extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a linear extrusion and return a new object.
If <code>center</code> is false, the linear extrusion Z range is from 0 to height;
if it is true, the range is …</p></div>
</dd>
<dt id="openscad_py.sphere.Sphere.intersection"><code class="name flex">
<span>def <span class="ident">intersection</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.intersection" href="object_.html#openscad_py.object_.Object.intersection">intersection</a></code>
</p>
<div class="desc inherited"><p>Get the intersection of self and an object of list of objects, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.sphere.Sphere.move"><code class="name flex">
<span>def <span class="ident">move</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.move" href="object_.html#openscad_py.object_.Object.move">move</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object. Synonym of <code>translate()</code></p></div>
</dd>
<dt id="openscad_py.sphere.Sphere.radial_offset"><code class="name flex">
<span>def <span class="ident">radial_offset</span></span>(<span>self, r)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.radial_offset" href="object_.html#openscad_py.object_.Object.radial_offset">radial_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.sphere.Sphere.render"><code class="name flex">
<span>def <span class="ident">render</span></span>(<span>self)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.render" href="object_.html#openscad_py.object_.Object.render">render</a></code>
</p>
<div class="desc inherited"><p>Render the object into OpenSCAD code</p></div>
</dd>
<dt id="openscad_py.sphere.Sphere.rotate"><code class="name flex">
<span>def <span class="ident">rotate</span></span>(<span>self,<br>a,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate" href="object_.html#openscad_py.object_.Object.rotate">rotate</a></code>
</p>
<div class="desc inherited"><p>Apply a rotation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate</a></p></div>
</dd>
<dt id="openscad_py.sphere.Sphere.rotate_extrude"><code class="name flex">
<span>def <span class="ident">rotate_extrude</span></span>(<span>self, angle, convexity=10) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate_extrude" href="object_.html#openscad_py.object_.Object.rotate_extrude">rotate_extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a rotational extrusion and return a new object. For all points x &gt;= 0 must be true.
See …</p></div>
</dd>
<dt id="openscad_py.sphere.Sphere.scale"><code class="name flex">
<span>def <span class="ident">scale</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a> | float) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.scale" href="object_.html#openscad_py.object_.Object.scale">scale</a></code>
</p>
<div class="desc inherited"><p>Apply scaling and return a new object. Accepts a vector (a Point object or a list of floats)
or a single float for uniform scaling.
See …</p></div>
</dd>
<dt id="openscad_py.sphere.Sphere.translate"><code class="name flex">
<span>def <span class="ident">translate</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.translate" href="object_.html#openscad_py.object_.Object.translate">translate</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate</a></p></div>
</dd>
<dt id="openscad_py.sphere.Sphere.union"><code class="name flex">
<span>def <span class="ident">union</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.union" href="object_.html#openscad_py.object_.Object.union">union</a></code>
</p>
<div class="desc inherited"><p>Form the union of self and an object or list of objects, and return a new object.
See …</p></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="openscad_py" href="index.html">openscad_py</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="openscad_py.sphere.Sphere" href="#openscad_py.sphere.Sphere">Sphere</a></code></h4>
<ul class="two-column">
<li><code><a title="openscad_py.sphere.Sphere.color" href="object_.html#openscad_py.sphere.Sphere.color">color</a></code></li>
<li><code><a title="openscad_py.sphere.Sphere.delta_offset" href="object_.html#openscad_py.sphere.Sphere.delta_offset">delta_offset</a></code></li>
<li><code><a title="openscad_py.sphere.Sphere.diff" href="object_.html#openscad_py.sphere.Sphere.diff">diff</a></code></li>
<li><code><a title="openscad_py.sphere.Sphere.extrude" href="object_.html#openscad_py.sphere.Sphere.extrude">extrude</a></code></li>
<li><code><a title="openscad_py.sphere.Sphere.intersection" href="object_.html#openscad_py.sphere.Sphere.intersection">intersection</a></code></li>
<li><code><a title="openscad_py.sphere.Sphere.move" href="object_.html#openscad_py.sphere.Sphere.move">move</a></code></li>
<li><code><a title="openscad_py.sphere.Sphere.radial_offset" href="object_.html#openscad_py.sphere.Sphere.radial_offset">radial_offset</a></code></li>
<li><code><a title="openscad_py.sphere.Sphere.render" href="#openscad_py.sphere.Sphere.render">render</a></code></li>
<li><code><a title="openscad_py.sphere.Sphere.rotate" href="object_.html#openscad_py.sphere.Sphere.rotate">rotate</a></code></li>
<li><code><a title="openscad_py.sphere.Sphere.rotate_extrude" href="object_.html#openscad_py.sphere.Sphere.rotate_extrude">rotate_extrude</a></code></li>
<li><code><a title="openscad_py.sphere.Sphere.scale" href="object_.html#openscad_py.sphere.Sphere.scale">scale</a></code></li>
<li><code><a title="openscad_py.sphere.Sphere.translate" href="object_.html#openscad_py.sphere.Sphere.translate">translate</a></code></li>
<li><code><a title="openscad_py.sphere.Sphere.union" href="object_.html#openscad_py.sphere.Sphere.union">union</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -1,255 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py.translate API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>openscad_py.translate</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="openscad_py.translate.Translate"><code class="flex name class">
<span>class <span class="ident">Translate</span></span>
<span>(</span><span>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>,<br>child: <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>)</span>
</code></dt>
<dd>
<div class="desc"><p>Represents a translation transformation applied to an object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate</a></p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class Translate(Object):
&#34;&#34;&#34;Represents a translation transformation applied to an object.
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate
&#34;&#34;&#34;
def __init__(self, v: TUnion[list, Point], child: Object):
self.v = Point.c(v)
self.child = child
def render(self) -&gt; str:
&#34;&#34;&#34;Render the object into OpenSCAD code&#34;&#34;&#34;
return f&#34;translate(v={self.v.render()}){{\n{self.child.render()}\n}}&#34;</code></pre>
</details>
<h3>Ancestors</h3>
<ul class="hlist">
<li><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></li>
</ul>
<h3>Methods</h3>
<dl>
<dt id="openscad_py.translate.Translate.color"><code class="name flex">
<span>def <span class="ident">color</span></span>(<span>self, r, g, b, a=1.0) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.color" href="object_.html#openscad_py.object_.Object.color">color</a></code>
</p>
<div class="desc inherited"><p>Apply a color and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color</a></p></div>
</dd>
<dt id="openscad_py.translate.Translate.delta_offset"><code class="name flex">
<span>def <span class="ident">delta_offset</span></span>(<span>self, delta, chamfer=False)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.delta_offset" href="object_.html#openscad_py.object_.Object.delta_offset">delta_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.translate.Translate.diff"><code class="name flex">
<span>def <span class="ident">diff</span></span>(<span>self,<br>tool: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.diff" href="object_.html#openscad_py.object_.Object.diff">diff</a></code>
</p>
<div class="desc inherited"><p>Remove from the object using a difference operator, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.translate.Translate.extrude"><code class="name flex">
<span>def <span class="ident">extrude</span></span>(<span>self, height, convexity=10, center: bool = False) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.extrude" href="object_.html#openscad_py.object_.Object.extrude">extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a linear extrusion and return a new object.
If <code>center</code> is false, the linear extrusion Z range is from 0 to height;
if it is true, the range is …</p></div>
</dd>
<dt id="openscad_py.translate.Translate.intersection"><code class="name flex">
<span>def <span class="ident">intersection</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.intersection" href="object_.html#openscad_py.object_.Object.intersection">intersection</a></code>
</p>
<div class="desc inherited"><p>Get the intersection of self and an object of list of objects, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.translate.Translate.move"><code class="name flex">
<span>def <span class="ident">move</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.move" href="object_.html#openscad_py.object_.Object.move">move</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object. Synonym of <code>translate()</code></p></div>
</dd>
<dt id="openscad_py.translate.Translate.radial_offset"><code class="name flex">
<span>def <span class="ident">radial_offset</span></span>(<span>self, r)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.radial_offset" href="object_.html#openscad_py.object_.Object.radial_offset">radial_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.translate.Translate.render"><code class="name flex">
<span>def <span class="ident">render</span></span>(<span>self) > str</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.render" href="object_.html#openscad_py.object_.Object.render">render</a></code>
</p>
<div class="desc inherited"><p>Render the object into OpenSCAD code</p></div>
</dd>
<dt id="openscad_py.translate.Translate.rotate"><code class="name flex">
<span>def <span class="ident">rotate</span></span>(<span>self,<br>a,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate" href="object_.html#openscad_py.object_.Object.rotate">rotate</a></code>
</p>
<div class="desc inherited"><p>Apply a rotation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate</a></p></div>
</dd>
<dt id="openscad_py.translate.Translate.rotate_extrude"><code class="name flex">
<span>def <span class="ident">rotate_extrude</span></span>(<span>self, angle, convexity=10) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate_extrude" href="object_.html#openscad_py.object_.Object.rotate_extrude">rotate_extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a rotational extrusion and return a new object. For all points x &gt;= 0 must be true.
See …</p></div>
</dd>
<dt id="openscad_py.translate.Translate.scale"><code class="name flex">
<span>def <span class="ident">scale</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a> | float) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.scale" href="object_.html#openscad_py.object_.Object.scale">scale</a></code>
</p>
<div class="desc inherited"><p>Apply scaling and return a new object. Accepts a vector (a Point object or a list of floats)
or a single float for uniform scaling.
See …</p></div>
</dd>
<dt id="openscad_py.translate.Translate.translate"><code class="name flex">
<span>def <span class="ident">translate</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.translate" href="object_.html#openscad_py.object_.Object.translate">translate</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate</a></p></div>
</dd>
<dt id="openscad_py.translate.Translate.union"><code class="name flex">
<span>def <span class="ident">union</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.union" href="object_.html#openscad_py.object_.Object.union">union</a></code>
</p>
<div class="desc inherited"><p>Form the union of self and an object or list of objects, and return a new object.
See …</p></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="openscad_py" href="index.html">openscad_py</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="openscad_py.translate.Translate" href="#openscad_py.translate.Translate">Translate</a></code></h4>
<ul class="two-column">
<li><code><a title="openscad_py.translate.Translate.color" href="object_.html#openscad_py.translate.Translate.color">color</a></code></li>
<li><code><a title="openscad_py.translate.Translate.delta_offset" href="object_.html#openscad_py.translate.Translate.delta_offset">delta_offset</a></code></li>
<li><code><a title="openscad_py.translate.Translate.diff" href="object_.html#openscad_py.translate.Translate.diff">diff</a></code></li>
<li><code><a title="openscad_py.translate.Translate.extrude" href="object_.html#openscad_py.translate.Translate.extrude">extrude</a></code></li>
<li><code><a title="openscad_py.translate.Translate.intersection" href="object_.html#openscad_py.translate.Translate.intersection">intersection</a></code></li>
<li><code><a title="openscad_py.translate.Translate.move" href="object_.html#openscad_py.translate.Translate.move">move</a></code></li>
<li><code><a title="openscad_py.translate.Translate.radial_offset" href="object_.html#openscad_py.translate.Translate.radial_offset">radial_offset</a></code></li>
<li><code><a title="openscad_py.translate.Translate.render" href="#openscad_py.translate.Translate.render">render</a></code></li>
<li><code><a title="openscad_py.translate.Translate.rotate" href="object_.html#openscad_py.translate.Translate.rotate">rotate</a></code></li>
<li><code><a title="openscad_py.translate.Translate.rotate_extrude" href="object_.html#openscad_py.translate.Translate.rotate_extrude">rotate_extrude</a></code></li>
<li><code><a title="openscad_py.translate.Translate.scale" href="object_.html#openscad_py.translate.Translate.scale">scale</a></code></li>
<li><code><a title="openscad_py.translate.Translate.translate" href="object_.html#openscad_py.translate.Translate.translate">translate</a></code></li>
<li><code><a title="openscad_py.translate.Translate.union" href="object_.html#openscad_py.translate.Translate.union">union</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -1,257 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.3">
<title>openscad_py.union API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>openscad_py.union</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="openscad_py.union.Union"><code class="flex name class">
<span>class <span class="ident">Union</span></span>
<span>(</span><span>child: list | <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>)</span>
</code></dt>
<dd>
<div class="desc"><p>Represents a union applied to an object (usually a collection of objects).
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#union">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#union</a></p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class Union(Object):
&#34;&#34;&#34;Represents a union applied to an object (usually a collection of objects).
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#union
&#34;&#34;&#34;
def __init__(self, child: TUnion[Object, list]):
self.child = Collection.c(child)
def render(self) -&gt; str:
&#34;&#34;&#34;Render the object into OpenSCAD code&#34;&#34;&#34;
return f&#34;union(){{ {self.child.render()} }}&#34;
def union(self, objects: TUnion[list, Object]) -&gt; Object:
return self.__class__(self.child._add(objects))</code></pre>
</details>
<h3>Ancestors</h3>
<ul class="hlist">
<li><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></li>
</ul>
<h3>Methods</h3>
<dl>
<dt id="openscad_py.union.Union.color"><code class="name flex">
<span>def <span class="ident">color</span></span>(<span>self, r, g, b, a=1.0) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.color" href="object_.html#openscad_py.object_.Object.color">color</a></code>
</p>
<div class="desc inherited"><p>Apply a color and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color</a></p></div>
</dd>
<dt id="openscad_py.union.Union.delta_offset"><code class="name flex">
<span>def <span class="ident">delta_offset</span></span>(<span>self, delta, chamfer=False)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.delta_offset" href="object_.html#openscad_py.object_.Object.delta_offset">delta_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.union.Union.diff"><code class="name flex">
<span>def <span class="ident">diff</span></span>(<span>self,<br>tool: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.diff" href="object_.html#openscad_py.object_.Object.diff">diff</a></code>
</p>
<div class="desc inherited"><p>Remove from the object using a difference operator, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.union.Union.extrude"><code class="name flex">
<span>def <span class="ident">extrude</span></span>(<span>self, height, convexity=10, center: bool = False) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.extrude" href="object_.html#openscad_py.object_.Object.extrude">extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a linear extrusion and return a new object.
If <code>center</code> is false, the linear extrusion Z range is from 0 to height;
if it is true, the range is …</p></div>
</dd>
<dt id="openscad_py.union.Union.intersection"><code class="name flex">
<span>def <span class="ident">intersection</span></span>(<span>self,<br>objects: list | ForwardRef('<a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>')) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.intersection" href="object_.html#openscad_py.object_.Object.intersection">intersection</a></code>
</p>
<div class="desc inherited"><p>Get the intersection of self and an object of list of objects, and return a new object.
See …</p></div>
</dd>
<dt id="openscad_py.union.Union.move"><code class="name flex">
<span>def <span class="ident">move</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.move" href="object_.html#openscad_py.object_.Object.move">move</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object. Synonym of <code>translate()</code></p></div>
</dd>
<dt id="openscad_py.union.Union.radial_offset"><code class="name flex">
<span>def <span class="ident">radial_offset</span></span>(<span>self, r)</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.radial_offset" href="object_.html#openscad_py.object_.Object.radial_offset">radial_offset</a></code>
</p>
<div class="desc inherited"><p>Return a new 2D interior or exterior outline from an existing outline.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset</a></p></div>
</dd>
<dt id="openscad_py.union.Union.render"><code class="name flex">
<span>def <span class="ident">render</span></span>(<span>self) > str</span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.render" href="object_.html#openscad_py.object_.Object.render">render</a></code>
</p>
<div class="desc inherited"><p>Render the object into OpenSCAD code</p></div>
</dd>
<dt id="openscad_py.union.Union.rotate"><code class="name flex">
<span>def <span class="ident">rotate</span></span>(<span>self,<br>a,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate" href="object_.html#openscad_py.object_.Object.rotate">rotate</a></code>
</p>
<div class="desc inherited"><p>Apply a rotation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate</a></p></div>
</dd>
<dt id="openscad_py.union.Union.rotate_extrude"><code class="name flex">
<span>def <span class="ident">rotate_extrude</span></span>(<span>self, angle, convexity=10) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.rotate_extrude" href="object_.html#openscad_py.object_.Object.rotate_extrude">rotate_extrude</a></code>
</p>
<div class="desc inherited"><p>Apply a rotational extrusion and return a new object. For all points x &gt;= 0 must be true.
See …</p></div>
</dd>
<dt id="openscad_py.union.Union.scale"><code class="name flex">
<span>def <span class="ident">scale</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a> | float) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.scale" href="object_.html#openscad_py.object_.Object.scale">scale</a></code>
</p>
<div class="desc inherited"><p>Apply scaling and return a new object. Accepts a vector (a Point object or a list of floats)
or a single float for uniform scaling.
See …</p></div>
</dd>
<dt id="openscad_py.union.Union.translate"><code class="name flex">
<span>def <span class="ident">translate</span></span>(<span>self,<br>v: list | <a title="openscad_py.point.Point" href="point.html#openscad_py.point.Point">Point</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.translate" href="object_.html#openscad_py.object_.Object.translate">translate</a></code>
</p>
<div class="desc inherited"><p>Apply a translation and return a new object.
See <a href="https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate">https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate</a></p></div>
</dd>
<dt id="openscad_py.union.Union.union"><code class="name flex">
<span>def <span class="ident">union</span></span>(<span>self,<br>objects: list | <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a>) > <a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></span>
</code></dt>
<dd>
<p class="inheritance">
<em>Inherited from:</em>
<code><a title="openscad_py.object_.Object" href="object_.html#openscad_py.object_.Object">Object</a></code>.<code><a title="openscad_py.object_.Object.union" href="object_.html#openscad_py.object_.Object.union">union</a></code>
</p>
<div class="desc inherited"><p>Form the union of self and an object or list of objects, and return a new object.
See …</p></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="openscad_py" href="index.html">openscad_py</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="openscad_py.union.Union" href="#openscad_py.union.Union">Union</a></code></h4>
<ul class="two-column">
<li><code><a title="openscad_py.union.Union.color" href="object_.html#openscad_py.union.Union.color">color</a></code></li>
<li><code><a title="openscad_py.union.Union.delta_offset" href="object_.html#openscad_py.union.Union.delta_offset">delta_offset</a></code></li>
<li><code><a title="openscad_py.union.Union.diff" href="object_.html#openscad_py.union.Union.diff">diff</a></code></li>
<li><code><a title="openscad_py.union.Union.extrude" href="object_.html#openscad_py.union.Union.extrude">extrude</a></code></li>
<li><code><a title="openscad_py.union.Union.intersection" href="object_.html#openscad_py.union.Union.intersection">intersection</a></code></li>
<li><code><a title="openscad_py.union.Union.move" href="object_.html#openscad_py.union.Union.move">move</a></code></li>
<li><code><a title="openscad_py.union.Union.radial_offset" href="object_.html#openscad_py.union.Union.radial_offset">radial_offset</a></code></li>
<li><code><a title="openscad_py.union.Union.render" href="#openscad_py.union.Union.render">render</a></code></li>
<li><code><a title="openscad_py.union.Union.rotate" href="object_.html#openscad_py.union.Union.rotate">rotate</a></code></li>
<li><code><a title="openscad_py.union.Union.rotate_extrude" href="object_.html#openscad_py.union.Union.rotate_extrude">rotate_extrude</a></code></li>
<li><code><a title="openscad_py.union.Union.scale" href="object_.html#openscad_py.union.Union.scale">scale</a></code></li>
<li><code><a title="openscad_py.union.Union.translate" href="object_.html#openscad_py.union.Union.translate">translate</a></code></li>
<li><code><a title="openscad_py.union.Union.union" href="#openscad_py.union.Union.union">union</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.3</a>.</p>
</footer>
</body>
</html>

View file

@ -13,11 +13,12 @@ class PathTube(Object):
def __init__(self, points: List[TUnion[list, Point]], radius: TUnion[float, list], fn: int, make_torus: bool = False, convexity: int = 10): def __init__(self, points: List[TUnion[list, Point]], radius: TUnion[float, list], fn: int, make_torus: bool = False, convexity: int = 10):
""" """
points: The list of points Arguments:
radius: A float or a list of floats for each point - points: The list of points
fn: int, The number of sides - radius: A float or a list of floats for each point
make_torus: bool, Whether to make a torus instead of a pipe with ends. Warning: the last segment may be twisted. - fn: int, The number of sides
convexity: see openscad - make_torus: bool, Whether to make a torus instead of a pipe with ends. Warning: the last segment may be twisted.
- convexity: see openscad
""" """
self.points = [Point.c(p) for p in points] self.points = [Point.c(p) for p in points]
self.radii = radius if isinstance(radius, list) else [radius for p in points] self.radii = radius if isinstance(radius, list) else [radius for p in points]

View file

@ -27,9 +27,10 @@ class Polyhedron(Object):
Each row of points must be oriented clockwise when looking from the first row (loop) toward the next. Each row of points must be oriented clockwise when looking from the first row (loop) toward the next.
The rows of points form loops. The rows of points form loops.
points: A 2D array of points Arguments:
torus_connect_offset: int, Whether to shift which points are connected in a torus in the last segment - points: A 2D array of points
convexity: int, see OpensCAD - torus_connect_offset: int, Whether to shift which points are connected in a torus in the last segment
- convexity: int, see OpensCAD
""" """
return cls.tube(points=points, convexity=convexity, make_torus=True, torus_connect_offset=torus_connect_offset) return cls.tube(points=points, convexity=convexity, make_torus=True, torus_connect_offset=torus_connect_offset)
@ -38,11 +39,12 @@ class Polyhedron(Object):
"""Construct a tube-like polyhedron from a 2D array of points. """Construct a tube-like polyhedron from a 2D array of points.
Each row of points must be oriented clockwise when looking at the pipe at the start inwards. Each row of points must be oriented clockwise when looking at the pipe at the start inwards.
The rows of points form loops. The rows of points form loops.
points: A 2D array of points Arguments:
make_torus: bool, Whether to create a torus-like shape instead of a pipe with ends - points: A 2D array of points
torus_connect_offset: int, Whether to shift which points are connected in a torus in the last segment - make_torus: bool, Whether to create a torus-like shape instead of a pipe with ends
convexity: int, see OpensCAD - torus_connect_offset: int, Whether to shift which points are connected in a torus in the last segment
- convexity: int, see OpensCAD
""" """
rows = len(points) rows = len(points)
row_len = len(points[0]) row_len = len(points[0])
@ -96,9 +98,10 @@ class Polyhedron(Object):
"""Construct a polyhedron from a 2D matrix of heights. If the height at [0,0] is Z, it maps """Construct a polyhedron from a 2D matrix of heights. If the height at [0,0] is Z, it maps
to the point (0, 0, Z). to the point (0, 0, Z).
heights: The 2D matrix of heights Arguments:
base: The height at which the base will be - in the scale of heights (optional; default 0) - heights: The 2D matrix of heights
convexity: see OpenSCAD - base: The height at which the base will be - in the scale of heights (optional; default 0)
- convexity: see OpenSCAD
""" """
rows = len(heights) rows = len(heights)
row_len = len(heights[0]) row_len = len(heights[0])