You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

484 lines
27 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!doctype html>
<html class="no-js" lang="en">
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="stl_parser module" href="stl_parser.html" /><link rel="prev" title="log module" href="log.html" />
<!-- Generated with Sphinx 6.2.1 and Furo 2023.03.27 -->
<title>main module - Generování 3D modelu otisku prstu 1.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=fad236701ea90a88636c2a8c73b44ae642ed2a53" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
<style>
body {
--color-code-background: #f8f8f8;
--color-code-foreground: black;
}
@media not print {
body[data-theme="dark"] {
--color-code-background: #202020;
--color-code-foreground: #d0d0d0;
}
@media (prefers-color-scheme: dark) {
body:not([data-theme="light"]) {
--color-code-background: #202020;
--color-code-foreground: #d0d0d0;
}
}
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024">
<path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 0 0 0 13.8z"/>
</svg>
</symbol>
<symbol id="svg-menu" viewBox="0 0 24 24">
<title>Menu</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-menu">
<line x1="3" y1="12" x2="21" y2="12"></line>
<line x1="3" y1="6" x2="21" y2="6"></line>
<line x1="3" y1="18" x2="21" y2="18"></line>
</svg>
</symbol>
<symbol id="svg-arrow-right" viewBox="0 0 24 24">
<title>Expand</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-chevron-right">
<polyline points="9 18 15 12 9 6"></polyline>
</svg>
</symbol>
<symbol id="svg-sun" viewBox="0 0 24 24">
<title>Light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="feather-sun">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</symbol>
<symbol id="svg-moon" viewBox="0 0 24 24">
<title>Dark mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-moon">
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
<symbol id="svg-sun-half" viewBox="0 0 24 24">
<title>Auto light/dark mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<circle cx="12" cy="12" r="9" />
<path d="M13 12h5" />
<path d="M13 15h4" />
<path d="M13 18h1" />
<path d="M13 9h4" />
<path d="M13 6h1" />
</svg>
</symbol>
</svg>
<input type="checkbox" class="sidebar-toggle" name="__navigation" id="__navigation">
<input type="checkbox" class="sidebar-toggle" name="__toc" id="__toc">
<label class="overlay sidebar-overlay" for="__navigation">
<div class="visually-hidden">Hide navigation sidebar</div>
</label>
<label class="overlay toc-overlay" for="__toc">
<div class="visually-hidden">Hide table of contents sidebar</div>
</label>
<div class="page">
<header class="mobile-header">
<div class="header-left">
<label class="nav-overlay-icon" for="__navigation">
<div class="visually-hidden">Toggle site navigation sidebar</div>
<i class="icon"><svg><use href="#svg-menu"></use></svg></i>
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">Generování 3D modelu otisku prstu 1.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
<button class="theme-toggle">
<div class="visually-hidden">Toggle Light / Dark / Auto color theme</div>
<svg class="theme-icon-when-auto"><use href="#svg-sun-half"></use></svg>
<svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
</button>
</div>
<label class="toc-overlay-icon toc-header-icon" for="__toc">
<div class="visually-hidden">Toggle table of contents sidebar</div>
<i class="icon"><svg><use href="#svg-toc"></use></svg></i>
</label>
</div>
</header>
<aside class="sidebar-drawer">
<div class="sidebar-container">
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">Generování 3D modelu otisku prstu 1.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
<input type="hidden" name="check_keywords" value="yes">
<input type="hidden" name="area" value="default">
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="filtering.html">Filtering images</a></li>
<li class="toctree-l1"><a class="reference internal" href="config.html">Configuration and presets</a></li>
<li class="toctree-l1"><a class="reference internal" href="filter_list.html">Available filters with parameters</a></li>
<li class="toctree-l1"><a class="reference internal" href="generation.html">Generating fingerprint models</a></li>
<li class="toctree-l1"><a class="reference internal" href="usage.html">Usage</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="modules.html">src</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="config_parser.html">config_parser module</a></li>
<li class="toctree-l2"><a class="reference internal" href="filters.html">filters module</a></li>
<li class="toctree-l2"><a class="reference internal" href="log.html">log module</a></li>
<li class="toctree-l2 current current-page"><a class="current reference internal" href="#">main module</a></li>
<li class="toctree-l2"><a class="reference internal" href="stl_parser.html">stl_parser module</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
</div>
</aside>
<div class="main">
<div class="content">
<div class="article-container">
<a href="#" class="back-to-top muted-link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"></path>
</svg>
<span>Back to top</span>
</a>
<div class="content-icon-container">
<div class="theme-toggle-container theme-toggle-content">
<button class="theme-toggle">
<div class="visually-hidden">Toggle Light / Dark / Auto color theme</div>
<svg class="theme-icon-when-auto"><use href="#svg-sun-half"></use></svg>
<svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
</button>
</div>
<label class="toc-overlay-icon toc-content-icon" for="__toc">
<div class="visually-hidden">Toggle table of contents sidebar</div>
<i class="icon"><svg><use href="#svg-toc"></use></svg></i>
</label>
</div>
<article role="main">
<section id="main-module">
<h1>main module<a class="headerlink" href="#main-module" title="Permalink to this heading">#</a></h1>
<p>Main file of the project, contains filtering and stl generation functions</p>
<dl class="py class">
<dt class="sig sig-object py" id="main.fingerprint_app">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">main.</span></span><span class="sig-name descname"><span class="pre">fingerprint_app</span></span><a class="headerlink" href="#main.fingerprint_app" title="Permalink to this definition">#</a></dt>
<dd><p>Main class for the application.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="main.__init__">
<span class="sig-prename descclassname"><span class="pre">main.</span></span><span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#main.__init__" title="Permalink to this definition">#</a></dt>
<dd></dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="main.parse_arguments">
<span class="sig-prename descclassname"><span class="pre">main.</span></span><span class="sig-name descname"><span class="pre">parse_arguments</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#main.parse_arguments" title="Permalink to this definition">#</a></dt>
<dd><p>Parse arguments from command line using argparse library.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="main.parse_stl">
<span class="sig-prename descclassname"><span class="pre">main.</span></span><span class="sig-name descname"><span class="pre">parse_stl</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#main.parse_stl" title="Permalink to this definition">#</a></dt>
<dd><p>Parse arguments for stl generation.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="main.run_filtering">
<span class="sig-prename descclassname"><span class="pre">main.</span></span><span class="sig-name descname"><span class="pre">run_filtering</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#main.run_filtering" title="Permalink to this definition">#</a></dt>
<dd><p>Read input file, store as numpy.array, uint8, grayscale.
Call function to apply the filters and a function to save it to output file.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="main.get_empty_figure">
<span class="sig-prename descclassname"><span class="pre">main.</span></span><span class="sig-name descname"><span class="pre">get_empty_figure</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#main.get_empty_figure" title="Permalink to this definition">#</a></dt>
<dd><p>Return empty figure with one ax, which has dimensions of the input image.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="main.mirror_image">
<span class="sig-prename descclassname"><span class="pre">main.</span></span><span class="sig-name descname"><span class="pre">mirror_image</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#main.mirror_image" title="Permalink to this definition">#</a></dt>
<dd><p>Mirror image using opencv.
Should be used to cancel implicit mirroring.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="main.apply_filters">
<span class="sig-prename descclassname"><span class="pre">main.</span></span><span class="sig-name descname"><span class="pre">apply_filters</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#main.apply_filters" title="Permalink to this definition">#</a></dt>
<dd><p>Apply filters to image one by one.
In case none were given, pass and save original image to the output file.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="main.save_image">
<span class="sig-prename descclassname"><span class="pre">main.</span></span><span class="sig-name descname"><span class="pre">save_image</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#main.save_image" title="Permalink to this definition">#</a></dt>
<dd><p>Save processed image to the output file.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>fig</strong> figure used to render image.</p></li>
<li><p><strong>ax</strong> Ax used to render image.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="main.run_stl">
<span class="sig-prename descclassname"><span class="pre">main.</span></span><span class="sig-name descname"><span class="pre">run_stl</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#main.run_stl" title="Permalink to this definition">#</a></dt>
<dd><p>Choose correct generation code based on mode.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="main.prepare_heightmap">
<span class="sig-prename descclassname"><span class="pre">main.</span></span><span class="sig-name descname"><span class="pre">prepare_heightmap</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#main.prepare_heightmap" title="Permalink to this definition">#</a></dt>
<dd><p>Scale image values to get values from 0 to 255.
Check validity of dimension parameters.
Then compute base and papilar lines height.
Prepare meshgrid, array which later serves to store point coordinates.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="main.write_stl_header">
<span class="sig-prename descclassname"><span class="pre">main.</span></span><span class="sig-name descname"><span class="pre">write_stl_header</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#main.write_stl_header" title="Permalink to this definition">#</a></dt>
<dd><p>Write parameter string to stl header.
This header is 80 bytes long, so the data needs to be shortened to fit.
If the parameter string is too long, a warning is printed and the data is truncated.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="main.get_ID">
<span class="sig-prename descclassname"><span class="pre">main.</span></span><span class="sig-name descname"><span class="pre">get_ID</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#main.get_ID" title="Permalink to this definition">#</a></dt>
<dd><p>Get a unique ID for the model, which is used in filename and on the model backside.
Also create parameter string for stl header, which is used to create ID using hash function MD5.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="main.append_faces">
<span class="sig-prename descclassname"><span class="pre">main.</span></span><span class="sig-name descname"><span class="pre">append_faces</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#main.append_faces" title="Permalink to this definition">#</a></dt>
<dd><p>Add faces to the list of faces.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>faces</strong> Array with faces.</p></li>
<li><p><strong>c</strong> Indices of currently added faces.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="main.engrave_text">
<span class="sig-prename descclassname"><span class="pre">main.</span></span><span class="sig-name descname"><span class="pre">engrave_text</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#main.engrave_text" title="Permalink to this definition">#</a></dt>
<dd><p>Engrave text on the back of the model.
Create an empty image, fill it with color and draw text on it.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>bottom_vert_arr</strong> Bottom vertex array.</p></li>
<li><p><strong>top_vert_arr</strong> Top vertex array</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="main.create_stl_mesh">
<span class="sig-prename descclassname"><span class="pre">main.</span></span><span class="sig-name descname"><span class="pre">create_stl_mesh</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#main.create_stl_mesh" title="Permalink to this definition">#</a></dt>
<dd><p>Create mesh from faces and vertices arrays.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>faces</strong> Vector of face indices</p></li>
<li><p><strong>vertices</strong> Vector of vertices</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="main.create_faces">
<span class="sig-prename descclassname"><span class="pre">main.</span></span><span class="sig-name descname"><span class="pre">create_faces</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#main.create_faces" title="Permalink to this definition">#</a></dt>
<dd><p>Create faces for the model.
Iterate over all vertices, append to vector and create faces from indices.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>bottom_vert_arr</strong> Bottom vertex array.</p></li>
<li><p><strong>top_vert_arr</strong> Top vertex array</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="main.make_stl_planar">
<span class="sig-prename descclassname"><span class="pre">main.</span></span><span class="sig-name descname"><span class="pre">make_stl_planar</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#main.make_stl_planar" title="Permalink to this definition">#</a></dt>
<dd><p>Create vertices from meshgrid, add z coordinates from processed image heightmap.
Create faces from vertex indices.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="main.make_stl_curved">
<span class="sig-prename descclassname"><span class="pre">main.</span></span><span class="sig-name descname"><span class="pre">make_stl_curved</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#main.make_stl_curved" title="Permalink to this definition">#</a></dt>
<dd><p>Compute curved surface offset.
Create vertices from meshgrid, add z coordinates from processed image heightmap.
Create faces from vertex indices.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="main.make_stl_map">
<span class="sig-prename descclassname"><span class="pre">main.</span></span><span class="sig-name descname"><span class="pre">make_stl_map</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#main.make_stl_map" title="Permalink to this definition">#</a></dt>
<dd><p>Map fingerprint to a given finger model.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="main.save_stl">
<span class="sig-prename descclassname"><span class="pre">main.</span></span><span class="sig-name descname"><span class="pre">save_stl</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#main.save_stl" title="Permalink to this definition">#</a></dt>
<dd><p>Save final mesh to stl file.</p>
</dd></dl>
</section>
</article>
</div>
<footer>
<div class="related-pages">
<a class="next-page" href="stl_parser.html">
<div class="page-info">
<div class="context">
<span>Next</span>
</div>
<div class="title">stl_parser module</div>
</div>
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
</a>
<a class="prev-page" href="log.html">
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
<div class="page-info">
<div class="context">
<span>Previous</span>
</div>
<div class="title">log module</div>
</div>
</a>
</div>
<div class="bottom-of-page">
<div class="left-details">
<div class="copyright">
Copyright &#169; 2023, xlanro00
</div>
Made with <a href="https://www.sphinx-doc.org/">Sphinx</a> and <a class="muted-link" href="https://pradyunsg.me">@pradyunsg</a>'s
<a href="https://github.com/pradyunsg/furo">Furo</a>
</div>
<div class="right-details">
</div>
</div>
</footer>
</div>
<aside class="toc-drawer">
<div class="toc-sticky toc-scroll">
<div class="toc-title-container">
<span class="toc-title">
On this page
</span>
</div>
<div class="toc-tree-container">
<div class="toc-tree">
<ul>
<li><a class="reference internal" href="#">main module</a><ul>
<li><a class="reference internal" href="#main.fingerprint_app"><code class="docutils literal notranslate"><span class="pre">main.fingerprint_app</span></code></a></li>
<li><a class="reference internal" href="#main.__init__"><code class="docutils literal notranslate"><span class="pre">main.__init__()</span></code></a></li>
<li><a class="reference internal" href="#main.parse_arguments"><code class="docutils literal notranslate"><span class="pre">main.parse_arguments()</span></code></a></li>
<li><a class="reference internal" href="#main.parse_stl"><code class="docutils literal notranslate"><span class="pre">main.parse_stl()</span></code></a></li>
<li><a class="reference internal" href="#main.run_filtering"><code class="docutils literal notranslate"><span class="pre">main.run_filtering()</span></code></a></li>
<li><a class="reference internal" href="#main.get_empty_figure"><code class="docutils literal notranslate"><span class="pre">main.get_empty_figure()</span></code></a></li>
<li><a class="reference internal" href="#main.mirror_image"><code class="docutils literal notranslate"><span class="pre">main.mirror_image()</span></code></a></li>
<li><a class="reference internal" href="#main.apply_filters"><code class="docutils literal notranslate"><span class="pre">main.apply_filters()</span></code></a></li>
<li><a class="reference internal" href="#main.save_image"><code class="docutils literal notranslate"><span class="pre">main.save_image()</span></code></a></li>
<li><a class="reference internal" href="#main.run_stl"><code class="docutils literal notranslate"><span class="pre">main.run_stl()</span></code></a></li>
<li><a class="reference internal" href="#main.prepare_heightmap"><code class="docutils literal notranslate"><span class="pre">main.prepare_heightmap()</span></code></a></li>
<li><a class="reference internal" href="#main.write_stl_header"><code class="docutils literal notranslate"><span class="pre">main.write_stl_header()</span></code></a></li>
<li><a class="reference internal" href="#main.get_ID"><code class="docutils literal notranslate"><span class="pre">main.get_ID()</span></code></a></li>
<li><a class="reference internal" href="#main.append_faces"><code class="docutils literal notranslate"><span class="pre">main.append_faces()</span></code></a></li>
<li><a class="reference internal" href="#main.engrave_text"><code class="docutils literal notranslate"><span class="pre">main.engrave_text()</span></code></a></li>
<li><a class="reference internal" href="#main.create_stl_mesh"><code class="docutils literal notranslate"><span class="pre">main.create_stl_mesh()</span></code></a></li>
<li><a class="reference internal" href="#main.create_faces"><code class="docutils literal notranslate"><span class="pre">main.create_faces()</span></code></a></li>
<li><a class="reference internal" href="#main.make_stl_planar"><code class="docutils literal notranslate"><span class="pre">main.make_stl_planar()</span></code></a></li>
<li><a class="reference internal" href="#main.make_stl_curved"><code class="docutils literal notranslate"><span class="pre">main.make_stl_curved()</span></code></a></li>
<li><a class="reference internal" href="#main.make_stl_map"><code class="docutils literal notranslate"><span class="pre">main.make_stl_map()</span></code></a></li>
<li><a class="reference internal" href="#main.save_stl"><code class="docutils literal notranslate"><span class="pre">main.save_stl()</span></code></a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
</aside>
</div>
</div><script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/sphinx_highlight.js"></script>
<script src="_static/scripts/furo.js"></script>
</body>
</html>