%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/share/doc/imath-devel/html/classes/
Upload File :
Create Path :
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 &#8212; 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> &#187;</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 &lt;Imath/ImathShear.h&gt;</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">&lt;Imath/ImathShear.h&gt;</span><span class="cp"></span>
<span class="cp">#include</span> <span class="cpf">&lt;Imath/ImathMatrix.h&gt;</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>&lt;float&gt; <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&lt;class <code class="sig-name descname">T</code>&gt;<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&#39; |   |  1  YX  ZX  0 |   | X |
| Y&#39; |   | XY   1  ZY  0 |   | Y |
| Z&#39; | = | XZ  YZ   1  0 | = | Z |
| 1  |   |  0   0   0  1 |   | 1 |

X&#39; =      X + YX * Y + ZX * Z
Y&#39; = 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">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">imath</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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 &quot;extra&quot; shear value</span>
<span class="gp">&gt;&gt;&gt; </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">&gt;&gt;&gt; </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">&gt;&gt;&gt; </span><span class="n">s</span>
<span class="go">V3f(1.41421354, 0.707106769, 1)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">h</span>
<span class="go">V3f(1, 0, 0)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">r</span>
<span class="go">V3f(0, -0, 0.785398185)</span>
<span class="gp">&gt;&gt;&gt; </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>&lt;<a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a>&gt; &amp;<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&lt;class <code class="sig-name descname">S</code>&gt;<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>&lt;<a class="reference internal" href="#_CPPv4I0EN5Imath6Shear66Shear6ERK4Vec3I1SE" title="Imath::Shear6::Shear6::S">S</a>&gt; &amp;<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> &amp;<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&lt;class <code class="sig-name descname">S</code>&gt;<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>&lt;<a class="reference internal" href="#_CPPv4I0EN5Imath6Shear66Shear6ERK6Shear6I1SE" title="Imath::Shear6::Shear6::S">S</a>&gt; &amp;<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> &amp;<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> &amp;<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&lt;class <code class="sig-name descname">S</code>&gt;<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> &amp;<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>&lt;<a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6aSERK6Shear6RK4Vec3I1SE" title="Imath::Shear6::operator=::S">S</a>&gt; &amp;<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&lt;class <code class="sig-name descname">S</code>&gt;<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&lt;class <code class="sig-name descname">S</code>&gt;<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>&lt;<a class="reference internal" href="#_CPPv4I0EN5Imath6Shear68setValueEvRK6Shear6I1SE" title="Imath::Shear6::setValue::S">S</a>&gt; &amp;<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&lt;class <code class="sig-name descname">S</code>&gt;<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> &amp;<em>XY</em>, <a class="reference internal" href="#_CPPv4I0ENK5Imath6Shear68getValueEvR1SR1SR1SR1SR1SR1S" title="Imath::Shear6::getValue::S">S</a> &amp;<em>XZ</em>, <a class="reference internal" href="#_CPPv4I0ENK5Imath6Shear68getValueEvR1SR1SR1SR1SR1SR1S" title="Imath::Shear6::getValue::S">S</a> &amp;<em>YZ</em>, <a class="reference internal" href="#_CPPv4I0ENK5Imath6Shear68getValueEvR1SR1SR1SR1SR1SR1S" title="Imath::Shear6::getValue::S">S</a> &amp;<em>YX</em>, <a class="reference internal" href="#_CPPv4I0ENK5Imath6Shear68getValueEvR1SR1SR1SR1SR1SR1S" title="Imath::Shear6::getValue::S">S</a> &amp;<em>ZX</em>, <a class="reference internal" href="#_CPPv4I0ENK5Imath6Shear68getValueEvR1SR1SR1SR1SR1SR1S" title="Imath::Shear6::getValue::S">S</a> &amp;<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&lt;class <code class="sig-name descname">S</code>&gt;<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>&lt;<a class="reference internal" href="#_CPPv4I0ENK5Imath6Shear68getValueEvR6Shear6I1SE" title="Imath::Shear6::getValue::S">S</a>&gt; &amp;<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&lt;class <code class="sig-name descname">S</code>&gt;<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>&lt;<a class="reference internal" href="#_CPPv4I0ENK5Imath6Shear6eqEbRK6Shear6I1SE" title="Imath::Shear6::operator==::S">S</a>&gt; &amp;<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&lt;class <code class="sig-name descname">S</code>&gt;<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>&lt;<a class="reference internal" href="#_CPPv4I0ENK5Imath6Shear6neEbRK6Shear6I1SE" title="Imath::Shear6::operator!=::S">S</a>&gt; &amp;<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>&lt;<a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a>&gt; &amp;<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]) &lt;= 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>&lt;<a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a>&gt; &amp;<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]) &lt;= 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> &amp;<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> &amp;<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> &amp;<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> &amp;<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> &amp;<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> &amp;<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> &amp;<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> &amp;<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> &amp;<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> &amp;<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> &amp;<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> &amp;<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> &amp;<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> &amp;<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> &amp;<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> &amp;<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> &amp;<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&lt;class <code class="sig-name descname">S</code>&gt;<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>&lt;<a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6::T">T</a>&gt; &amp;<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>&lt;<a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6aSERK6Shear6I1TERK4Vec3I1SE" title="Imath::Shear6::operator=::S">S</a>&gt; &amp;<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&lt;class <code class="sig-name descname">T</code>&gt;<br /><span class="target" id="_imath_shear_8h_1a9db402dde5596e20a7caa840d86603ab"></span>std::ostream &amp;<code class="sig-prename descclassname">Imath<code class="sig-prename descclassname">::</code></code><code class="sig-name descname">operator&lt;&lt;</code><span class="sig-paren">(</span>std::ostream &amp;<em>s</em>, <em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath6Shear6E" title="Imath::Shear6">Shear6</a>&lt;<a class="reference internal" href="#_CPPv4I0EN5ImathlsERNSt7ostreamERNSt7ostreamERK6Shear6I1TE" title="Imath::operator&lt;&lt;::T">T</a>&gt; &amp;<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> &#187;</li>
        <li class="nav-item nav-item-this"><a href="">Shear6</a></li> 
      </ul>
    </div>
    <div class="footer" role="contentinfo">
        &#169; Copyright 2021, Contributors to the OpenEXR Project.
      Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.4.3.
    </div>
  </body>
</html>

Zerion Mini Shell 1.0