%PDF- %PDF-
Direktori : /usr/share/doc/imath-devel/html/classes/ |
Current File : //usr/share/doc/imath-devel/html/classes/Shear6.html |
<!doctype html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Shear6 — Imath Documentation</title> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="../_static/bizstyle.css" type="text/css" /> <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> <script src="../_static/jquery.js"></script> <script src="../_static/underscore.js"></script> <script src="../_static/doctools.js"></script> <script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script> <script src="../_static/bizstyle.js"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> <link rel="next" title="Sphere3" href="Sphere3.html" /> <link rel="prev" title="Rand48" href="Rand48.html" /> <meta name="viewport" content="width=device-width,initial-scale=1.0" /> <!--[if lt IE 9]> <script src="_static/css3-mediaqueries.js"></script> <![endif]--> </head><body> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> <li class="right" > <a href="Sphere3.html" title="Sphere3" accesskey="N">next</a> |</li> <li class="right" > <a href="Rand48.html" title="Rand48" accesskey="P">previous</a> |</li> <li class="nav-item nav-item-0"><a href="../index.html">Imath</a> »</li> <li class="nav-item nav-item-this"><a href="">Shear6</a></li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <div class="section" id="shear6"> <h1>Shear6<a class="headerlink" href="#shear6" title="Permalink to this headline">¶</a></h1> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1">#include <Imath/ImathShear.h></span> </pre></div> </div> <p>The <code class="docutils literal notranslate"><span class="pre">Shear6</span></code> class template represent a 3D shear transformation, with predefined typedefs for <code class="docutils literal notranslate"><span class="pre">float</span></code> and <code class="docutils literal notranslate"><span class="pre">double</span></code>.</p> <p>Example:</p> <div class="highlight-c++ notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span> <span class="cpf"><Imath/ImathShear.h></span><span class="cp"></span> <span class="cp">#include</span> <span class="cpf"><Imath/ImathMatrix.h></span><span class="cp"></span> <span class="kt">void</span> <span class="nf">shear6_example</span><span class="p">()</span> <span class="p">{</span> <span class="n">Imath</span><span class="o">::</span><span class="n">Shear6f</span> <span class="n">s</span> <span class="p">(</span><span class="mf">0.330f</span><span class="p">,</span> <span class="mf">0.710f</span><span class="p">,</span> <span class="mf">0.010f</span><span class="p">,</span> <span class="mf">0.999f</span><span class="p">,</span> <span class="mf">-0.531f</span><span class="p">,</span> <span class="mf">-0.012f</span><span class="p">);</span> <span class="n">Imath</span><span class="o">::</span><span class="n">M44f</span> <span class="n">M</span><span class="p">;</span> <span class="n">M</span><span class="p">.</span><span class="n">setShear</span> <span class="p">(</span><span class="n">s</span><span class="p">);</span> <span class="p">}</span> </pre></div> </div> <dl class="cpp type"> <dt id="_CPPv4N5Imath7Shear6fE"> <span id="_CPPv3N5Imath7Shear6fE"></span><span id="_CPPv2N5Imath7Shear6fE"></span><span id="Imath::Shear6f"></span><span class="target" id="_imath_shear_8h_1aadae6cc66420d58c85ce9a5d33bfdac8"></span><em class="property">typedef </em><a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a><float> <code class="sig-prename descclassname">Imath<code class="sig-prename descclassname">::</code></code><code class="sig-name descname">Shear6f</code><a class="headerlink" href="#_CPPv4N5Imath7Shear6fE" title="Permalink to this definition">¶</a><br /></dt> <dd><p><a class="reference internal" href="#class_imath_1_1_shear6"><span class="std std-ref">Shear6</span></a> of type float. </p> </dd></dl> <dl class="cpp class"> <dt id="_CPPv4I0EN5Imath6Shear6E"> <span id="_CPPv3I0EN5Imath6Shear6E"></span><span id="_CPPv2I0EN5Imath6Shear6E"></span>template<class <code class="sig-name descname">T</code>><br /><span class="target" id="class_imath_1_1_shear6"></span><em class="property">class </em><code class="sig-prename descclassname">Imath<code class="sig-prename descclassname">::</code></code><code class="sig-name descname">Shear6</code><a class="headerlink" href="#_CPPv4I0EN5Imath6Shear6E" title="Permalink to this definition">¶</a><br /></dt> <dd><p><a class="reference internal" href="#class_imath_1_1_shear6"><span class="std std-ref">Shear6</span></a> class template. </p> <p>A shear matrix is technically defined as having a single nonzero off-diagonal element; more generally, a shear transformation is defined by those off-diagonal elements, so in 3D, that means there are 6 possible elements/coefficients: <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>| X' | | 1 YX ZX 0 | | X | | Y' | | XY 1 ZY 0 | | Y | | Z' | = | XZ YZ 1 0 | = | Z | | 1 | | 0 0 0 1 | | 1 | X' = X + YX * Y + ZX * Z Y' = YX * X + Y + ZY * Z Z` = XZ * X + YZ * Y + Z </pre></div> </div> See <a class="reference external" href="https://www.cs.drexel.edu/~david/Classes/CS430/Lectures/L-04_3DTransformations.6.pdf">https://www.cs.drexel.edu/~david/Classes/CS430/Lectures/L-04_3DTransformations.6.pdf</a></p> <p>Those variable elements correspond to the 6 values in a <a class="reference internal" href="#class_imath_1_1_shear6"><span class="std std-ref">Shear6</span></a>. So, looking at those equations, “Shear YX”, for example, means that for any point transformed by that matrix, its X values will have some of their Y values added. If you’re talking about “Axis A has values from Axis B added to it”, there are 6 permutations for A and B (XY, XZ, YX, YZ, ZX, ZY).</p> <p>Not that Maya has only three values, which represent the lower/upper (depending on column/row major) triangle of the matrix. Houdini is the same as Maya (see <a class="reference external" href="https://www.sidefx.com/docs/houdini/props/obj.html">https://www.sidefx.com/docs/houdini/props/obj.html</a>) in this respect.</p> <p>There’s another way to look at it. A general affine transformation in 3D has 12 degrees of freedom - 12 “available” elements in the 4x4 matrix since a single row/column must be (0,0,0,1). If you add up the degrees of freedom from Maya:</p> <p><ul class="simple"> <li><p>3 translation</p></li> <li><p>3 rotation</p></li> <li><p>3 scale</p></li> <li><p>3 shear</p></li> </ul> </p> <p>You obviously get the full 12. So technically, the <a class="reference internal" href="#class_imath_1_1_shear6"><span class="std std-ref">Shear6</span></a> option of having all 6 shear options is overkill; Imath/Shear6 has 15 values for a 12-degree-of-freedom transformation. This means that any nonzero values in those last 3 shear coefficients can be represented in those standard 12 degrees of freedom. Here’s a python example of how to do that:</p> <p><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span> <span class="nn">imath</span> <span class="gp">>>> </span><span class="n">M</span> <span class="o">=</span> <span class="n">imath</span><span class="o">.</span><span class="n">M44f</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">s</span> <span class="o">=</span> <span class="n">imath</span><span class="o">.</span><span class="n">V3f</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">h</span> <span class="o">=</span> <span class="n">imath</span><span class="o">.</span><span class="n">V3f</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">r</span> <span class="o">=</span> <span class="n">imath</span><span class="o">.</span><span class="n">V3f</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">t</span> <span class="o">=</span> <span class="n">imath</span><span class="o">.</span><span class="n">V3f</span><span class="p">()</span> <span class="go"># Use Shear.YX (index 3), which is an "extra" shear value</span> <span class="gp">>>> </span><span class="n">M</span><span class="o">.</span><span class="n">setShear</span><span class="p">((</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">))</span> <span class="go">M44f((1, 1, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0, 0, 1))</span> <span class="gp">>>> </span><span class="n">M</span><span class="o">.</span><span class="n">extractSHRT</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="n">h</span><span class="p">,</span> <span class="n">r</span><span class="p">,</span> <span class="n">t</span><span class="p">)</span> <span class="go">1</span> <span class="gp">>>> </span><span class="n">s</span> <span class="go">V3f(1.41421354, 0.707106769, 1)</span> <span class="gp">>>> </span><span class="n">h</span> <span class="go">V3f(1, 0, 0)</span> <span class="gp">>>> </span><span class="n">r</span> <span class="go">V3f(0, -0, 0.785398185)</span> <span class="gp">>>> </span><span class="n">t</span> <span class="go">V3f(0, 0, 0)</span> </pre></div> </div> That shows how to decompose a transform matrix with one of those “extra” shear coefficients into those standard 12 degrees of freedom. But it’s not necessarily intuitive; in this case, a single non-zero shear coefficient resulted in a transform that has non-uniform scale, a single “standard” shear value, and some rotation.</p> <p>So, it would seem that any transform with those extra shear values set could be translated into Maya to produce the exact same transformation matrix; but doing this is probably pretty undesirable, since the result would have some surprising values on the other transformation attributes, despite being technically correct.</p> <p>This usage of “degrees of freedom” is a bit hand-wavey here; having a total of 12 inputs into the construction of a standard transformation matrix doesn’t necessarily mean that the matrix has 12 true degrees of freedom, but the standard translation/rotation/scale/shear matrices have the right construction to ensure that. </p> <div class="breathe-sectiondef docutils container"> <p class="breathe-sectiondef-title rubric">Direct access to members</p> <dl class="cpp var"> <dt id="_CPPv4N5Imath6Shear62xyE"> <span id="_CPPv3N5Imath6Shear62xyE"></span><span id="_CPPv2N5Imath6Shear62xyE"></span><span id="Imath::Shear6::xy__T"></span><span class="target" id="class_imath_1_1_shear6_1a23a1ab03f98aff0fae10e5e0e09ff98c"></span><a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> <code class="sig-name descname">xy</code><a class="headerlink" href="#_CPPv4N5Imath6Shear62xyE" title="Permalink to this definition">¶</a><br /></dt> <dd></dd></dl> <dl class="cpp var"> <dt id="_CPPv4N5Imath6Shear62xzE"> <span id="_CPPv3N5Imath6Shear62xzE"></span><span id="_CPPv2N5Imath6Shear62xzE"></span><span id="Imath::Shear6::xz__T"></span><span class="target" id="class_imath_1_1_shear6_1a05a36f2c47a2c521280f7b836ebb7e86"></span><a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> <code class="sig-name descname">xz</code><a class="headerlink" href="#_CPPv4N5Imath6Shear62xzE" title="Permalink to this definition">¶</a><br /></dt> <dd></dd></dl> <dl class="cpp var"> <dt id="_CPPv4N5Imath6Shear62yzE"> <span id="_CPPv3N5Imath6Shear62yzE"></span><span id="_CPPv2N5Imath6Shear62yzE"></span><span id="Imath::Shear6::yz__T"></span><span class="target" id="class_imath_1_1_shear6_1a89e17b6bd885ed57e2f148b99e2a1e0b"></span><a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> <code class="sig-name descname">yz</code><a class="headerlink" href="#_CPPv4N5Imath6Shear62yzE" title="Permalink to this definition">¶</a><br /></dt> <dd></dd></dl> <dl class="cpp var"> <dt id="_CPPv4N5Imath6Shear62yxE"> <span id="_CPPv3N5Imath6Shear62yxE"></span><span id="_CPPv2N5Imath6Shear62yxE"></span><span id="Imath::Shear6::yx__T"></span><span class="target" id="class_imath_1_1_shear6_1acc84d0ce69c769bed271655e78ed9a1d"></span><a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> <code class="sig-name descname">yx</code><a class="headerlink" href="#_CPPv4N5Imath6Shear62yxE" title="Permalink to this definition">¶</a><br /></dt> <dd></dd></dl> <dl class="cpp var"> <dt id="_CPPv4N5Imath6Shear62zxE"> <span id="_CPPv3N5Imath6Shear62zxE"></span><span id="_CPPv2N5Imath6Shear62zxE"></span><span id="Imath::Shear6::zx__T"></span><span class="target" id="class_imath_1_1_shear6_1a5a717f3a61481f8836e573cacb2e280b"></span><a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> <code class="sig-name descname">zx</code><a class="headerlink" href="#_CPPv4N5Imath6Shear62zxE" title="Permalink to this definition">¶</a><br /></dt> <dd></dd></dl> <dl class="cpp var"> <dt id="_CPPv4N5Imath6Shear62zyE"> <span id="_CPPv3N5Imath6Shear62zyE"></span><span id="_CPPv2N5Imath6Shear62zyE"></span><span id="Imath::Shear6::zy__T"></span><span class="target" id="class_imath_1_1_shear6_1af5df497c9a06265d969cead9d5b0b0fb"></span><a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> <code class="sig-name descname">zy</code><a class="headerlink" href="#_CPPv4N5Imath6Shear62zyE" title="Permalink to this definition">¶</a><br /></dt> <dd></dd></dl> </div> <div class="breathe-sectiondef docutils container"> <p class="breathe-sectiondef-title rubric">Constructors and Assignment</p> <dl class="cpp function"> <dt id="_CPPv4N5Imath6Shear66Shear6Ev"> <span id="_CPPv3N5Imath6Shear66Shear6Ev"></span><span id="_CPPv2N5Imath6Shear66Shear6Ev"></span><span id="Imath::Shear6::Shear6CE"></span><span class="target" id="class_imath_1_1_shear6_1a88f752ba4d5771fc59ee2afcefc182c1"></span><em class="property">inline</em> <em class="property">constexpr</em> <code class="sig-name descname">Shear6</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5Imath6Shear66Shear6Ev" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Initialize to 0. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4N5Imath6Shear66Shear6E1T1T1T"> <span id="_CPPv3N5Imath6Shear66Shear6E1T1T1T"></span><span id="_CPPv2N5Imath6Shear66Shear6E1T1T1T"></span><span id="Imath::Shear6::Shear6__T.T.TCE"></span><span class="target" id="class_imath_1_1_shear6_1adbf28e1ef9c53aafa68a2c748108c36d"></span><em class="property">inline</em> <em class="property">constexpr</em> <code class="sig-name descname">Shear6</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> <em>XY</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> <em>XZ</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> <em>YZ</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5Imath6Shear66Shear6E1T1T1T" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Initialize to the given XY, XZ, YZ values. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4N5Imath6Shear66Shear6ERK4Vec3I1TE"> <span id="_CPPv3N5Imath6Shear66Shear6ERK4Vec3I1TE"></span><span id="_CPPv2N5Imath6Shear66Shear6ERK4Vec3I1TE"></span><span id="Imath::Shear6::Shear6__Vec3:T:CRCE"></span><span class="target" id="class_imath_1_1_shear6_1a8e16f7c8ed98692ca6cc2a1908e8c462"></span><em class="property">inline</em> <em class="property">constexpr</em> <code class="sig-name descname">Shear6</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="Vec3.html#_CPPv4I0EN5Imath4Vec3E" title="Imath::Vec3">Vec3</a><<a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a>> &<em>v</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5Imath6Shear66Shear6ERK4Vec3I1TE" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Initialize to the given XY, XZ, YZ values held in (v.x, v.y, v.z) </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4I0EN5Imath6Shear66Shear6ERK4Vec3I1SE"> <span id="_CPPv3I0EN5Imath6Shear66Shear6ERK4Vec3I1SE"></span><span id="_CPPv2I0EN5Imath6Shear66Shear6ERK4Vec3I1SE"></span>template<class <code class="sig-name descname">S</code>><br /><span class="target" id="class_imath_1_1_shear6_1a086ca9078088a380a4cafff360440dc7"></span><em class="property">inline</em> <em class="property">constexpr</em> <code class="sig-name descname">Shear6</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="Vec3.html#_CPPv4I0EN5Imath4Vec3E" title="Imath::Vec3">Vec3</a><<a class="reference internal" href="#_CPPv4I0EN5Imath6Shear66Shear6ERK4Vec3I1SE" title="Imath::Shear6::Shear6::S">S</a>> &<em>v</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4I0EN5Imath6Shear66Shear6ERK4Vec3I1SE" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Initialize to the given XY, XZ, YZ values held in (v.x, v.y, v.z) </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4N5Imath6Shear66Shear6E1T1T1T1T1T1T"> <span id="_CPPv3N5Imath6Shear66Shear6E1T1T1T1T1T1T"></span><span id="_CPPv2N5Imath6Shear66Shear6E1T1T1T1T1T1T"></span><span id="Imath::Shear6::Shear6__T.T.T.T.T.TCE"></span><span class="target" id="class_imath_1_1_shear6_1a222a59f662d06eafdd92a7c68fdedd68"></span><em class="property">inline</em> <em class="property">constexpr</em> <code class="sig-name descname">Shear6</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> <em>XY</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> <em>XZ</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> <em>YZ</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> <em>YX</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> <em>ZX</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> <em>ZY</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5Imath6Shear66Shear6E1T1T1T1T1T1T" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Initialize to the given (XY XZ YZ YX ZX ZY) values. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4N5Imath6Shear66Shear6ERK6Shear6"> <span id="_CPPv3N5Imath6Shear66Shear6ERK6Shear6"></span><span id="_CPPv2N5Imath6Shear66Shear6ERK6Shear6"></span><span id="Imath::Shear6::Shear6__Shear6CRCE"></span><span class="target" id="class_imath_1_1_shear6_1a9d67005373a750512a2d370d12fda0b4"></span><em class="property">inline</em> <em class="property">constexpr</em> <code class="sig-name descname">Shear6</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="#_CPPv4N5Imath6Shear66Shear6ERK6Shear6" title="Imath::Shear6::Shear6">Shear6</a> &<em>h</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5Imath6Shear66Shear6ERK6Shear6" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Copy constructor. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4I0EN5Imath6Shear66Shear6ERK6Shear6I1SE"> <span id="_CPPv3I0EN5Imath6Shear66Shear6ERK6Shear6I1SE"></span><span id="_CPPv2I0EN5Imath6Shear66Shear6ERK6Shear6I1SE"></span>template<class <code class="sig-name descname">S</code>><br /><span class="target" id="class_imath_1_1_shear6_1a0d24ce046504bdb37bd373d0323cdd92"></span><em class="property">inline</em> <em class="property">constexpr</em> <code class="sig-name descname">Shear6</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear66Shear6ERK6Shear6I1SE" title="Imath::Shear6::Shear6">Shear6</a><<a class="reference internal" href="#_CPPv4I0EN5Imath6Shear66Shear6ERK6Shear6I1SE" title="Imath::Shear6::Shear6::S">S</a>> &<em>h</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4I0EN5Imath6Shear66Shear6ERK6Shear6I1SE" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Construct from a <a class="reference internal" href="#class_imath_1_1_shear6"><span class="std std-ref">Shear6</span></a> object of another base type. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4N5Imath6Shear6aSERK6Shear6"> <span id="_CPPv3N5Imath6Shear6aSERK6Shear6"></span><span id="_CPPv2N5Imath6Shear6aSERK6Shear6"></span><span id="Imath::Shear6::assign-operator__Shear6CRCE"></span><span class="target" id="class_imath_1_1_shear6_1a69f1052722ef51cb66c5f548b84bd357"></span><em class="property">inline</em> <em class="property">constexpr</em> <em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> &<code class="sig-name descname">operator=</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> &<em>h</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5Imath6Shear6aSERK6Shear6" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Assignment. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4I0EN5Imath6Shear6aSERK6Shear6RK4Vec3I1SE"> <span id="_CPPv3I0EN5Imath6Shear6aSERK4Vec3I1SE"></span><span id="_CPPv2I0EN5Imath6Shear6aSERK4Vec3I1SE"></span>template<class <code class="sig-name descname">S</code>><br /><span class="target" id="class_imath_1_1_shear6_1a41b1b125c548c2cb33b01fd8c75d0daf"></span><em class="property">constexpr</em> <em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> &<code class="sig-name descname">operator=</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="Vec3.html#_CPPv4I0EN5Imath4Vec3E" title="Imath::Vec3">Vec3</a><<a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6aSERK6Shear6RK4Vec3I1SE" title="Imath::Shear6::operator=::S">S</a>> &<em>v</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4I0EN5Imath6Shear6aSERK6Shear6RK4Vec3I1SE" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Assignment from vector. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4N5Imath6Shear6D0Ev"> <span id="_CPPv3N5Imath6Shear6D0Ev"></span><span id="_CPPv2N5Imath6Shear6D0Ev"></span><span id="Imath::Shear6::~Shear6"></span><span class="target" id="class_imath_1_1_shear6_1a97ab4d74161c88c24ceba0be0aa7c3e6"></span><code class="sig-name descname">~Shear6</code><span class="sig-paren">(</span><span class="sig-paren">)</span> = default<a class="headerlink" href="#_CPPv4N5Imath6Shear6D0Ev" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Destructor. </p> </dd></dl> </div> <div class="breathe-sectiondef docutils container"> <p class="breathe-sectiondef-title rubric">Compatibility with Sb</p> <dl class="cpp function"> <dt id="_CPPv4I0EN5Imath6Shear68setValueEv1S1S1S1S1S1S"> <span id="_CPPv3I0EN5Imath6Shear68setValueE1S1S1S1S1S1S"></span><span id="_CPPv2I0EN5Imath6Shear68setValueE1S1S1S1S1S1S"></span>template<class <code class="sig-name descname">S</code>><br /><span class="target" id="class_imath_1_1_shear6_1a48b2121fd20811cd5d86168a8247f52a"></span><em class="property">inline</em> void <code class="sig-name descname">setValue</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath6Shear68setValueEv1S1S1S1S1S1S" title="Imath::Shear6::setValue::S">S</a> <em>XY</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear68setValueEv1S1S1S1S1S1S" title="Imath::Shear6::setValue::S">S</a> <em>XZ</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear68setValueEv1S1S1S1S1S1S" title="Imath::Shear6::setValue::S">S</a> <em>YZ</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear68setValueEv1S1S1S1S1S1S" title="Imath::Shear6::setValue::S">S</a> <em>YX</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear68setValueEv1S1S1S1S1S1S" title="Imath::Shear6::setValue::S">S</a> <em>ZX</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear68setValueEv1S1S1S1S1S1S" title="Imath::Shear6::setValue::S">S</a> <em>ZY</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4I0EN5Imath6Shear68setValueEv1S1S1S1S1S1S" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Set the value. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4I0EN5Imath6Shear68setValueEvRK6Shear6I1SE"> <span id="_CPPv3I0EN5Imath6Shear68setValueERK6Shear6I1SE"></span><span id="_CPPv2I0EN5Imath6Shear68setValueERK6Shear6I1SE"></span>template<class <code class="sig-name descname">S</code>><br /><span class="target" id="class_imath_1_1_shear6_1a62d06e60062a324a6f40be096307cd17"></span><em class="property">inline</em> void <code class="sig-name descname">setValue</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a><<a class="reference internal" href="#_CPPv4I0EN5Imath6Shear68setValueEvRK6Shear6I1SE" title="Imath::Shear6::setValue::S">S</a>> &<em>h</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4I0EN5Imath6Shear68setValueEvRK6Shear6I1SE" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Set the value. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4I0ENK5Imath6Shear68getValueEvR1SR1SR1SR1SR1SR1S"> <span id="_CPPv3I0ENK5Imath6Shear68getValueER1SR1SR1SR1SR1SR1S"></span><span id="_CPPv2I0ENK5Imath6Shear68getValueER1SR1SR1SR1SR1SR1S"></span>template<class <code class="sig-name descname">S</code>><br /><span class="target" id="class_imath_1_1_shear6_1a4f6c34b66a342c59374211979c150ee1"></span><em class="property">inline</em> void <code class="sig-name descname">getValue</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0ENK5Imath6Shear68getValueEvR1SR1SR1SR1SR1SR1S" title="Imath::Shear6::getValue::S">S</a> &<em>XY</em>, <a class="reference internal" href="#_CPPv4I0ENK5Imath6Shear68getValueEvR1SR1SR1SR1SR1SR1S" title="Imath::Shear6::getValue::S">S</a> &<em>XZ</em>, <a class="reference internal" href="#_CPPv4I0ENK5Imath6Shear68getValueEvR1SR1SR1SR1SR1SR1S" title="Imath::Shear6::getValue::S">S</a> &<em>YZ</em>, <a class="reference internal" href="#_CPPv4I0ENK5Imath6Shear68getValueEvR1SR1SR1SR1SR1SR1S" title="Imath::Shear6::getValue::S">S</a> &<em>YX</em>, <a class="reference internal" href="#_CPPv4I0ENK5Imath6Shear68getValueEvR1SR1SR1SR1SR1SR1S" title="Imath::Shear6::getValue::S">S</a> &<em>ZX</em>, <a class="reference internal" href="#_CPPv4I0ENK5Imath6Shear68getValueEvR1SR1SR1SR1SR1SR1S" title="Imath::Shear6::getValue::S">S</a> &<em>ZY</em><span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4I0ENK5Imath6Shear68getValueEvR1SR1SR1SR1SR1SR1S" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Return the values. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4I0ENK5Imath6Shear68getValueEvR6Shear6I1SE"> <span id="_CPPv3I0ENK5Imath6Shear68getValueER6Shear6I1SE"></span><span id="_CPPv2I0ENK5Imath6Shear68getValueER6Shear6I1SE"></span>template<class <code class="sig-name descname">S</code>><br /><span class="target" id="class_imath_1_1_shear6_1a16f8f7f11fdf67763227b1fd21c824bd"></span><em class="property">inline</em> void <code class="sig-name descname">getValue</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a><<a class="reference internal" href="#_CPPv4I0ENK5Imath6Shear68getValueEvR6Shear6I1SE" title="Imath::Shear6::getValue::S">S</a>> &<em>h</em><span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4I0ENK5Imath6Shear68getValueEvR6Shear6I1SE" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Return the value in <code class="docutils literal notranslate"><span class="pre">h</span></code> </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4N5Imath6Shear68getValueEv"> <span id="_CPPv3N5Imath6Shear68getValueEv"></span><span id="_CPPv2N5Imath6Shear68getValueEv"></span><span id="Imath::Shear6::getValue"></span><span class="target" id="class_imath_1_1_shear6_1aa75b2e14dac544488d9f9755badb866a"></span><em class="property">inline</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> *<code class="sig-name descname">getValue</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5Imath6Shear68getValueEv" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Return a raw pointer to the array of values. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4NK5Imath6Shear68getValueEv"> <span id="_CPPv3NK5Imath6Shear68getValueEv"></span><span id="_CPPv2NK5Imath6Shear68getValueEv"></span><span id="Imath::Shear6::getValueC"></span><span class="target" id="class_imath_1_1_shear6_1ab4c9f49fb46343db801a7a50802741cb"></span><em class="property">inline</em> <em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> *<code class="sig-name descname">getValue</code><span class="sig-paren">(</span><span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4NK5Imath6Shear68getValueEv" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Return a raw pointer to the array of values. </p> </dd></dl> </div> <div class="breathe-sectiondef docutils container"> <p class="breathe-sectiondef-title rubric">Arithmetic and Comparison</p> <dl class="cpp function"> <dt id="_CPPv4I0ENK5Imath6Shear6eqEbRK6Shear6I1SE"> <span id="_CPPv3I0ENK5Imath6Shear6eqERK6Shear6I1SE"></span><span id="_CPPv2I0ENK5Imath6Shear6eqERK6Shear6I1SE"></span>template<class <code class="sig-name descname">S</code>><br /><span class="target" id="class_imath_1_1_shear6_1a5676625251ac8f15f7ce22a146f637ff"></span><em class="property">inline</em> <em class="property">constexpr</em> bool <code class="sig-name descname">operator==</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a><<a class="reference internal" href="#_CPPv4I0ENK5Imath6Shear6eqEbRK6Shear6I1SE" title="Imath::Shear6::operator==::S">S</a>> &<em>h</em><span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4I0ENK5Imath6Shear6eqEbRK6Shear6I1SE" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Equality. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4I0ENK5Imath6Shear6neEbRK6Shear6I1SE"> <span id="_CPPv3I0ENK5Imath6Shear6neERK6Shear6I1SE"></span><span id="_CPPv2I0ENK5Imath6Shear6neERK6Shear6I1SE"></span>template<class <code class="sig-name descname">S</code>><br /><span class="target" id="class_imath_1_1_shear6_1a775bc61bb7a0da1ba22e583e168698ba"></span><em class="property">inline</em> <em class="property">constexpr</em> bool <code class="sig-name descname">operator!=</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a><<a class="reference internal" href="#_CPPv4I0ENK5Imath6Shear6neEbRK6Shear6I1SE" title="Imath::Shear6::operator!=::S">S</a>> &<em>h</em><span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4I0ENK5Imath6Shear6neEbRK6Shear6I1SE" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Inequality. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4NK5Imath6Shear617equalWithAbsErrorERK6Shear6I1TE1T"> <span id="_CPPv3NK5Imath6Shear617equalWithAbsErrorERK6Shear6I1TE1T"></span><span id="_CPPv2NK5Imath6Shear617equalWithAbsErrorERK6Shear6I1TE1T"></span><span id="Imath::Shear6::equalWithAbsError__Shear6:T:CR.TCCE"></span><span class="target" id="class_imath_1_1_shear6_1ab7cc2efa2146b35d8837d45873f4f85c"></span><em class="property">inline</em> <em class="property">constexpr</em> bool <code class="sig-name descname">equalWithAbsError</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a><<a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a>> &<em>h</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> <em>e</em><span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4NK5Imath6Shear617equalWithAbsErrorERK6Shear6I1TE1T" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Compare two shears and test if they are “approximately equal”: </p> <p><dl class="simple"> <dt><strong>Return</strong></dt><dd><p>True if the coefficients of this and h are the same with an absolute error of no more than e, i.e., for all i abs (this[i] - h[i]) <= e </p> </dd> </dl> </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4NK5Imath6Shear617equalWithRelErrorERK6Shear6I1TE1T"> <span id="_CPPv3NK5Imath6Shear617equalWithRelErrorERK6Shear6I1TE1T"></span><span id="_CPPv2NK5Imath6Shear617equalWithRelErrorERK6Shear6I1TE1T"></span><span id="Imath::Shear6::equalWithRelError__Shear6:T:CR.TCCE"></span><span class="target" id="class_imath_1_1_shear6_1aea9fbc29db26f54ffabcbb2101b0ede7"></span><em class="property">inline</em> <em class="property">constexpr</em> bool <code class="sig-name descname">equalWithRelError</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a><<a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a>> &<em>h</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> <em>e</em><span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4NK5Imath6Shear617equalWithRelErrorERK6Shear6I1TE1T" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Compare two shears and test if they are “approximately equal”: </p> <p><dl class="simple"> <dt><strong>Return</strong></dt><dd><p>True if the coefficients of this and h are the same with a relative error of no more than e, i.e., for all i abs (this[i] - h[i]) <= e * abs (this[i]) </p> </dd> </dl> </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4N5Imath6Shear6pLERK6Shear6"> <span id="_CPPv3N5Imath6Shear6pLERK6Shear6"></span><span id="_CPPv2N5Imath6Shear6pLERK6Shear6"></span><span id="Imath::Shear6::add-assign-operator__Shear6CRCE"></span><span class="target" id="class_imath_1_1_shear6_1a12fb3ce3319faf28c44f83187469fb36"></span><em class="property">inline</em> <em class="property">constexpr</em> <em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> &<code class="sig-name descname">operator+=</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> &<em>h</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5Imath6Shear6pLERK6Shear6" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Component-wise addition. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4NK5Imath6Shear6plERK6Shear6"> <span id="_CPPv3NK5Imath6Shear6plERK6Shear6"></span><span id="_CPPv2NK5Imath6Shear6plERK6Shear6"></span><span id="Imath::Shear6::add-operator__Shear6CRCCE"></span><span class="target" id="class_imath_1_1_shear6_1a18d299e59ffd7d446546d1d36c54bab5"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> <code class="sig-name descname">operator+</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> &<em>h</em><span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4NK5Imath6Shear6plERK6Shear6" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Component-wise addition. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4N5Imath6Shear6mIERK6Shear6"> <span id="_CPPv3N5Imath6Shear6mIERK6Shear6"></span><span id="_CPPv2N5Imath6Shear6mIERK6Shear6"></span><span id="Imath::Shear6::sub-assign-operator__Shear6CRCE"></span><span class="target" id="class_imath_1_1_shear6_1a63fcf42c17ad8da2a9a3b8ca7a4014e8"></span><em class="property">inline</em> <em class="property">constexpr</em> <em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> &<code class="sig-name descname">operator-=</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> &<em>h</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5Imath6Shear6mIERK6Shear6" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Component-wise subtraction. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4NK5Imath6Shear6miERK6Shear6"> <span id="_CPPv3NK5Imath6Shear6miERK6Shear6"></span><span id="_CPPv2NK5Imath6Shear6miERK6Shear6"></span><span id="Imath::Shear6::sub-operator__Shear6CRCCE"></span><span class="target" id="class_imath_1_1_shear6_1a28e6e8a166d08b83626fba4b3ae0c65a"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> <code class="sig-name descname">operator-</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> &<em>h</em><span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4NK5Imath6Shear6miERK6Shear6" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Component-wise subtraction. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4NK5Imath6Shear6miEv"> <span id="_CPPv3NK5Imath6Shear6miEv"></span><span id="_CPPv2NK5Imath6Shear6miEv"></span><span id="Imath::Shear6::sub-operatorCCE"></span><span class="target" id="class_imath_1_1_shear6_1a9aef3fff8eb2774538950632f9374211"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> <code class="sig-name descname">operator-</code><span class="sig-paren">(</span><span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4NK5Imath6Shear6miEv" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Component-wise multiplication by -1. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4N5Imath6Shear66negateEv"> <span id="_CPPv3N5Imath6Shear66negateEv"></span><span id="_CPPv2N5Imath6Shear66negateEv"></span><span id="Imath::Shear6::negateCE"></span><span class="target" id="class_imath_1_1_shear6_1aa9407fe36c0137cf214a683047a99d53"></span><em class="property">inline</em> <em class="property">constexpr</em> <em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> &<code class="sig-name descname">negate</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5Imath6Shear66negateEv" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Component-wise multiplication by -1. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4N5Imath6Shear6mLERK6Shear6"> <span id="_CPPv3N5Imath6Shear6mLERK6Shear6"></span><span id="_CPPv2N5Imath6Shear6mLERK6Shear6"></span><span id="Imath::Shear6::mul-assign-operator__Shear6CRCE"></span><span class="target" id="class_imath_1_1_shear6_1a184f1f734731dd8af902c493ad9c7c43"></span><em class="property">inline</em> <em class="property">constexpr</em> <em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> &<code class="sig-name descname">operator*=</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> &<em>h</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5Imath6Shear6mLERK6Shear6" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Component-wise multiplication. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4N5Imath6Shear6mLE1T"> <span id="_CPPv3N5Imath6Shear6mLE1T"></span><span id="_CPPv2N5Imath6Shear6mLE1T"></span><span id="Imath::Shear6::mul-assign-operator__TCE"></span><span class="target" id="class_imath_1_1_shear6_1a449d00b8fda6570b6fb6c3b69c6adc8e"></span><em class="property">inline</em> <em class="property">constexpr</em> <em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> &<code class="sig-name descname">operator*=</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> <em>a</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5Imath6Shear6mLE1T" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Scalar multiplication. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4NK5Imath6Shear6mlERK6Shear6"> <span id="_CPPv3NK5Imath6Shear6mlERK6Shear6"></span><span id="_CPPv2NK5Imath6Shear6mlERK6Shear6"></span><span id="Imath::Shear6::mul-operator__Shear6CRCCE"></span><span class="target" id="class_imath_1_1_shear6_1a8d48734ab5e7bc94e80704bbc98220ab"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> <code class="sig-name descname">operator*</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> &<em>h</em><span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4NK5Imath6Shear6mlERK6Shear6" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Component-wise multiplication. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4NK5Imath6Shear6mlE1T"> <span id="_CPPv3NK5Imath6Shear6mlE1T"></span><span id="_CPPv2NK5Imath6Shear6mlE1T"></span><span id="Imath::Shear6::mul-operator__TCCE"></span><span class="target" id="class_imath_1_1_shear6_1a5b6cd7f3c4f28f44be1bfe06f3702314"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> <code class="sig-name descname">operator*</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> <em>a</em><span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4NK5Imath6Shear6mlE1T" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Scalar multiplication. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4N5Imath6Shear6dVERK6Shear6"> <span id="_CPPv3N5Imath6Shear6dVERK6Shear6"></span><span id="_CPPv2N5Imath6Shear6dVERK6Shear6"></span><span id="Imath::Shear6::div-assign-operator__Shear6CRCE"></span><span class="target" id="class_imath_1_1_shear6_1a19a64ea68be34b78d0f8dc74c83bb45e"></span><em class="property">inline</em> <em class="property">constexpr</em> <em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> &<code class="sig-name descname">operator/=</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> &<em>h</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5Imath6Shear6dVERK6Shear6" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Component-wise division. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4N5Imath6Shear6dVE1T"> <span id="_CPPv3N5Imath6Shear6dVE1T"></span><span id="_CPPv2N5Imath6Shear6dVE1T"></span><span id="Imath::Shear6::div-assign-operator__TCE"></span><span class="target" id="class_imath_1_1_shear6_1a4d0b750e1b5e70ebb2758a50f957d6ae"></span><em class="property">inline</em> <em class="property">constexpr</em> <em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> &<code class="sig-name descname">operator/=</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> <em>a</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5Imath6Shear6dVE1T" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Scalar division. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4NK5Imath6Shear6dvERK6Shear6"> <span id="_CPPv3NK5Imath6Shear6dvERK6Shear6"></span><span id="_CPPv2NK5Imath6Shear6dvERK6Shear6"></span><span id="Imath::Shear6::div-operator__Shear6CRCCE"></span><span class="target" id="class_imath_1_1_shear6_1aafb6347942c92f9cf21fb6d9038d26b9"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> <code class="sig-name descname">operator/</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> &<em>h</em><span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4NK5Imath6Shear6dvERK6Shear6" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Component-wise division. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4NK5Imath6Shear6dvE1T"> <span id="_CPPv3NK5Imath6Shear6dvE1T"></span><span id="_CPPv2NK5Imath6Shear6dvE1T"></span><span id="Imath::Shear6::div-operator__TCCE"></span><span class="target" id="class_imath_1_1_shear6_1a03b46b09abfaf11afd163a44ae66581f"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a> <code class="sig-name descname">operator/</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> <em>a</em><span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4NK5Imath6Shear6dvE1T" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Scalar division. </p> </dd></dl> </div> <div class="breathe-sectiondef docutils container"> <p class="breathe-sectiondef-title rubric">Numerical Limits</p> <dl class="cpp function"> <dt> <span class="target" id="class_imath_1_1_shear6_1a71d356704df1d7a4abe0a76b8b152da2"></span><code class="sig-name descname">static inline constexpr static T baseTypeLowest () noexcept</code></dt> <dd><p>Largest possible negative value. </p> </dd></dl> <dl class="cpp function"> <dt> <span class="target" id="class_imath_1_1_shear6_1a24ee7873f06ac9147bcfe2d59a32522a"></span><code class="sig-name descname">static inline constexpr static T baseTypeMax () noexcept</code></dt> <dd><p>Largest possible positive value. </p> </dd></dl> <dl class="cpp function"> <dt> <span class="target" id="class_imath_1_1_shear6_1ae0e9a490dfde8a50a86965259c6b0903"></span><code class="sig-name descname">static inline constexpr static T baseTypeSmallest () noexcept</code></dt> <dd><p>Smallest possible positive value. </p> </dd></dl> <dl class="cpp function"> <dt> <span class="target" id="class_imath_1_1_shear6_1abff3124dccfeca92f804cafa81b8cabb"></span><code class="sig-name descname">static inline constexpr static T baseTypeEpsilon () noexcept</code></dt> <dd><p>Smallest possible e for which 1+e != 1. </p> </dd></dl> </div> <div class="breathe-sectiondef docutils container"> <p class="breathe-sectiondef-title rubric">Public Types</p> <dl class="cpp type"> <dt id="_CPPv4N5Imath6Shear68BaseTypeE"> <span id="_CPPv3N5Imath6Shear68BaseTypeE"></span><span id="_CPPv2N5Imath6Shear68BaseTypeE"></span><span id="Imath::Shear6::BaseType"></span><span class="target" id="class_imath_1_1_shear6_1a38b09b4495518c2a70b85af43b780576"></span><em class="property">typedef </em><a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> <code class="sig-name descname">BaseType</code><a class="headerlink" href="#_CPPv4N5Imath6Shear68BaseTypeE" title="Permalink to this definition">¶</a><br /></dt> <dd><p>The base type: In templates that accept a parameter <code class="docutils literal notranslate"><span class="pre">V</span></code> (could be a <a class="reference internal" href="Color4.html#class_imath_1_1_color4"><span class="std std-ref">Color4</span></a>), you can refer to <code class="docutils literal notranslate"><span class="pre">T</span></code> as <code class="docutils literal notranslate"><span class="pre">V::BaseType</span></code> </p> </dd></dl> </div> <div class="breathe-sectiondef docutils container"> <p class="breathe-sectiondef-title rubric">Public Functions</p> <dl class="cpp function"> <dt id="_CPPv4N5Imath6Shear6ixEi"> <span id="_CPPv3N5Imath6Shear6ixEi"></span><span id="_CPPv2N5Imath6Shear6ixEi"></span><span id="Imath::Shear6::subscript-operator__iCE"></span><span class="target" id="class_imath_1_1_shear6_1a0ba82fca414d4c2166332f1f9d32567d"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> &<code class="sig-name descname">operator[]</code><span class="sig-paren">(</span>int <em>i</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5Imath6Shear6ixEi" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Element access. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4NK5Imath6Shear6ixEi"> <span id="_CPPv3NK5Imath6Shear6ixEi"></span><span id="_CPPv2NK5Imath6Shear6ixEi"></span><span id="Imath::Shear6::subscript-operator__iCCE"></span><span class="target" id="class_imath_1_1_shear6_1a63385585c711bb79926efd1403ec6e46"></span><em class="property">inline</em> <em class="property">constexpr</em> <em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a> &<code class="sig-name descname">operator[]</code><span class="sig-paren">(</span>int <em>i</em><span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4NK5Imath6Shear6ixEi" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Element access. </p> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4I0EN5Imath6Shear6aSERK6Shear6I1TERK4Vec3I1SE"> template<class <code class="sig-name descname">S</code>><br /><span class="target" id="class_imath_1_1_shear6_1af8bead91d048e1fe56a7d485066b6f14"></span><em class="property">inline</em> <em class="property">constexpr</em> <em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a><<a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a>> &<code class="sig-name descname">operator=</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="Vec3.html#_CPPv4I0EN5Imath4Vec3E" title="Imath::Vec3">Vec3</a><<a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6aSERK6Shear6I1TERK4Vec3I1SE" title="Imath::Shear6::operator=::S">S</a>> &<em>v</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4I0EN5Imath6Shear6aSERK6Shear6I1TERK4Vec3I1SE" title="Permalink to this definition">¶</a><br /></dt> <dd></dd></dl> </div> <div class="breathe-sectiondef docutils container"> <p class="breathe-sectiondef-title rubric">Public Static Functions</p> <dl class="cpp function"> <dt> <span class="target" id="class_imath_1_1_shear6_1a3ff823b7912e8db96c88599eb1ac2156"></span><code class="sig-name descname">static inline constexpr static unsigned int dimensions ()</code></dt> <dd><p>Return the number of dimensions, i.e. 6. </p> </dd></dl> </div> </dd></dl> <dl class="cpp function"> <dt id="_CPPv4I0EN5ImathlsERNSt7ostreamERNSt7ostreamERK6Shear6I1TE"> <span id="_CPPv3I0EN5ImathlsERNSt7ostreamERK6Shear6I1TE"></span><span id="_CPPv2I0EN5ImathlsERNSt7ostreamERK6Shear6I1TE"></span>template<class <code class="sig-name descname">T</code>><br /><span class="target" id="_imath_shear_8h_1a9db402dde5596e20a7caa840d86603ab"></span>std::ostream &<code class="sig-prename descclassname">Imath<code class="sig-prename descclassname">::</code></code><code class="sig-name descname">operator<<</code><span class="sig-paren">(</span>std::ostream &<em>s</em>, <em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a><<a class="reference internal" href="#_CPPv4I0EN5ImathlsERNSt7ostreamERNSt7ostreamERK6Shear6I1TE" title="Imath::operator<<::T">T</a>> &<em>h</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4I0EN5ImathlsERNSt7ostreamERNSt7ostreamERK6Shear6I1TE" title="Permalink to this definition">¶</a><br /></dt> <dd><p>Stream output, as “(xy xz yz yx zx zy)”. </p> </dd></dl> </div> <div class="clearer"></div> </div> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> <p class="logo"><a href="../index.html"> <img class="logo" src="../_static/imath-logo-blue.png" alt="Logo"/> </a></p> <h4>Previous topic</h4> <p class="topless"><a href="Rand48.html" title="previous chapter">Rand48</a></p> <h4>Next topic</h4> <p class="topless"><a href="Sphere3.html" title="next chapter">Sphere3</a></p> <div role="note" aria-label="source link"> <h3>This Page</h3> <ul class="this-page-menu"> <li><a href="../_sources/classes/Shear6.rst.txt" rel="nofollow">Show Source</a></li> </ul> </div> <div id="searchbox" style="display: none" role="search"> <h3 id="searchlabel">Quick search</h3> <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> <input type="text" name="q" aria-labelledby="searchlabel" /> <input type="submit" value="Go" /> </form> </div> </div> <script>$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> <li class="right" > <a href="Sphere3.html" title="Sphere3" >next</a> |</li> <li class="right" > <a href="Rand48.html" title="Rand48" >previous</a> |</li> <li class="nav-item nav-item-0"><a href="../index.html">Imath</a> »</li> <li class="nav-item nav-item-this"><a href="">Shear6</a></li> </ul> </div> <div class="footer" role="contentinfo"> © Copyright 2021, Contributors to the OpenEXR Project. Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.4.3. </div> </body> </html>