Files
phy/plotpy/struct.Surface.html
Orion Kindel 0ce894e6b0 doc
2025-03-18 10:30:23 -05:00

339 lines
60 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Generates a 3D a surface (or wireframe, or both)"><title>Surface in plotpy - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../static.files/rustdoc-42caa33d.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="plotpy" data-themes="" data-resource-suffix="" data-rustdoc-version="1.84.0 (9fc6b4312 2025-01-07)" data-channel="1.84.0" data-search-js="search-92e6798f.js" data-settings-js="settings-0f613d39.js" ><script src="../static.files/storage-59e33391.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-5f194d8c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-893ab5e7.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-6580c154.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../plotpy/index.html">plotpy</a><span class="version">0.5.1</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Surface</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#example" title="Example">Example</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.draw" title="draw">draw</a></li><li><a href="#method.draw_cylinder" title="draw_cylinder">draw_cylinder</a></li><li><a href="#method.draw_hemisphere" title="draw_hemisphere">draw_hemisphere</a></li><li><a href="#method.draw_plane_nzz" title="draw_plane_nzz">draw_plane_nzz</a></li><li><a href="#method.draw_sphere" title="draw_sphere">draw_sphere</a></li><li><a href="#method.draw_superquadric" title="draw_superquadric">draw_superquadric</a></li><li><a href="#method.new" title="new">new</a></li><li><a href="#method.set_col_stride" title="set_col_stride">set_col_stride</a></li><li><a href="#method.set_colorbar_label" title="set_colorbar_label">set_colorbar_label</a></li><li><a href="#method.set_colormap_index" title="set_colormap_index">set_colormap_index</a></li><li><a href="#method.set_colormap_name" title="set_colormap_name">set_colormap_name</a></li><li><a href="#method.set_line_color" title="set_line_color">set_line_color</a></li><li><a href="#method.set_line_style" title="set_line_style">set_line_style</a></li><li><a href="#method.set_line_width" title="set_line_width">set_line_width</a></li><li><a href="#method.set_number_format_cb" title="set_number_format_cb">set_number_format_cb</a></li><li><a href="#method.set_row_stride" title="set_row_stride">set_row_stride</a></li><li><a href="#method.set_solid_color" title="set_solid_color">set_solid_color</a></li><li><a href="#method.set_with_colorbar" title="set_with_colorbar">set_with_colorbar</a></li><li><a href="#method.set_with_colormap" title="set_with_colormap">set_with_colormap</a></li><li><a href="#method.set_with_surface" title="set_with_surface">set_with_surface</a></li><li><a href="#method.set_with_wireframe" title="set_with_wireframe">set_with_wireframe</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-GraphMaker-for-Surface" title="GraphMaker">GraphMaker</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Freeze-for-Surface" title="Freeze">Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-Surface" title="RefUnwindSafe">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Surface" title="Send">Send</a></li><li><a href="#impl-Sync-for-Surface" title="Sync">Sync</a></li><li><a href="#impl-Unpin-for-Surface" title="Unpin">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Surface" title="UnwindSafe">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T" title="Any">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T" title="Borrow&#60;T&#62;">Borrow&#60;T&#62;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T" title="BorrowMut&#60;T&#62;">BorrowMut&#60;T&#62;</a></li><li><a href="#impl-From%3CT%3E-for-T" title="From&#60;T&#62;">From&#60;T&#62;</a></li><li><a href="#impl-Into%3CU%3E-for-T" title="Into&#60;U&#62;">Into&#60;U&#62;</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T" title="TryFrom&#60;U&#62;">TryFrom&#60;U&#62;</a></li><li><a href="#impl-TryInto%3CU%3E-for-T" title="TryInto&#60;U&#62;">TryInto&#60;U&#62;</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="index.html">In crate plotpy</a></h2></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="index.html">plotpy</a></span><h1>Struct <span class="struct">Surface</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/plotpy/surface.rs.html#45-61">Source</a> </span></div><pre class="rust item-decl"><code>pub struct Surface { <span class="comment">/* private fields */</span> }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Generates a 3D a surface (or wireframe, or both)</p>
<h2 id="example"><a class="doc-anchor" href="#example">§</a>Example</h2>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>plotpy::{generate3d, Plot, StrError, Surface};
<span class="kw">fn </span>main() -&gt; <span class="prelude-ty">Result</span>&lt;(), StrError&gt; {
<span class="comment">// generate (x,y,z) matrices
</span><span class="kw">let </span>n = <span class="number">21</span>;
<span class="kw">let </span>(x, y, z) = generate3d(-<span class="number">2.0</span>, <span class="number">2.0</span>, -<span class="number">2.0</span>, <span class="number">2.0</span>, n, n, |x, y| x * x - y * y);
<span class="comment">// configure and draw surface + wireframe
</span><span class="kw">let </span><span class="kw-2">mut </span>surface = Surface::new();
surface.set_colormap_name(<span class="string">"seismic"</span>)
.set_with_colorbar(<span class="bool-val">true</span>)
.set_with_wireframe(<span class="bool-val">true</span>)
.set_line_width(<span class="number">0.3</span>);
<span class="comment">// draw surface + wireframe
</span>surface.draw(<span class="kw-2">&amp;</span>x, <span class="kw-2">&amp;</span>y, <span class="kw-2">&amp;</span>z);
<span class="comment">// add surface to plot
</span><span class="kw">let </span><span class="kw-2">mut </span>plot = Plot::new();
plot.add(<span class="kw-2">&amp;</span>surface)
.set_title(<span class="string">"horse saddle equation"</span>) <span class="comment">// must be after add surface
</span>.set_camera(<span class="number">20.0</span>, <span class="number">35.0</span>); <span class="comment">// must be after add surface
// save figure
</span>plot.save(<span class="string">"/tmp/plotpy/doc_tests/doc_surface.svg"</span>)<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(())
}</code></pre></div>
<p><img src="https://raw.githubusercontent.com/cpmech/plotpy/main/figures/doc_surface.svg" alt="doc_surface.svg" /></p>
<p>See also integration tests in the <a href="https://github.com/cpmech/plotpy/tree/main/tests">tests directory</a></p>
<p>Output from some integration tests:</p>
<p><img src="https://raw.githubusercontent.com/cpmech/plotpy/main/figures/integ_surface_wireframe.svg" alt="integ_surface_wireframe.svg" /></p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Surface" class="impl"><a class="src rightside" href="../src/plotpy/surface.rs.html#63-331">Source</a><a href="#impl-Surface" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Surface.html" title="struct plotpy::Surface">Surface</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../src/plotpy/surface.rs.html#65-83">Source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>() -&gt; Self</h4></section></summary><div class="docblock"><p>Creates a new Surface object</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.draw" class="method"><a class="src rightside" href="../src/plotpy/surface.rs.html#104-128">Source</a><h4 class="code-header">pub fn <a href="#method.draw" class="fn">draw</a>&lt;'a, T, U&gt;(&amp;mut self, x: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&amp;'a T</a>, y: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&amp;'a T</a>, z: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&amp;'a T</a>)<div class="where">where
T: <a class="trait" href="trait.AsMatrix.html" title="trait plotpy::AsMatrix">AsMatrix</a>&lt;'a, U&gt;,
U: 'a + <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,</div></h4></section></summary><div class="docblock"><p>Draws a surface, or wireframe, or both</p>
<h5 id="input"><a class="doc-anchor" href="#input">§</a>Input</h5>
<ul>
<li><code>x</code> matrix with x values</li>
<li><code>y</code> matrix with y values</li>
<li><code>z</code> matrix with z values</li>
</ul>
<h5 id="flags"><a class="doc-anchor" href="#flags">§</a>Flags</h5>
<p>The following flags control what features are not to be drawn:</p>
<ul>
<li><code>surface</code> draws surface</li>
<li><code>wireframe</code> draws wireframe</li>
</ul>
<h5 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h5>
<ul>
<li>The type <code>U</code> of the input matrices must be a number.</li>
</ul>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_row_stride" class="method"><a class="src rightside" href="../src/plotpy/surface.rs.html#131-134">Source</a><h4 class="code-header">pub fn <a href="#method.set_row_stride" class="fn">set_row_stride</a>(&amp;mut self, value: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.usize.html">usize</a>) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Sets the row stride</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_col_stride" class="method"><a class="src rightside" href="../src/plotpy/surface.rs.html#137-140">Source</a><h4 class="code-header">pub fn <a href="#method.set_col_stride" class="fn">set_col_stride</a>(&amp;mut self, value: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.usize.html">usize</a>) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Sets the column stride</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_with_surface" class="method"><a class="src rightside" href="../src/plotpy/surface.rs.html#143-146">Source</a><h4 class="code-header">pub fn <a href="#method.set_with_surface" class="fn">set_with_surface</a>(&amp;mut self, flag: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a>) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Sets option to generate surface</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_with_wireframe" class="method"><a class="src rightside" href="../src/plotpy/surface.rs.html#149-152">Source</a><h4 class="code-header">pub fn <a href="#method.set_with_wireframe" class="fn">set_with_wireframe</a>(&amp;mut self, flag: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a>) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Sets option to generate wireframe</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_colormap_index" class="method"><a class="src rightside" href="../src/plotpy/surface.rs.html#166-170">Source</a><h4 class="code-header">pub fn <a href="#method.set_colormap_index" class="fn">set_colormap_index</a>(&amp;mut self, index: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.usize.html">usize</a>) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Sets the colormap index</p>
<p>Options:</p>
<ul>
<li>0 bwr</li>
<li>1 RdBu</li>
<li>2 hsv</li>
<li>3 jet</li>
<li>4 terrain</li>
<li>5 pink</li>
<li>6 Greys</li>
<li><code>&gt;</code>6 starts over from 0</li>
</ul>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_colormap_name" class="method"><a class="src rightside" href="../src/plotpy/surface.rs.html#184-187">Source</a><h4 class="code-header">pub fn <a href="#method.set_colormap_name" class="fn">set_colormap_name</a>(&amp;mut self, name: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.str.html">str</a>) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Sets the colormap name</p>
<p>Options:</p>
<ul>
<li><code>bwr</code></li>
<li><code>RdBu</code></li>
<li><code>hsv</code></li>
<li><code>jet</code></li>
<li><code>terrain</code></li>
<li><code>pink</code></li>
<li><code>Greys</code></li>
<li>see more here <a href="https://matplotlib.org/stable/tutorials/colors/colormaps.html">https://matplotlib.org/stable/tutorials/colors/colormaps.html</a></li>
</ul>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_with_colormap" class="method"><a class="src rightside" href="../src/plotpy/surface.rs.html#190-193">Source</a><h4 class="code-header">pub fn <a href="#method.set_with_colormap" class="fn">set_with_colormap</a>(&amp;mut self, flag: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a>) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Sets option to use a colormap</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_with_colorbar" class="method"><a class="src rightside" href="../src/plotpy/surface.rs.html#196-199">Source</a><h4 class="code-header">pub fn <a href="#method.set_with_colorbar" class="fn">set_with_colorbar</a>(&amp;mut self, flag: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a>) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Sets option to draw a colorbar</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_colorbar_label" class="method"><a class="src rightside" href="../src/plotpy/surface.rs.html#202-205">Source</a><h4 class="code-header">pub fn <a href="#method.set_colorbar_label" class="fn">set_colorbar_label</a>(&amp;mut self, label: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.str.html">str</a>) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Sets the colorbar label</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_number_format_cb" class="method"><a class="src rightside" href="../src/plotpy/surface.rs.html#208-211">Source</a><h4 class="code-header">pub fn <a href="#method.set_number_format_cb" class="fn">set_number_format_cb</a>(&amp;mut self, format: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.str.html">str</a>) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Sets the number format for the labels in the colorbar (cb)</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_solid_color" class="method"><a class="src rightside" href="../src/plotpy/surface.rs.html#214-218">Source</a><h4 class="code-header">pub fn <a href="#method.set_solid_color" class="fn">set_solid_color</a>(&amp;mut self, color: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.str.html">str</a>) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Sets a solid color for the surface (disables colormap)</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_line_color" class="method"><a class="src rightside" href="../src/plotpy/surface.rs.html#221-224">Source</a><h4 class="code-header">pub fn <a href="#method.set_line_color" class="fn">set_line_color</a>(&amp;mut self, color: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.str.html">str</a>) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Sets the color of wireframe lines</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_line_style" class="method"><a class="src rightside" href="../src/plotpy/surface.rs.html#231-234">Source</a><h4 class="code-header">pub fn <a href="#method.set_line_style" class="fn">set_line_style</a>(&amp;mut self, style: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.str.html">str</a>) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Sets the style of wireframe line</p>
<p>Options:</p>
<ul>
<li><code>-</code>”, “<code>:</code>”, “<code>--</code>”, “<code>-.</code></li>
</ul>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_line_width" class="method"><a class="src rightside" href="../src/plotpy/surface.rs.html#237-240">Source</a><h4 class="code-header">pub fn <a href="#method.set_line_width" class="fn">set_line_width</a>(&amp;mut self, width: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Sets the width of wireframe line</p>
</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Surface-1" class="impl"><a class="src rightside" href="../src/plotpy/surface_geometry.rs.html#4-420">Source</a><a href="#impl-Surface-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Surface.html" title="struct plotpy::Surface">Surface</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.draw_cylinder" class="method"><a class="src rightside" href="../src/plotpy/surface_geometry.rs.html#44-88">Source</a><h4 class="code-header">pub fn <a href="#method.draw_cylinder" class="fn">draw_cylinder</a>(
&amp;mut self,
a: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>],
b: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>],
radius: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>,
ndiv_axis: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.usize.html">usize</a>,
ndiv_perimeter: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.usize.html">usize</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.unit.html">()</a>, <a class="type" href="type.StrError.html" title="type plotpy::StrError">StrError</a>&gt;</h4></section></summary><div class="docblock"><p>Draws a cylinder</p>
<h5 id="input-1"><a class="doc-anchor" href="#input-1">§</a>Input</h5>
<ul>
<li><code>a</code> first point on the cylinder (centered) axis</li>
<li><code>b</code> second point on the cylinder (centered) axis</li>
<li><code>radius</code> the cylinders radius</li>
<li><code>ndiv_axis</code> number of divisions along the axis (≥ 1)</li>
<li><code>ndiv_perimeter</code> number of divisions along the cross-sectional circle perimeter (≥ 3)</li>
</ul>
<h5 id="example-1"><a class="doc-anchor" href="#example-1">§</a>Example</h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>plotpy::{Plot, StrError, Surface};
<span class="kw">use </span>std::path::Path;
<span class="kw">fn </span>main() -&gt; <span class="prelude-ty">Result</span>&lt;(), StrError&gt; {
<span class="comment">// configure and draw surface
</span><span class="kw">let </span><span class="kw-2">mut </span>surface = Surface::new();
<span class="kw">let </span>a = <span class="kw-2">&amp;</span>[<span class="number">0.0</span>, <span class="number">0.0</span>, <span class="number">0.0</span>];
<span class="kw">let </span>b = <span class="kw-2">&amp;</span>[<span class="number">0.0</span>, <span class="number">0.0</span>, <span class="number">1.0</span>];
surface.set_solid_color(<span class="string">"#fcb827"</span>)
.draw_cylinder(a, b, <span class="number">0.25</span>, <span class="number">1</span>, <span class="number">20</span>)<span class="question-mark">?</span>;
<span class="comment">// add surface to plot
</span><span class="kw">let </span><span class="kw-2">mut </span>plot = Plot::new();
plot.add(<span class="kw-2">&amp;</span>surface);
<span class="comment">// save figure
</span>plot.set_range_3d(-<span class="number">1.0</span>, <span class="number">1.0</span>, -<span class="number">1.0</span>, <span class="number">1.0</span>, <span class="number">0.0</span>, <span class="number">1.0</span>)
.set_equal_axes(<span class="bool-val">true</span>)
.save(<span class="string">"/tmp/plotpy/doc_tests/doc_cylinder.svg"</span>)<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(())
}</code></pre></div>
<p><img src="https://raw.githubusercontent.com/cpmech/plotpy/main/figures/doc_cylinder.svg" alt="doc_cylinder.svg" /></p>
<p>See also integration tests in the <a href="https://github.com/cpmech/plotpy/tree/main/tests">tests directory</a></p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.draw_plane_nzz" class="method"><a class="src rightside" href="../src/plotpy/surface_geometry.rs.html#137-163">Source</a><h4 class="code-header">pub fn <a href="#method.draw_plane_nzz" class="fn">draw_plane_nzz</a>(
&amp;mut self,
p: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>],
n: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>],
xmin: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>,
xmax: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>,
ymin: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>,
ymax: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>,
nx: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.usize.html">usize</a>,
ny: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.usize.html">usize</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;(<a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>&gt;&gt;, <a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>&gt;&gt;, <a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>&gt;&gt;), <a class="type" href="type.StrError.html" title="type plotpy::StrError">StrError</a>&gt;</h4></section></summary><div class="docblock"><p>Draws a plane that has a normal vector with a non-zero z (nzz) component</p>
<p>The plane may be perpendicular to z if n = (0,0,1)</p>
<h5 id="input-2"><a class="doc-anchor" href="#input-2">§</a>Input</h5>
<ul>
<li><code>p</code> (len=3) point on plane</li>
<li><code>n</code> (len=3) normal vector</li>
<li><code>xmin</code> and <code>xmax</code> limits along x</li>
<li><code>ymin</code> and <code>ymax</code> limits along y</li>
<li><code>nx</code> number of divisions along x (must be ≥ 2)</li>
<li><code>ny</code> number of divisions along y (must be ≥ 2)</li>
</ul>
<h5 id="output"><a class="doc-anchor" href="#output">§</a>Output</h5>
<ul>
<li><code>x</code>, <code>y</code>, <code>z</code> the coordinates of all points as in a meshgrid</li>
</ul>
<h5 id="example-2"><a class="doc-anchor" href="#example-2">§</a>Example</h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>plotpy::{Plot, StrError, Surface};
<span class="kw">use </span>std::path::Path;
<span class="kw">fn </span>main() -&gt; <span class="prelude-ty">Result</span>&lt;(), StrError&gt; {
<span class="comment">// configure and draw surface
</span><span class="kw">let </span><span class="kw-2">mut </span>surface = Surface::new();
<span class="kw">let </span>p = <span class="kw-2">&amp;</span>[<span class="number">0.0</span>, <span class="number">0.0</span>, <span class="number">0.0</span>];
<span class="kw">let </span>n = <span class="kw-2">&amp;</span>[<span class="number">0.0</span>, <span class="number">0.0</span>, <span class="number">1.0</span>];
surface.set_solid_color(<span class="string">"#5359e9"</span>)
.draw_plane_nzz(p, n, -<span class="number">1.0</span>, <span class="number">1.0</span>, -<span class="number">1.0</span>, <span class="number">1.0</span>, <span class="number">3</span>, <span class="number">3</span>)<span class="question-mark">?</span>;
<span class="comment">// add surface to plot
</span><span class="kw">let </span><span class="kw-2">mut </span>plot = Plot::new();
plot.add(<span class="kw-2">&amp;</span>surface);
<span class="comment">// save figure
</span>plot.set_range_3d(-<span class="number">1.0</span>, <span class="number">1.0</span>, -<span class="number">1.0</span>, <span class="number">1.0</span>, <span class="number">0.0</span>, <span class="number">1.0</span>)
.set_equal_axes(<span class="bool-val">true</span>)
.save(<span class="string">"/tmp/plotpy/doc_tests/doc_plane_nzz.svg"</span>)<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(())
}</code></pre></div>
<p><img src="https://raw.githubusercontent.com/cpmech/plotpy/main/figures/doc_plane_nzz.svg" alt="doc_plane_nzz.svg" /></p>
<p>See also integration test in the <strong>tests</strong> directory.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.draw_hemisphere" class="method"><a class="src rightside" href="../src/plotpy/surface_geometry.rs.html#216-256">Source</a><h4 class="code-header">pub fn <a href="#method.draw_hemisphere" class="fn">draw_hemisphere</a>(
&amp;mut self,
c: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>],
r: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>,
alpha_min: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>,
alpha_max: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>,
n_alpha: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.usize.html">usize</a>,
n_theta: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.usize.html">usize</a>,
cup: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.bool.html">bool</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;(<a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>&gt;&gt;, <a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>&gt;&gt;, <a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>&gt;&gt;), <a class="type" href="type.StrError.html" title="type plotpy::StrError">StrError</a>&gt;</h4></section></summary><div class="docblock"><p>Draws a hemisphere</p>
<h5 id="input-3"><a class="doc-anchor" href="#input-3">§</a>Input</h5>
<ul>
<li><code>c</code> (len=3) center coordinates</li>
<li><code>r</code> radius</li>
<li><code>alpha_min</code> min α angle in [-180, 180) degrees</li>
<li><code>alpha_max</code> max α angle in (-180, 180] degrees</li>
<li><code>n_alpha</code> number of divisions along α (must be ≥ 2)</li>
<li><code>n_theta</code> number of divisions along θ (must be ≥ 2)</li>
<li><code>cup</code> upside-down; like a cup</li>
</ul>
<h5 id="output-1"><a class="doc-anchor" href="#output-1">§</a>Output</h5>
<ul>
<li><code>x</code>, <code>y</code>, <code>z</code> the coordinates of all points as in a meshgrid</li>
</ul>
<h5 id="example-3"><a class="doc-anchor" href="#example-3">§</a>Example</h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>plotpy::{Plot, StrError, Surface};
<span class="kw">use </span>std::path::Path;
<span class="kw">fn </span>main() -&gt; <span class="prelude-ty">Result</span>&lt;(), StrError&gt; {
<span class="comment">// draw hat
</span><span class="kw">let </span><span class="kw-2">mut </span>hat = Surface::new();
<span class="kw">let </span>c = <span class="kw-2">&amp;</span>[-<span class="number">0.5</span>, <span class="number">0.0</span>, <span class="number">0.0</span>];
hat.set_solid_color(<span class="string">"#17af14"</span>)
.draw_hemisphere(c, <span class="number">0.5</span>, -<span class="number">180.0</span>, <span class="number">180.0</span>, <span class="number">20</span>, <span class="number">20</span>, <span class="bool-val">false</span>)<span class="question-mark">?</span>;
<span class="comment">// draw cup
</span><span class="kw">let </span><span class="kw-2">mut </span>cup = Surface::new();
<span class="kw">let </span>c = <span class="kw-2">&amp;</span>[<span class="number">0.5</span>, <span class="number">0.0</span>, <span class="number">0.0</span>];
cup.set_solid_color(<span class="string">"#ff8787"</span>)
.draw_hemisphere(c, <span class="number">0.5</span>, -<span class="number">180.0</span>, <span class="number">180.0</span>, <span class="number">20</span>, <span class="number">20</span>, <span class="bool-val">true</span>)<span class="question-mark">?</span>;
<span class="comment">// add surfaces to plot
</span><span class="kw">let </span><span class="kw-2">mut </span>plot = Plot::new();
plot.add(<span class="kw-2">&amp;</span>hat).add(<span class="kw-2">&amp;</span>cup);
<span class="comment">// save figure
</span>plot.set_range_3d(-<span class="number">1.0</span>, <span class="number">1.0</span>, -<span class="number">1.0</span>, <span class="number">1.0</span>, <span class="number">0.0</span>, <span class="number">1.0</span>)
.set_equal_axes(<span class="bool-val">true</span>)
.save(<span class="string">"/tmp/plotpy/doc_tests/doc_hemisphere.svg"</span>)<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(())
}</code></pre></div>
<p><img src="https://raw.githubusercontent.com/cpmech/plotpy/main/figures/doc_hemisphere.svg" alt="doc_hemisphere.svg" /></p>
<p>See also integration test in the <strong>tests</strong> directory.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.draw_superquadric" class="method"><a class="src rightside" href="../src/plotpy/surface_geometry.rs.html#308-350">Source</a><h4 class="code-header">pub fn <a href="#method.draw_superquadric" class="fn">draw_superquadric</a>(
&amp;mut self,
c: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>],
r: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>],
k: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>],
alpha_min: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>,
alpha_max: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>,
theta_min: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>,
theta_max: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>,
n_alpha: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.usize.html">usize</a>,
n_theta: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.usize.html">usize</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;(<a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>&gt;&gt;, <a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>&gt;&gt;, <a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>&gt;&gt;), <a class="type" href="type.StrError.html" title="type plotpy::StrError">StrError</a>&gt;</h4></section></summary><div class="docblock"><p>Draws a superquadric (includes sphere, super-ellipsoid, and super-hyperboloid)</p>
<h5 id="input-4"><a class="doc-anchor" href="#input-4">§</a>Input</h5>
<ul>
<li><code>c</code> (len=3) center coordinates</li>
<li><code>r</code> (len=3) radii</li>
<li><code>k</code> (len=3) exponents (must all be ≥ 0)</li>
<li><code>alpha_min</code> min α angle in [-180, 180) degrees</li>
<li><code>alpha_max</code> max α angle in (-180, 180] degrees</li>
<li><code>theta_min</code> min θ angle in [-90, 90) degrees</li>
<li><code>theta_max</code> max θ angle in (-90, 90] degrees</li>
<li><code>n_alpha</code> number of divisions along α (must be ≥ 2)</li>
<li><code>n_theta</code> number of divisions along θ (must be ≥ 2)</li>
</ul>
<h5 id="output-2"><a class="doc-anchor" href="#output-2">§</a>Output</h5>
<ul>
<li><code>x</code>, <code>y</code>, <code>z</code> the coordinates of all points as in a meshgrid</li>
</ul>
<p>Reference: <a href="https://en.wikipedia.org/wiki/Superquadrics">https://en.wikipedia.org/wiki/Superquadrics</a></p>
<h5 id="example-4"><a class="doc-anchor" href="#example-4">§</a>Example</h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>plotpy::{Plot, StrError, Surface};
<span class="kw">use </span>std::path::Path;
<span class="kw">fn </span>main() -&gt; <span class="prelude-ty">Result</span>&lt;(), StrError&gt; {
<span class="comment">// configure and draw surface
</span><span class="kw">let </span>c = <span class="kw-2">&amp;</span>[<span class="number">0.0</span>, <span class="number">0.0</span>, <span class="number">0.0</span>];
<span class="kw">let </span>r = <span class="kw-2">&amp;</span>[<span class="number">1.0</span>, <span class="number">1.0</span>, <span class="number">1.0</span>];
<span class="kw">let </span>k = <span class="kw-2">&amp;</span>[<span class="number">1.0</span>, <span class="number">2.0</span>, <span class="number">0.5</span>];
<span class="kw">let </span><span class="kw-2">mut </span>surface = Surface::new();
surface.set_solid_color(<span class="string">"#cd0000"</span>)
.draw_superquadric(c, r, k, -<span class="number">180.0</span>, <span class="number">180.0</span>, -<span class="number">90.0</span>, <span class="number">90.0</span>, <span class="number">40</span>, <span class="number">20</span>)<span class="question-mark">?</span>;
<span class="comment">// add surface to plot
</span><span class="kw">let </span><span class="kw-2">mut </span>plot = Plot::new();
plot.add(<span class="kw-2">&amp;</span>surface);
<span class="comment">// save figure
</span>plot.set_equal_axes(<span class="bool-val">true</span>)
.save(<span class="string">"/tmp/plotpy/doc_tests/doc_superquadric.svg"</span>)<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(())
}</code></pre></div>
<p><img src="https://raw.githubusercontent.com/cpmech/plotpy/main/figures/doc_superquadric.svg" alt="doc_superquadric.svg" /></p>
<p>See also integration test in the <strong>tests</strong> directory.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.draw_sphere" class="method"><a class="src rightside" href="../src/plotpy/surface_geometry.rs.html#393-419">Source</a><h4 class="code-header">pub fn <a href="#method.draw_sphere" class="fn">draw_sphere</a>(
&amp;mut self,
c: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>],
r: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>,
n_alpha: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.usize.html">usize</a>,
n_theta: <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.usize.html">usize</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;(<a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>&gt;&gt;, <a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>&gt;&gt;, <a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.f64.html">f64</a>&gt;&gt;), <a class="type" href="type.StrError.html" title="type plotpy::StrError">StrError</a>&gt;</h4></section></summary><div class="docblock"><p>Draws a sphere</p>
<h5 id="input-5"><a class="doc-anchor" href="#input-5">§</a>Input</h5>
<ul>
<li><code>c</code> (len=3) center coordinates</li>
<li><code>r</code> radius</li>
<li><code>n_alpha</code> number of divisions along α (must be ≥ 2)</li>
<li><code>n_theta</code> number of divisions along θ (must be ≥ 2)</li>
</ul>
<h5 id="output-3"><a class="doc-anchor" href="#output-3">§</a>Output:</h5>
<ul>
<li><code>x</code>, <code>y</code>, <code>z</code> the coordinates of all points as in a meshgrid</li>
</ul>
<h5 id="example-5"><a class="doc-anchor" href="#example-5">§</a>Example</h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>plotpy::{Plot, StrError, Surface};
<span class="kw">use </span>std::path::Path;
<span class="kw">fn </span>main() -&gt; <span class="prelude-ty">Result</span>&lt;(), StrError&gt; {
<span class="comment">// configure and draw surface
</span><span class="kw">let </span><span class="kw-2">mut </span>surface = Surface::new();
<span class="kw">let </span>c = <span class="kw-2">&amp;</span>[<span class="number">0.0</span>, <span class="number">0.0</span>, <span class="number">0.0</span>];
surface.set_solid_color(<span class="string">"#7812c3"</span>)
.draw_sphere(c, <span class="number">1.0</span>, <span class="number">20</span>, <span class="number">20</span>)<span class="question-mark">?</span>;
<span class="comment">// add surface to plot
</span><span class="kw">let </span><span class="kw-2">mut </span>plot = Plot::new();
plot.add(<span class="kw-2">&amp;</span>surface);
<span class="comment">// save figure
</span>plot.set_equal_axes(<span class="bool-val">true</span>)
.save(<span class="string">"/tmp/plotpy/doc_tests/doc_sphere.svg"</span>)<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(())
}</code></pre></div>
<p><img src="https://raw.githubusercontent.com/cpmech/plotpy/main/figures/doc_sphere.svg" alt="doc_sphere.svg" /></p>
<p>See also integration test in the <strong>tests</strong> directory.</p>
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-GraphMaker-for-Surface" class="impl"><a class="src rightside" href="../src/plotpy/surface.rs.html#333-340">Source</a><a href="#impl-GraphMaker-for-Surface" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.GraphMaker.html" title="trait plotpy::GraphMaker">GraphMaker</a> for <a class="struct" href="struct.Surface.html" title="struct plotpy::Surface">Surface</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.get_buffer" class="method trait-impl"><a class="src rightside" href="../src/plotpy/surface.rs.html#334-336">Source</a><a href="#method.get_buffer" class="anchor">§</a><h4 class="code-header">fn <a href="trait.GraphMaker.html#tymethod.get_buffer" class="fn">get_buffer</a>&lt;'a&gt;(&amp;'a self) -&gt; &amp;'a <a class="struct" href="https://doc.rust-lang.org/1.84.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Returns the text buffer with Python3 commands</div></details><details class="toggle method-toggle" open><summary><section id="method.clear_buffer" class="method trait-impl"><a class="src rightside" href="../src/plotpy/surface.rs.html#337-339">Source</a><a href="#method.clear_buffer" class="anchor">§</a><h4 class="code-header">fn <a href="trait.GraphMaker.html#tymethod.clear_buffer" class="fn">clear_buffer</a>(&amp;mut self)</h4></section></summary><div class='docblock'>Clear the text buffer with Python commands</div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-Surface" class="impl"><a href="#impl-Freeze-for-Surface" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a> for <a class="struct" href="struct.Surface.html" title="struct plotpy::Surface">Surface</a></h3></section><section id="impl-RefUnwindSafe-for-Surface" class="impl"><a href="#impl-RefUnwindSafe-for-Surface" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Surface.html" title="struct plotpy::Surface">Surface</a></h3></section><section id="impl-Send-for-Surface" class="impl"><a href="#impl-Send-for-Surface" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Surface.html" title="struct plotpy::Surface">Surface</a></h3></section><section id="impl-Sync-for-Surface" class="impl"><a href="#impl-Sync-for-Surface" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Surface.html" title="struct plotpy::Surface">Surface</a></h3></section><section id="impl-Unpin-for-Surface" class="impl"><a href="#impl-Unpin-for-Surface" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Surface.html" title="struct plotpy::Surface">Surface</a></h3></section><section id="impl-UnwindSafe-for-Surface" class="impl"><a href="#impl-UnwindSafe-for-Surface" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Surface.html" title="struct plotpy::Surface">Surface</a></h3></section></div><h2 id="blanket-implementations" class="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/any.rs.html#138">Source</a><a href="#impl-Any-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<div class="where">where
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/any.rs.html#139">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.84.0/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/1.84.0/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/borrow.rs.html#209">Source</a><a href="#impl-Borrow%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/borrow.rs.html#211">Source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&amp;T</a></h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.84.0/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/borrow.rs.html#217">Source</a><a href="#impl-BorrowMut%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/1.84.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/borrow.rs.html#218">Source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.84.0/std/primitive.reference.html">&amp;mut T</a></h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.84.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#765">Source</a><a href="#impl-From%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#768">Source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#748-750">Source</a><a href="#impl-Into%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#758">Source</a><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code><a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#805-807">Source</a><a href="#impl-TryFrom%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#809">Source</a><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#812">Source</a><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#790-792">Source</a><a href="#impl-TryInto%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#794">Source</a><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.84.0/src/core/convert/mod.rs.html#797">Source</a><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.84.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.84.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details></div></section></div></main></body></html>