%PDF- %PDF-
| Direktori : /usr/share/doc/imath-devel/html/classes/ |
| Current File : //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 — 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> »</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 <Imath/ImathFrustum.h></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"><Imath/ImathFrustum.h></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><float> <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><double> <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<class <code class="sig-name descname">T</code>><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"><T></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>&<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> &<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>&<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><<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>> &<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><<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>> &<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><<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>> <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><<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>> <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><<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>> <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><<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>> <em>p</em>[6], <em class="property">const</em> <a class="reference internal" href="Matrix44.html#_CPPv4I0EN5Imath8Matrix44E" title="Imath::Matrix44">Matrix44</a><<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>> &<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><<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>> <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 <= left <= right <= 1 and -1 <= bottom <= top <= 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><<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>> <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><<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>>&<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><<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>> <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><<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>>&<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><<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>> <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><<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>>&<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><<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>> &<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><<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>> &<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><<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>> &<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><<a class="reference internal" href="#_CPPv4I0EN5Imath7FrustumE" title="Imath::Frustum::T">T</a>> &<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> »</li>
<li class="nav-item nav-item-this"><a href="">Frustum</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
© Copyright 2021, Contributors to the OpenEXR Project.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.4.3.
</div>
</body>
</html>