%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/thread-self/root/usr/share/doc/imath-devel/html/classes/
Upload File :
Create Path :
Current File : //proc/thread-self/root/usr/share/doc/imath-devel/html/classes/Frustum.html


<!doctype html>

<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Frustum &#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="Interval" href="Interval.html" />
    <link rel="prev" title="Euler" href="Euler.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="Interval.html" title="Interval"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="Euler.html" title="Euler"
             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="">Frustum</a></li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <div class="section" id="frustum">
<h1>Frustum<a class="headerlink" href="#frustum" title="Permalink to this headline">¶</a></h1>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1">#include &lt;Imath/ImathFrustum.h&gt;</span>
</pre></div>
</div>
<p>The <code class="docutils literal notranslate"><span class="pre">Frustum</span></code> class template represents a 3D viewing frustum, with
predefined typedefs of type <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/ImathFrustum.h&gt;</span><span class="cp"></span>

<span class="kt">void</span>
<span class="nf">frustum_example</span><span class="p">()</span>
<span class="p">{</span>
    <span class="kt">float</span> <span class="n">near</span> <span class="o">=</span> <span class="mf">1.7f</span><span class="p">;</span>
    <span class="kt">float</span> <span class="n">far</span> <span class="o">=</span> <span class="mf">567.0f</span><span class="p">;</span>
    <span class="kt">float</span> <span class="n">left</span> <span class="o">=</span> <span class="mf">-3.5f</span><span class="p">;</span>
    <span class="kt">float</span> <span class="n">right</span> <span class="o">=</span> <span class="mf">2.0f</span><span class="p">;</span>
    <span class="kt">float</span> <span class="n">top</span> <span class="o">=</span> <span class="mf">0.9f</span><span class="p">;</span>
    <span class="kt">float</span> <span class="n">bottom</span> <span class="o">=</span> <span class="mf">-1.3f</span><span class="p">;</span>

    <span class="n">Imath</span><span class="o">::</span><span class="n">Frustumf</span> <span class="n">frustum</span> <span class="p">(</span><span class="n">near</span><span class="p">,</span> <span class="n">far</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">top</span><span class="p">,</span> <span class="n">bottom</span><span class="p">,</span> <span class="nb">false</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="o">=</span> <span class="n">frustum</span><span class="p">.</span><span class="n">projectionMatrix</span><span class="p">();</span>

    <span class="n">Imath</span><span class="o">::</span><span class="n">V3f</span> <span class="n">p</span> <span class="p">(</span><span class="mf">1.0f</span><span class="p">,</span> <span class="mf">1.0f</span><span class="p">,</span> <span class="mf">1.0f</span><span class="p">);</span>
    <span class="n">Imath</span><span class="o">::</span><span class="n">V2f</span> <span class="n">s</span> <span class="o">=</span> <span class="n">frustum</span><span class="p">.</span><span class="n">projectPointToScreen</span> <span class="p">(</span><span class="n">p</span><span class="p">);</span>

    <span class="n">assert</span> <span class="p">(</span><span class="n">s</span><span class="p">.</span><span class="n">equalWithAbsError</span> <span class="p">(</span><span class="n">Imath</span><span class="o">::</span><span class="n">V2f</span> <span class="p">(</span><span class="mf">-0.345455f</span><span class="p">,</span> <span class="mf">-1.36364f</span><span class="p">),</span> <span class="mf">0.0001f</span><span class="p">));</span>
<span class="p">}</span>
</pre></div>
</div>
<dl class="cpp type">
<dt id="_CPPv4N5Imath8FrustumfE">
<span id="_CPPv3N5Imath8FrustumfE"></span><span id="_CPPv2N5Imath8FrustumfE"></span><span id="Imath::Frustumf"></span><span class="target" id="_imath_frustum_8h_1afd259171c90dba5e4400a45bb01822f7"></span><em class="property">typedef </em><a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum">Frustum</a>&lt;float&gt; <code class="sig-prename descclassname">Imath<code class="sig-prename descclassname">::</code></code><code class="sig-name descname">Frustumf</code><a class="headerlink" href="#_CPPv4N5Imath8FrustumfE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p><a class="reference internal" href="#class_imath_1_1_frustum"><span class="std std-ref">Frustum</span></a> of type float. </p>
</dd></dl>

<dl class="cpp type">
<dt id="_CPPv4N5Imath8FrustumdE">
<span id="_CPPv3N5Imath8FrustumdE"></span><span id="_CPPv2N5Imath8FrustumdE"></span><span id="Imath::Frustumd"></span><span class="target" id="_imath_frustum_8h_1a8b94584b660a677a4246a0b9925e38cf"></span><em class="property">typedef </em><a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum">Frustum</a>&lt;double&gt; <code class="sig-prename descclassname">Imath<code class="sig-prename descclassname">::</code></code><code class="sig-name descname">Frustumd</code><a class="headerlink" href="#_CPPv4N5Imath8FrustumdE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p><a class="reference internal" href="#class_imath_1_1_frustum"><span class="std std-ref">Frustum</span></a> of type double. </p>
</dd></dl>

<dl class="cpp class">
<dt id="_CPPv4I0EN5Imath7FrustumE">
<span id="_CPPv3I0EN5Imath7FrustumE"></span><span id="_CPPv2I0EN5Imath7FrustumE"></span>template&lt;class <code class="sig-name descname">T</code>&gt;<br /><span class="target" id="class_imath_1_1_frustum"></span><em class="property">class </em><code class="sig-prename descclassname">Imath<code class="sig-prename descclassname">::</code></code><code class="sig-name descname">Frustum</code><a class="headerlink" href="#_CPPv4I0EN5Imath7FrustumE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Template class <code class="docutils literal notranslate"><a class="reference internal" href="#class_imath_1_1_frustum"><span class="std std-ref"><span class="pre">Frustum</span></span></a><span class="pre">&lt;T&gt;</span></code> </p>
<p>The frustum is always located with the eye point at the origin facing down -Z. This makes the <a class="reference internal" href="#class_imath_1_1_frustum"><span class="std std-ref">Frustum</span></a> class compatable with OpenGL (or anything that assumes a camera looks down -Z, hence with a right-handed coordinate system) but not with RenderMan which assumes the camera looks down +Z. Additional functions are provided for conversion from and from various camera coordinate spaces.</p>
<p>nearPlane/farPlane: near/far are keywords used by Microsoft’s compiler, so we use nearPlane/farPlane instead to avoid issues. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Constructors and Assignment</p>
<dl class="cpp function">
<dt id="_CPPv4N5Imath7Frustum7FrustumEv">
<span id="_CPPv3N5Imath7Frustum7FrustumEv"></span><span id="_CPPv2N5Imath7Frustum7FrustumEv"></span><span id="Imath::Frustum::FrustumCE"></span><span class="target" id="class_imath_1_1_frustum_1a09b90cf2ae96cf6717704ad9a8b7a31c"></span><em class="property">inline</em> <em class="property">constexpr</em> <code class="sig-name descname">Frustum</code><span class="sig-paren">(</span><span class="sig-paren">)</span> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4N5Imath7Frustum7FrustumEv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Initialize with default values: near=0.1, far=1000.0, left=-1.0, right=1.0, top=1.0, bottom=-1.0, ortho=false. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4N5Imath7Frustum7FrustumERK7Frustum">
<span id="_CPPv3N5Imath7Frustum7FrustumERK7Frustum"></span><span id="_CPPv2N5Imath7Frustum7FrustumERK7Frustum"></span><span id="Imath::Frustum::Frustum__FrustumCRCE"></span><span class="target" id="class_imath_1_1_frustum_1af74b9b27d6fbbbfa4dc88de8313f9704"></span><em class="property">inline</em> <em class="property">constexpr</em> <code class="sig-name descname">Frustum</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="#_CPPv4N5Imath7Frustum7FrustumERK7Frustum" title="Imath::Frustum::Frustum">Frustum</a>&amp;<span class="sig-paren">)</span> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4N5Imath7Frustum7FrustumERK7Frustum" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Copy constructor. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4N5Imath7Frustum7FrustumE1T1T1T1T1T1Tb">
<span id="_CPPv3N5Imath7Frustum7FrustumE1T1T1T1T1T1Tb"></span><span id="_CPPv2N5Imath7Frustum7FrustumE1T1T1T1T1T1Tb"></span><span id="Imath::Frustum::Frustum__T.T.T.T.T.T.bCE"></span><span class="target" id="class_imath_1_1_frustum_1a8458379556681a684466991cce3bdbb7"></span><em class="property">inline</em> <em class="property">constexpr</em> <code class="sig-name descname">Frustum</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>nearPlane</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>farPlane</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>left</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>right</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>top</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>bottom</em>, bool <em>ortho</em> = false<span class="sig-paren">)</span> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4N5Imath7Frustum7FrustumE1T1T1T1T1T1Tb" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Initialize to specific values. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4N5Imath7Frustum7FrustumE1T1T1T1T1T">
<span id="_CPPv3N5Imath7Frustum7FrustumE1T1T1T1T1T"></span><span id="_CPPv2N5Imath7Frustum7FrustumE1T1T1T1T1T"></span><span id="Imath::Frustum::Frustum__T.T.T.T.TCE"></span><span class="target" id="class_imath_1_1_frustum_1abe53ae5ffc6464ddf1daa905e82cdef7"></span><em class="property">inline</em> <em class="property">constexpr</em> <code class="sig-name descname">Frustum</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>nearPlane</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>farPlane</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>fovx</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>fovy</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>aspect</em><span class="sig-paren">)</span> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4N5Imath7Frustum7FrustumE1T1T1T1T1T" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Initialize with fov and aspect. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4N5Imath7FrustumD0Ev">
<span id="_CPPv3N5Imath7FrustumD0Ev"></span><span id="_CPPv2N5Imath7FrustumD0Ev"></span><span id="Imath::Frustum::~Frustum"></span><span class="target" id="class_imath_1_1_frustum_1a96d221e09f91e526433f6c662877ecc3"></span><em class="property">virtual</em> <code class="sig-name descname">~Frustum</code><span class="sig-paren">(</span><span class="sig-paren">)</span> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4N5Imath7FrustumD0Ev" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Destructor. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4N5Imath7FrustumaSERK7Frustum">
<span id="_CPPv3N5Imath7FrustumaSERK7Frustum"></span><span id="_CPPv2N5Imath7FrustumaSERK7Frustum"></span><span id="Imath::Frustum::assign-operator__FrustumCRCE"></span><span class="target" id="class_imath_1_1_frustum_1a60d71a67bfecf05d881caa1581a3d82e"></span><em class="property">inline</em> <em class="property">constexpr</em> <em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum">Frustum</a> &amp;<code class="sig-name descname">operator=</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum">Frustum</a>&amp;<span class="sig-paren">)</span> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4N5Imath7FrustumaSERK7Frustum" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Component-wise assignment. </p>
</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Comparison</p>
<dl class="cpp function">
<dt id="_CPPv4NK5Imath7FrustumeqERK7FrustumI1TE">
<span id="_CPPv3NK5Imath7FrustumeqERK7FrustumI1TE"></span><span id="_CPPv2NK5Imath7FrustumeqERK7FrustumI1TE"></span><span id="Imath::Frustum::eq-operator__Frustum:T:CRCCE"></span><span class="target" id="class_imath_1_1_frustum_1a4ccd4784a1873104895713f83cb08bf0"></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="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum">Frustum</a>&lt;<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>&gt; &amp;<em>src</em><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7FrustumeqERK7FrustumI1TE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Equality. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7FrustumneERK7FrustumI1TE">
<span id="_CPPv3NK5Imath7FrustumneERK7FrustumI1TE"></span><span id="_CPPv2NK5Imath7FrustumneERK7FrustumI1TE"></span><span id="Imath::Frustum::neq-operator__Frustum:T:CRCCE"></span><span class="target" id="class_imath_1_1_frustum_1a455e23ecf8671f3c43894cda54adefdd"></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="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum">Frustum</a>&lt;<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>&gt; &amp;<em>src</em><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7FrustumneERK7FrustumI1TE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Inequality. </p>
</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Query</p>
<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum12orthographicEv">
<span id="_CPPv3NK5Imath7Frustum12orthographicEv"></span><span id="_CPPv2NK5Imath7Frustum12orthographicEv"></span><span id="Imath::Frustum::orthographicCCE"></span><span class="target" id="class_imath_1_1_frustum_1aee4152d110c6364af6759e65888dbc71"></span><em class="property">inline</em> <em class="property">constexpr</em> bool <code class="sig-name descname">orthographic</code><span class="sig-paren">(</span><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum12orthographicEv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Return true if the frustum is orthographic, false if perspective. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum9nearPlaneEv">
<span id="_CPPv3NK5Imath7Frustum9nearPlaneEv"></span><span id="_CPPv2NK5Imath7Frustum9nearPlaneEv"></span><span id="Imath::Frustum::nearPlaneCCE"></span><span class="target" id="class_imath_1_1_frustum_1af4c02c1a72cb5e282334c358f715283c"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <code class="sig-name descname">nearPlane</code><span class="sig-paren">(</span><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum9nearPlaneEv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Return the near clipping plane. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum6hitherEv">
<span id="_CPPv3NK5Imath7Frustum6hitherEv"></span><span id="_CPPv2NK5Imath7Frustum6hitherEv"></span><span id="Imath::Frustum::hitherCCE"></span><span class="target" id="class_imath_1_1_frustum_1a82ca31733b38a470e944947b21ad975e"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <code class="sig-name descname">hither</code><span class="sig-paren">(</span><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum6hitherEv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Return the near clipping plane. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum8farPlaneEv">
<span id="_CPPv3NK5Imath7Frustum8farPlaneEv"></span><span id="_CPPv2NK5Imath7Frustum8farPlaneEv"></span><span id="Imath::Frustum::farPlaneCCE"></span><span class="target" id="class_imath_1_1_frustum_1ad3627096cb45cba9706a0cb57927b923"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <code class="sig-name descname">farPlane</code><span class="sig-paren">(</span><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum8farPlaneEv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Return the far clipping plane. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum3yonEv">
<span id="_CPPv3NK5Imath7Frustum3yonEv"></span><span id="_CPPv2NK5Imath7Frustum3yonEv"></span><span id="Imath::Frustum::yonCCE"></span><span class="target" id="class_imath_1_1_frustum_1a7a188537f7a33855a246f431290a6e0b"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <code class="sig-name descname">yon</code><span class="sig-paren">(</span><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum3yonEv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Return the far clipping plane. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum4leftEv">
<span id="_CPPv3NK5Imath7Frustum4leftEv"></span><span id="_CPPv2NK5Imath7Frustum4leftEv"></span><span id="Imath::Frustum::leftCCE"></span><span class="target" id="class_imath_1_1_frustum_1ae253359d47fe734ab8f7872a2185a220"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <code class="sig-name descname">left</code><span class="sig-paren">(</span><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum4leftEv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Return the left of the frustum. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum5rightEv">
<span id="_CPPv3NK5Imath7Frustum5rightEv"></span><span id="_CPPv2NK5Imath7Frustum5rightEv"></span><span id="Imath::Frustum::rightCCE"></span><span class="target" id="class_imath_1_1_frustum_1aa5f04e3cd6bf47e1f47fdbb458d5ec35"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <code class="sig-name descname">right</code><span class="sig-paren">(</span><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum5rightEv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Return the right of the frustum. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum6bottomEv">
<span id="_CPPv3NK5Imath7Frustum6bottomEv"></span><span id="_CPPv2NK5Imath7Frustum6bottomEv"></span><span id="Imath::Frustum::bottomCCE"></span><span class="target" id="class_imath_1_1_frustum_1af89ae27d3d72b121764c0ab4a9908208"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <code class="sig-name descname">bottom</code><span class="sig-paren">(</span><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum6bottomEv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Return the bottom of the frustum. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum3topEv">
<span id="_CPPv3NK5Imath7Frustum3topEv"></span><span id="_CPPv2NK5Imath7Frustum3topEv"></span><span id="Imath::Frustum::topCCE"></span><span class="target" id="class_imath_1_1_frustum_1a4b6c13f14054ff5b47aeee7fa04a2a22"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <code class="sig-name descname">top</code><span class="sig-paren">(</span><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum3topEv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Return the top of the frustum. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum4fovxEv">
<span id="_CPPv3NK5Imath7Frustum4fovxEv"></span><span id="_CPPv2NK5Imath7Frustum4fovxEv"></span><span id="Imath::Frustum::fovxCCE"></span><span class="target" id="class_imath_1_1_frustum_1a47fbff8f25dde14183da2e8e03eafdc9"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <code class="sig-name descname">fovx</code><span class="sig-paren">(</span><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum4fovxEv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Return the field of view in X. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum4fovyEv">
<span id="_CPPv3NK5Imath7Frustum4fovyEv"></span><span id="_CPPv2NK5Imath7Frustum4fovyEv"></span><span id="Imath::Frustum::fovyCCE"></span><span class="target" id="class_imath_1_1_frustum_1a669a6fd9de3314b51ce149c666c0a310"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <code class="sig-name descname">fovy</code><span class="sig-paren">(</span><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum4fovyEv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Return the field of view in Y. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum6aspectEv">
<span id="_CPPv3NK5Imath7Frustum6aspectEv"></span><span id="_CPPv2NK5Imath7Frustum6aspectEv"></span><span id="Imath::Frustum::aspectCCE"></span><span class="target" id="class_imath_1_1_frustum_1a96926a17d79276110a24afbc34c8dd69"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <code class="sig-name descname">aspect</code><span class="sig-paren">(</span><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum6aspectEv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Return the aspect ratio. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum9aspectExcEv">
<span id="_CPPv3NK5Imath7Frustum9aspectExcEv"></span><span id="_CPPv2NK5Imath7Frustum9aspectExcEv"></span><span id="Imath::Frustum::aspectExcCCE"></span><span class="target" id="class_imath_1_1_frustum_1a4abde6344fdda0f932dc784ae86aab36"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <code class="sig-name descname">aspectExc</code><span class="sig-paren">(</span><span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum9aspectExcEv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Return the aspect ratio. </p>
<p>Throw an exception if the aspect ratio is undefined. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum16projectionMatrixEv">
<span id="_CPPv3NK5Imath7Frustum16projectionMatrixEv"></span><span id="_CPPv2NK5Imath7Frustum16projectionMatrixEv"></span><span id="Imath::Frustum::projectionMatrixCCE"></span><span class="target" id="class_imath_1_1_frustum_1a4a1525a71682fdce91a003cfee940d2b"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="Matrix44.html#_CPPv4I0EN5Imath8Matrix44E" title="Imath::Matrix44">Matrix44</a>&lt;<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>&gt; <code class="sig-name descname">projectionMatrix</code><span class="sig-paren">(</span><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum16projectionMatrixEv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Return the project matrix that the frustum defines. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum19projectionMatrixExcEv">
<span id="_CPPv3NK5Imath7Frustum19projectionMatrixExcEv"></span><span id="_CPPv2NK5Imath7Frustum19projectionMatrixExcEv"></span><span id="Imath::Frustum::projectionMatrixExcCCE"></span><span class="target" id="class_imath_1_1_frustum_1a45a8d9396e1cdd4493dd28b705c16c60"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="Matrix44.html#_CPPv4I0EN5Imath8Matrix44E" title="Imath::Matrix44">Matrix44</a>&lt;<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>&gt; <code class="sig-name descname">projectionMatrixExc</code><span class="sig-paren">(</span><span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum19projectionMatrixExcEv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Return the project matrix that the frustum defines. </p>
<p>Throw an exception if the frustum is degenerate. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum10degenerateEv">
<span id="_CPPv3NK5Imath7Frustum10degenerateEv"></span><span id="_CPPv2NK5Imath7Frustum10degenerateEv"></span><span id="Imath::Frustum::degenerateCCE"></span><span class="target" id="class_imath_1_1_frustum_1a588fe0855ba891601ba00b8c0f6a562b"></span><em class="property">inline</em> <em class="property">constexpr</em> bool <code class="sig-name descname">degenerate</code><span class="sig-paren">(</span><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum10degenerateEv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Return true if the frustum is degenerate. </p>
</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Set Value</p>
<dl class="cpp function">
<dt id="_CPPv4N5Imath7Frustum3setE1T1T1T1T1T1Tb">
<span id="_CPPv3N5Imath7Frustum3setE1T1T1T1T1T1Tb"></span><span id="_CPPv2N5Imath7Frustum3setE1T1T1T1T1T1Tb"></span><span id="Imath::Frustum::set__T.T.T.T.T.T.b"></span><span class="target" id="class_imath_1_1_frustum_1a2035e7c2445de23ed7c6444fb4e125b7"></span><em class="property">inline</em> void <code class="sig-name descname">set</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>nearPlane</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>farPlane</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>left</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>right</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>top</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>bottom</em>, bool <em>ortho</em> = false<span class="sig-paren">)</span> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4N5Imath7Frustum3setE1T1T1T1T1T1Tb" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set functions change the entire state of the <a class="reference internal" href="#class_imath_1_1_frustum"><span class="std std-ref">Frustum</span></a>. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4N5Imath7Frustum3setE1T1T1T1T1T">
<span id="_CPPv3N5Imath7Frustum3setE1T1T1T1T1T"></span><span id="_CPPv2N5Imath7Frustum3setE1T1T1T1T1T"></span><span id="Imath::Frustum::set__T.T.T.T.T"></span><span class="target" id="class_imath_1_1_frustum_1a9f4298f628ceb8a543a1ab92120fd529"></span><em class="property">inline</em> void <code class="sig-name descname">set</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>nearPlane</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>farPlane</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>fovx</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>fovy</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>aspect</em><span class="sig-paren">)</span> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4N5Imath7Frustum3setE1T1T1T1T1T" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set functions change the entire state of the <a class="reference internal" href="#class_imath_1_1_frustum"><span class="std std-ref">Frustum</span></a> using field of view and aspect ratio. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4N5Imath7Frustum6setExcE1T1T1T1T1T">
<span id="_CPPv3N5Imath7Frustum6setExcE1T1T1T1T1T"></span><span id="_CPPv2N5Imath7Frustum6setExcE1T1T1T1T1T"></span><span id="Imath::Frustum::setExc__T.T.T.T.T"></span><span class="target" id="class_imath_1_1_frustum_1ae2ba884ffef080fb8f4030c65438afa6"></span><em class="property">inline</em> void <code class="sig-name descname">setExc</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>nearPlane</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>farPlane</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>fovx</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>fovy</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>aspect</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5Imath7Frustum6setExcE1T1T1T1T1T" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set functions change the entire state of the <a class="reference internal" href="#class_imath_1_1_frustum"><span class="std std-ref">Frustum</span></a> using field of view and aspect ratio. </p>
<p>Throw an exception if <code class="docutils literal notranslate"><span class="pre">fovx</span></code> and/or <code class="docutils literal notranslate"><span class="pre">fovy</span></code> are invalid. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4N5Imath7Frustum16modifyNearAndFarE1T1T">
<span id="_CPPv3N5Imath7Frustum16modifyNearAndFarE1T1T"></span><span id="_CPPv2N5Imath7Frustum16modifyNearAndFarE1T1T"></span><span id="Imath::Frustum::modifyNearAndFar__T.T"></span><span class="target" id="class_imath_1_1_frustum_1adfdcb3afc24aa4afbaa18428c31d3463"></span><em class="property">inline</em> void <code class="sig-name descname">modifyNearAndFar</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>nearPlane</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>farPlane</em><span class="sig-paren">)</span> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4N5Imath7Frustum16modifyNearAndFarE1T1T" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set the near and far clipping planes. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4N5Imath7Frustum15setOrthographicEb">
<span id="_CPPv3N5Imath7Frustum15setOrthographicEb"></span><span id="_CPPv2N5Imath7Frustum15setOrthographicEb"></span><span id="Imath::Frustum::setOrthographic__b"></span><span class="target" id="class_imath_1_1_frustum_1ace0b32bd29e882687a13b29a1f3463af"></span><em class="property">inline</em> void <code class="sig-name descname">setOrthographic</code><span class="sig-paren">(</span>bool<span class="sig-paren">)</span> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4N5Imath7Frustum15setOrthographicEb" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set the ortographic state. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum6planesEAL6E_6Plane3I1TE">
<span id="_CPPv3NK5Imath7Frustum6planesEAL6E_6Plane3I1TE"></span><span id="_CPPv2NK5Imath7Frustum6planesEA6_6Plane3I1TE"></span><span id="Imath::Frustum::planes__Plane3:T:AC"></span><span class="target" id="class_imath_1_1_frustum_1afeb2ebd323b81797a3a84cb482933a2d"></span>void <code class="sig-name descname">planes</code><span class="sig-paren">(</span><a class="reference internal" href="Plane3.html#_CPPv4I0EN5Imath6Plane3E" title="Imath::Plane3">Plane3</a>&lt;<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>&gt; <em>p</em>[6]<span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum6planesEAL6E_6Plane3I1TE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set the planes in p to be the six bounding planes of the frustum, in the following order: top, right, bottom, left, near, far. </p>
<p>Note that the planes have normals that point out of the frustum. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum6planesEAL6E_6Plane3I1TERK8Matrix44I1TE">
<span id="_CPPv3NK5Imath7Frustum6planesEAL6E_6Plane3I1TERK8Matrix44I1TE"></span><span id="_CPPv2NK5Imath7Frustum6planesEA6_6Plane3I1TERK8Matrix44I1TE"></span><span id="Imath::Frustum::planes__Plane3:T:A.Matrix44:T:CRC"></span><span class="target" id="class_imath_1_1_frustum_1a251f97f3baa4b901dfb43887c40a4540"></span>void <code class="sig-name descname">planes</code><span class="sig-paren">(</span><a class="reference internal" href="Plane3.html#_CPPv4I0EN5Imath6Plane3E" title="Imath::Plane3">Plane3</a>&lt;<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>&gt; <em>p</em>[6], <em class="property">const</em> <a class="reference internal" href="Matrix44.html#_CPPv4I0EN5Imath8Matrix44E" title="Imath::Matrix44">Matrix44</a>&lt;<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>&gt; &amp;<em>M</em><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum6planesEAL6E_6Plane3I1TERK8Matrix44I1TE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set the planes in p to be the six bounding planes of the frustum, in the following order: top, right, bottom, left, near, far. </p>
<p>Note that the planes have normals that point out of the frustum. Apply the given matrix to transform the frustum before setting the planes. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum6windowE1T1T1T1T">
<span id="_CPPv3NK5Imath7Frustum6windowE1T1T1T1T"></span><span id="_CPPv2NK5Imath7Frustum6windowE1T1T1T1T"></span><span id="Imath::Frustum::window__T.T.T.TCCE"></span><span class="target" id="class_imath_1_1_frustum_1aee7396efc1126351add5fdec953941ed"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum">Frustum</a>&lt;<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>&gt; <code class="sig-name descname">window</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>left</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>right</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>top</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>bottom</em><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum6windowE1T1T1T1T" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Takes a rectangle in the screen space (i.e., -1 &lt;= left &lt;= right &lt;= 1 and -1 &lt;= bottom &lt;= top &lt;= 1) of this <a class="reference internal" href="#class_imath_1_1_frustum"><span class="std std-ref">Frustum</span></a>, and returns a new <a class="reference internal" href="#class_imath_1_1_frustum"><span class="std std-ref">Frustum</span></a> whose near clipping-plane window is that rectangle in local space. </p>
</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric">Utility Methods</p>
<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum18projectScreenToRayERK4Vec2I1TE">
<span id="_CPPv3NK5Imath7Frustum18projectScreenToRayERK4Vec2I1TE"></span><span id="_CPPv2NK5Imath7Frustum18projectScreenToRayERK4Vec2I1TE"></span><span id="Imath::Frustum::projectScreenToRay__Vec2:T:CRCCE"></span><span class="target" id="class_imath_1_1_frustum_1a61843dd452b68b8ce56da2065b944f4f"></span><em class="property">inline</em> <em class="property">constexpr</em> <a class="reference internal" href="Line3.html#_CPPv4I0EN5Imath5Line3E" title="Imath::Line3">Line3</a>&lt;<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>&gt; <code class="sig-name descname">projectScreenToRay</code><span class="sig-paren">(</span><em class="property">const</em> <a class="reference internal" href="Vec2.html#_CPPv4I0EN5Imath4Vec2E" title="Imath::Vec2">Vec2</a>&lt;<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>&gt;&amp;<span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum18projectScreenToRayERK4Vec2I1TE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Project a point in screen spaced to 3d ray. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum20projectPointToScreenERK4Vec3I1TE">
<span id="_CPPv3NK5Imath7Frustum20projectPointToScreenERK4Vec3I1TE"></span><span id="_CPPv2NK5Imath7Frustum20projectPointToScreenERK4Vec3I1TE"></span><span id="Imath::Frustum::projectPointToScreen__Vec3:T:CRCCE"></span><span class="target" id="class_imath_1_1_frustum_1a8c8ceebbe860da92cca26f90a26572a7"></span><em class="property">constexpr</em> <a class="reference internal" href="Vec2.html#_CPPv4I0EN5Imath4Vec2E" title="Imath::Vec2">Vec2</a>&lt;<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>&gt; <code class="sig-name descname">projectPointToScreen</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="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>&gt;&amp;<span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum20projectPointToScreenERK4Vec3I1TE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Project a 3D point into screen coordinates. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum23projectPointToScreenExcERK4Vec3I1TE">
<span id="_CPPv3NK5Imath7Frustum23projectPointToScreenExcERK4Vec3I1TE"></span><span id="_CPPv2NK5Imath7Frustum23projectPointToScreenExcERK4Vec3I1TE"></span><span id="Imath::Frustum::projectPointToScreenExc__Vec3:T:CRCCE"></span><span class="target" id="class_imath_1_1_frustum_1aa046981ec3d80ba3b6046e3446939836"></span><em class="property">constexpr</em> <a class="reference internal" href="Vec2.html#_CPPv4I0EN5Imath4Vec2E" title="Imath::Vec2">Vec2</a>&lt;<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>&gt; <code class="sig-name descname">projectPointToScreenExc</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="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>&gt;&amp;<span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum23projectPointToScreenExcERK4Vec3I1TE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Project a 3D point into screen coordinates. </p>
<p>Throw an exception if the point cannot be projected. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum8ZToDepthElll">
<span id="_CPPv3NK5Imath7Frustum8ZToDepthElll"></span><span id="_CPPv2NK5Imath7Frustum8ZToDepthElll"></span><span id="Imath::Frustum::ZToDepth__l.l.lCCE"></span><span class="target" id="class_imath_1_1_frustum_1a4775d112f65c172ce89fafede46c86fa"></span><em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <code class="sig-name descname">ZToDepth</code><span class="sig-paren">(</span>long <em>zval</em>, long <em>min</em>, long <em>max</em><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum8ZToDepthElll" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Map a z value to its depth in the frustum. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum11ZToDepthExcElll">
<span id="_CPPv3NK5Imath7Frustum11ZToDepthExcElll"></span><span id="_CPPv2NK5Imath7Frustum11ZToDepthExcElll"></span><span id="Imath::Frustum::ZToDepthExc__l.l.lCCE"></span><span class="target" id="class_imath_1_1_frustum_1af8f05e0bd0e83f051b936d5cd843f113"></span><em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <code class="sig-name descname">ZToDepthExc</code><span class="sig-paren">(</span>long <em>zval</em>, long <em>min</em>, long <em>max</em><span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum11ZToDepthExcElll" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Map a z value to its depth in the frustum. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum18normalizedZToDepthE1T">
<span id="_CPPv3NK5Imath7Frustum18normalizedZToDepthE1T"></span><span id="_CPPv2NK5Imath7Frustum18normalizedZToDepthE1T"></span><span id="Imath::Frustum::normalizedZToDepth__TCCE"></span><span class="target" id="class_imath_1_1_frustum_1ae62272e1af8357c23ddc6a5672bef919"></span><em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <code class="sig-name descname">normalizedZToDepth</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>zval</em><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum18normalizedZToDepthE1T" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Map a normalized z value to its depth in the frustum. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum21normalizedZToDepthExcE1T">
<span id="_CPPv3NK5Imath7Frustum21normalizedZToDepthExcE1T"></span><span id="_CPPv2NK5Imath7Frustum21normalizedZToDepthExcE1T"></span><span id="Imath::Frustum::normalizedZToDepthExc__TCCE"></span><span class="target" id="class_imath_1_1_frustum_1a53a984e7f36d8a29f57f17816323bf44"></span><em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <code class="sig-name descname">normalizedZToDepthExc</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>zval</em><span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum21normalizedZToDepthExcE1T" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Map a normalized z value to its depth in the frustum. </p>
<p>Throw an exception on error. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum8DepthToZE1Tll">
<span id="_CPPv3NK5Imath7Frustum8DepthToZE1Tll"></span><span id="_CPPv2NK5Imath7Frustum8DepthToZE1Tll"></span><span id="Imath::Frustum::DepthToZ__T.l.lCCE"></span><span class="target" id="class_imath_1_1_frustum_1a7c91a876d1ad477b07653ff945d11c8e"></span><em class="property">constexpr</em> long <code class="sig-name descname">DepthToZ</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>depth</em>, long <em>zmin</em>, long <em>zmax</em><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum8DepthToZE1Tll" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Map depth to z value. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum11DepthToZExcE1Tll">
<span id="_CPPv3NK5Imath7Frustum11DepthToZExcE1Tll"></span><span id="_CPPv2NK5Imath7Frustum11DepthToZExcE1Tll"></span><span id="Imath::Frustum::DepthToZExc__T.l.lCCE"></span><span class="target" id="class_imath_1_1_frustum_1abce2a698e896795a2bde4e7ff295835b"></span><em class="property">constexpr</em> long <code class="sig-name descname">DepthToZExc</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>depth</em>, long <em>zmin</em>, long <em>zmax</em><span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum11DepthToZExcE1Tll" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Map depth to z value. Throw an exception on error. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum11worldRadiusERK4Vec3I1TE1T">
<span id="_CPPv3NK5Imath7Frustum11worldRadiusERK4Vec3I1TE1T"></span><span id="_CPPv2NK5Imath7Frustum11worldRadiusERK4Vec3I1TE1T"></span><span id="Imath::Frustum::worldRadius__Vec3:T:CR.TCCE"></span><span class="target" id="class_imath_1_1_frustum_1a7205f00763b5b1dc505e3da69b62aba8"></span><em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <code class="sig-name descname">worldRadius</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="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>&gt; &amp;<em>p</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>radius</em><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum11worldRadiusERK4Vec3I1TE1T" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Compute worldRadius. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum14worldRadiusExcERK4Vec3I1TE1T">
<span id="_CPPv3NK5Imath7Frustum14worldRadiusExcERK4Vec3I1TE1T"></span><span id="_CPPv2NK5Imath7Frustum14worldRadiusExcERK4Vec3I1TE1T"></span><span id="Imath::Frustum::worldRadiusExc__Vec3:T:CR.TCCE"></span><span class="target" id="class_imath_1_1_frustum_1aac568dd0ed460f098e4de0a61a0f60b9"></span><em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <code class="sig-name descname">worldRadiusExc</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="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>&gt; &amp;<em>p</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>radius</em><span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum14worldRadiusExcERK4Vec3I1TE1T" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Compute worldRadius. Throw an exception on error. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum12screenRadiusERK4Vec3I1TE1T">
<span id="_CPPv3NK5Imath7Frustum12screenRadiusERK4Vec3I1TE1T"></span><span id="_CPPv2NK5Imath7Frustum12screenRadiusERK4Vec3I1TE1T"></span><span id="Imath::Frustum::screenRadius__Vec3:T:CR.TCCE"></span><span class="target" id="class_imath_1_1_frustum_1aecb6e313f6502211ed05338c8748a747"></span><em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <code class="sig-name descname">screenRadius</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="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>&gt; &amp;<em>p</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>radius</em><span class="sig-paren">)</span> <em class="property">const</em> <em class="property">noexcept</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum12screenRadiusERK4Vec3I1TE1T" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Compute screen radius. </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv4NK5Imath7Frustum15screenRadiusExcERK4Vec3I1TE1T">
<span id="_CPPv3NK5Imath7Frustum15screenRadiusExcERK4Vec3I1TE1T"></span><span id="_CPPv2NK5Imath7Frustum15screenRadiusExcERK4Vec3I1TE1T"></span><span id="Imath::Frustum::screenRadiusExc__Vec3:T:CR.TCCE"></span><span class="target" id="class_imath_1_1_frustum_1a6b7472d2d436cb8d979774fd3c31a8f9"></span><em class="property">constexpr</em> <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <code class="sig-name descname">screenRadiusExc</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="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>&gt; &amp;<em>p</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a> <em>radius</em><span class="sig-paren">)</span> <em class="property">const</em><a class="headerlink" href="#_CPPv4NK5Imath7Frustum15screenRadiusExcERK4Vec3I1TE1T" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Compute screen radius. Throw an exception on error. </p>
</dd></dl>

</div>
</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="Euler.html"
                        title="previous chapter">Euler</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="Interval.html"
                        title="next chapter">Interval</a></p>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/classes/Frustum.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="Interval.html" title="Interval"
             >next</a> |</li>
        <li class="right" >
          <a href="Euler.html" title="Euler"
             >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="">Frustum</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