Skip to content

Commit

Permalink
build based on 4994efa
Browse files Browse the repository at this point in the history
  • Loading branch information
Documenter.jl committed Jul 7, 2024
1 parent f66d33b commit dc5da31
Show file tree
Hide file tree
Showing 5 changed files with 4 additions and 4 deletions.
2 changes: 1 addition & 1 deletion dev/.documenter-siteinfo.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"documenter":{"julia_version":"1.10.4","generation_timestamp":"2024-07-07T13:21:11","documenter_version":"1.5.0"}}
{"documenter":{"julia_version":"1.10.4","generation_timestamp":"2024-07-07T13:31:07","documenter_version":"1.5.0"}}
2 changes: 1 addition & 1 deletion dev/api/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@
A = rand(50,50,50) # 3D Matrix

points,faces = isosurface(A, MarchingCubes(iso=1))</code></pre><h2 id="Isosurface"><a class="docs-heading-anchor" href="#Isosurface">Isosurface</a><a id="Isosurface-1"></a><a class="docs-heading-anchor-permalink" href="#Isosurface" title="Permalink"></a></h2><p><code>isosurface</code> is the common and generic API for isosurface extraction with any type of abstract vector/vertex/face type.</p><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="Meshing.isosurface" href="#Meshing.isosurface"><code>Meshing.isosurface</code></a><span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">isosurface(V)
isosurface(V, method::AbstractMeshingAlgorithm, X, Y, Z)</code></pre><p><code>isosurface</code> is the general interface to all isosurface extraction algorithms.</p><p>Returns: (Vector{NTuple{3, T}, }, Vector{NTuple{3, Int}})</p><p>Defaults: <code>method</code> must be an instance of an <code>AbstractMeshingAlgorithm</code>, e.g.:</p><ul><li>MarchingCubes()</li><li>MarchingTetrahedra()</li></ul><p>If <code>isosurface</code> is called without a specified algorithm, it will default to MarchingCubes.</p><p>If a subtype of <code>AbstractArray</code> is specified, the mesh will by default be centered at the origin between (-1,1) in each axis.</p><p>See also:</p><ul><li><a href="#Meshing.MarchingCubes">MarchingCubes</a></li><li><a href="#Meshing.MarchingTetrahedra">MarchingTetrahedra</a></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaGeometry/Meshing.jl/blob/5b897a085dc98adce011207439ea58e1188e65d5/src/isosurface.jl#L6-L29">source</a></section></article><h2 id="Meshing-Algorithms"><a class="docs-heading-anchor" href="#Meshing-Algorithms">Meshing Algorithms</a><a id="Meshing-Algorithms-1"></a><a class="docs-heading-anchor-permalink" href="#Meshing-Algorithms" title="Permalink"></a></h2><p>Three meshing algorithms exist:</p><ul><li><code>MarchingCubes()</code></li><li><code>MarchingTetrahedra()</code></li></ul><p>Each takes optional <code>iso</code> and <code>eps</code> parameters, e.g. <code>MarchingCubes(iso=0.0,eps=1e-6)</code>.</p><p>Here <code>iso</code> controls the offset for the boundary detection. By default this is set to 0. <code>eps</code> is the detection tolerance for a voxel edge intersection.</p><p>Users must construct an algorithm type and use it as an argument to a GeometryTypes mesh call or <code>isosurface</code> call.</p><p>Visual Comparison: From left: Marching Cubes, Naive Surface Nets, Marching Tetrahedra</p><p><img src="../img/comparison.png" alt="comparison"/></p><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="Meshing.MarchingCubes" href="#Meshing.MarchingCubes"><code>Meshing.MarchingCubes</code></a><span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">MarchingCubes(;iso=0.0)</code></pre><p>Specifies the use of the Marching Cubes algorithm for isosurface extraction. This algorithm provides a good balance between performance and vertex count. In contrast to the other algorithms, vertices may be repeated, so mesh size may be large and it will be difficult to extract topological/connectivity information.</p><ul><li><code>iso</code> (default: 0.0) specifies the iso level to use for surface extraction.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaGeometry/Meshing.jl/blob/5b897a085dc98adce011207439ea58e1188e65d5/src/algorithmtypes.jl#L13-L22">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="Meshing.MarchingTetrahedra" href="#Meshing.MarchingTetrahedra"><code>Meshing.MarchingTetrahedra</code></a><span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">MarchingTetrahedra(;iso=0.0, eps=1e-3)</code></pre><p>Specifies the use of the Marching Tetrahedra algorithm for isosurface extraction. This algorithm generates more faces. However, each vertex is guaranteed to not be repeated, making this algorithm useful for topological analysis.</p><ul><li><code>iso</code> specifies the iso level to use for surface extraction.</li><li><code>eps</code> is the tolerence around a voxel corner to ensure manifold mesh generation.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaGeometry/Meshing.jl/blob/5b897a085dc98adce011207439ea58e1188e65d5/src/algorithmtypes.jl#L27-L36">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="Meshing.AbstractMeshingAlgorithm" href="#Meshing.AbstractMeshingAlgorithm"><code>Meshing.AbstractMeshingAlgorithm</code></a><span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">AbstractMeshingAlgorithm</code></pre><p>Abstract type to specify an algorithm for isosurface extraction. See:</p><ul><li><a href="#Meshing.MarchingCubes">MarchingCubes</a></li><li><a href="#Meshing.MarchingTetrahedra">MarchingTetrahedra</a></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaGeometry/Meshing.jl/blob/5b897a085dc98adce011207439ea58e1188e65d5/src/algorithmtypes.jl#L2-L9">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../">« Index</a><a class="docs-footer-nextpage" href="../examples/">Examples »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.5.0 on <span class="colophon-date" title="Sunday 7 July 2024 13:21">Sunday 7 July 2024</span>. Using Julia version 1.10.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
isosurface(V, method::AbstractMeshingAlgorithm, X, Y, Z)</code></pre><p><code>isosurface</code> is the general interface to all isosurface extraction algorithms.</p><p>Returns: (Vector{NTuple{3, T}, }, Vector{NTuple{3, Int}})</p><p>Defaults: <code>method</code> must be an instance of an <code>AbstractMeshingAlgorithm</code>, e.g.:</p><ul><li>MarchingCubes()</li><li>MarchingTetrahedra()</li></ul><p>If <code>isosurface</code> is called without a specified algorithm, it will default to MarchingCubes.</p><p>If a subtype of <code>AbstractArray</code> is specified, the mesh will by default be centered at the origin between (-1,1) in each axis.</p><p>See also:</p><ul><li><a href="#Meshing.MarchingCubes">MarchingCubes</a></li><li><a href="#Meshing.MarchingTetrahedra">MarchingTetrahedra</a></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaGeometry/Meshing.jl/blob/4994efab142fe0c27c874997d0ac01aaa5ffb75a/src/isosurface.jl#L6-L29">source</a></section></article><h2 id="Meshing-Algorithms"><a class="docs-heading-anchor" href="#Meshing-Algorithms">Meshing Algorithms</a><a id="Meshing-Algorithms-1"></a><a class="docs-heading-anchor-permalink" href="#Meshing-Algorithms" title="Permalink"></a></h2><p>Three meshing algorithms exist:</p><ul><li><code>MarchingCubes()</code></li><li><code>MarchingTetrahedra()</code></li></ul><p>Each takes optional <code>iso</code> and <code>eps</code> parameters, e.g. <code>MarchingCubes(iso=0.0,eps=1e-6)</code>.</p><p>Here <code>iso</code> controls the offset for the boundary detection. By default this is set to 0. <code>eps</code> is the detection tolerance for a voxel edge intersection.</p><p>Users must construct an algorithm type and use it as an argument to a GeometryTypes mesh call or <code>isosurface</code> call.</p><p>Visual Comparison: From left: Marching Cubes, Naive Surface Nets, Marching Tetrahedra</p><p><img src="../img/comparison.png" alt="comparison"/></p><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="Meshing.MarchingCubes" href="#Meshing.MarchingCubes"><code>Meshing.MarchingCubes</code></a><span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">MarchingCubes(;iso=0.0)</code></pre><p>Specifies the use of the Marching Cubes algorithm for isosurface extraction. This algorithm provides a good balance between performance and vertex count. In contrast to the other algorithms, vertices may be repeated, so mesh size may be large and it will be difficult to extract topological/connectivity information.</p><ul><li><code>iso</code> (default: 0.0) specifies the iso level to use for surface extraction.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaGeometry/Meshing.jl/blob/4994efab142fe0c27c874997d0ac01aaa5ffb75a/src/algorithmtypes.jl#L13-L22">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="Meshing.MarchingTetrahedra" href="#Meshing.MarchingTetrahedra"><code>Meshing.MarchingTetrahedra</code></a><span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">MarchingTetrahedra(;iso=0.0, eps=1e-3)</code></pre><p>Specifies the use of the Marching Tetrahedra algorithm for isosurface extraction. This algorithm generates more faces. However, each vertex is guaranteed to not be repeated, making this algorithm useful for topological analysis.</p><ul><li><code>iso</code> specifies the iso level to use for surface extraction.</li><li><code>eps</code> is the tolerence around a voxel corner to ensure manifold mesh generation.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaGeometry/Meshing.jl/blob/4994efab142fe0c27c874997d0ac01aaa5ffb75a/src/algorithmtypes.jl#L27-L36">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="Meshing.AbstractMeshingAlgorithm" href="#Meshing.AbstractMeshingAlgorithm"><code>Meshing.AbstractMeshingAlgorithm</code></a><span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">AbstractMeshingAlgorithm</code></pre><p>Abstract type to specify an algorithm for isosurface extraction. See:</p><ul><li><a href="#Meshing.MarchingCubes">MarchingCubes</a></li><li><a href="#Meshing.MarchingTetrahedra">MarchingTetrahedra</a></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/JuliaGeometry/Meshing.jl/blob/4994efab142fe0c27c874997d0ac01aaa5ffb75a/src/algorithmtypes.jl#L2-L9">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../">« Index</a><a class="docs-footer-nextpage" href="../examples/">Examples »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.5.0 on <span class="colophon-date" title="Sunday 7 July 2024 13:31">Sunday 7 July 2024</span>. Using Julia version 1.10.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
2 changes: 1 addition & 1 deletion dev/examples/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,4 @@
# view with Makie
import WGLMakie
using LinearAlgebra
WGLMakie.mesh(vts, map(v -&gt; GeometryBasics.TriangleFace(v...), fcs), color=[norm(v) for v in v])</code></pre></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../api/">« API</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.5.0 on <span class="colophon-date" title="Sunday 7 July 2024 13:21">Sunday 7 July 2024</span>. Using Julia version 1.10.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
WGLMakie.mesh(vts, map(v -&gt; GeometryBasics.TriangleFace(v...), fcs), color=[norm(v) for v in v])</code></pre></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../api/">« API</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.5.0 on <span class="colophon-date" title="Sunday 7 July 2024 13:31">Sunday 7 July 2024</span>. Using Julia version 1.10.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
Loading

0 comments on commit dc5da31

Please sign in to comment.