794 lines
56 KiB
HTML
794 lines
56 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
|
<meta name="generator" content="Doxygen 1.9.4"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>DNA Calib: tdm::projective Namespace Reference</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr id="projectrow">
|
|
<td id="projectalign">
|
|
<div id="projectname">DNA Calib<span id="projectnumber"> 1.1</span>
|
|
</div>
|
|
<div id="projectbrief">Project brief</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.9.4 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
/* @license-end */
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<iframe src="javascript:void(0)" frameborder="0"
|
|
name="MSearchResults" id="MSearchResults">
|
|
</iframe>
|
|
</div>
|
|
|
|
<div id="nav-path" class="navpath">
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="namespacetdm.html">tdm</a></li><li class="navelem"><a class="el" href="namespacetdm_1_1projective.html">projective</a></li> </ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#nested-classes">Classes</a> |
|
|
<a href="#func-members">Functions</a> </div>
|
|
<div class="headertitle"><div class="title">tdm::projective Namespace Reference</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
|
|
Classes</h2></td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structtdm_1_1projective_1_1axis__angle.html">axis_angle</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
|
Functions</h2></td></tr>
|
|
<tr class="memitem:a6d871452e6ba8e5af822c3d3f4573139"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
|
<tr class="memitem:a6d871452e6ba8e5af822c3d3f4573139"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacetdm.html#a3fe6100e4962363b1a4be245b13d527c">mat4</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacetdm_1_1projective.html#a6d871452e6ba8e5af822c3d3f4573139">rotate</a> (const <a class="el" href="namespacetdm.html#a0ee1135015dc380efab2a1f62e27d32c">vec3</a>< T > &axis, T radians, <a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aed">handedness</a> h=<a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aeda7c4f29407893c334a6cb7a87bf045c0d">handedness::right</a>)</td></tr>
|
|
<tr class="separator:a6d871452e6ba8e5af822c3d3f4573139"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a531b788392d682b3b5507feceeaba471"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
|
<tr class="memitem:a531b788392d682b3b5507feceeaba471"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacetdm.html#a3fe6100e4962363b1a4be245b13d527c">mat4</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacetdm_1_1projective.html#a531b788392d682b3b5507feceeaba471">rotate</a> (const <a class="el" href="namespacetdm.html#a3fe6100e4962363b1a4be245b13d527c">mat4</a>< T > &m, const <a class="el" href="namespacetdm.html#a0ee1135015dc380efab2a1f62e27d32c">vec3</a>< T > &axis, T radians, <a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aed">handedness</a> h=<a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aeda7c4f29407893c334a6cb7a87bf045c0d">handedness::right</a>)</td></tr>
|
|
<tr class="separator:a531b788392d682b3b5507feceeaba471"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a64b5932ac17185165bf65c2000cddfb4"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
|
<tr class="memitem:a64b5932ac17185165bf65c2000cddfb4"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacetdm.html#a3fe6100e4962363b1a4be245b13d527c">mat4</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacetdm_1_1projective.html#a64b5932ac17185165bf65c2000cddfb4">rotate</a> (T xRadians, T yRadians, T zRadians, <a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aed">handedness</a> h=<a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aeda7c4f29407893c334a6cb7a87bf045c0d">handedness::right</a>)</td></tr>
|
|
<tr class="separator:a64b5932ac17185165bf65c2000cddfb4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a734e16d0c46de4f6622e1c8a631bfa53"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
|
<tr class="memitem:a734e16d0c46de4f6622e1c8a631bfa53"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacetdm.html#a3fe6100e4962363b1a4be245b13d527c">mat4</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacetdm_1_1projective.html#a734e16d0c46de4f6622e1c8a631bfa53">rotate</a> (const <a class="el" href="namespacetdm.html#a3fe6100e4962363b1a4be245b13d527c">mat4</a>< T > &m, T xRadians, T yRadians, T zRadians, <a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aed">handedness</a> h=<a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aeda7c4f29407893c334a6cb7a87bf045c0d">handedness::right</a>)</td></tr>
|
|
<tr class="separator:a734e16d0c46de4f6622e1c8a631bfa53"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a55b0b5111d65a205801e520b83a91e4d"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
|
<tr class="memitem:a55b0b5111d65a205801e520b83a91e4d"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacetdm.html#a3fe6100e4962363b1a4be245b13d527c">mat4</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacetdm_1_1projective.html#a55b0b5111d65a205801e520b83a91e4d">rotate</a> (const <a class="el" href="namespacetdm.html#a0ee1135015dc380efab2a1f62e27d32c">vec3</a>< T > &radians, <a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aed">handedness</a> h=<a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aeda7c4f29407893c334a6cb7a87bf045c0d">handedness::right</a>)</td></tr>
|
|
<tr class="separator:a55b0b5111d65a205801e520b83a91e4d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:abac0d987f95650a5086a231364064fbb"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
|
<tr class="memitem:abac0d987f95650a5086a231364064fbb"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacetdm.html#a3fe6100e4962363b1a4be245b13d527c">mat4</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacetdm_1_1projective.html#abac0d987f95650a5086a231364064fbb">rotate</a> (const <a class="el" href="namespacetdm.html#a3fe6100e4962363b1a4be245b13d527c">mat4</a>< T > &m, const <a class="el" href="namespacetdm.html#a0ee1135015dc380efab2a1f62e27d32c">vec3</a>< T > &radians, <a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aed">handedness</a> h=<a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aeda7c4f29407893c334a6cb7a87bf045c0d">handedness::right</a>)</td></tr>
|
|
<tr class="separator:abac0d987f95650a5086a231364064fbb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3f30f4777ac8bdc4e0eb5c96ab634a58"><td class="memTemplParams" colspan="2">template<<a class="el" href="namespacetdm.html#a644d3de5f1ca2eaa628196afcfbadef4">dim_t</a> L, typename T > </td></tr>
|
|
<tr class="memitem:a3f30f4777ac8bdc4e0eb5c96ab634a58"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structtdm_1_1mat.html">mat</a>< L+1, L+1, T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacetdm_1_1projective.html#a3f30f4777ac8bdc4e0eb5c96ab634a58">scale</a> (const <a class="el" href="structtdm_1_1vec.html">vec</a>< L, T > &factors)</td></tr>
|
|
<tr class="separator:a3f30f4777ac8bdc4e0eb5c96ab634a58"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0f73dee532160054f7aeb723d3371162"><td class="memTemplParams" colspan="2">template<<a class="el" href="namespacetdm.html#a644d3de5f1ca2eaa628196afcfbadef4">dim_t</a> L, typename T > </td></tr>
|
|
<tr class="memitem:a0f73dee532160054f7aeb723d3371162"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structtdm_1_1mat.html">mat</a>< L+1, L+1, T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacetdm_1_1projective.html#a0f73dee532160054f7aeb723d3371162">scale</a> (const <a class="el" href="structtdm_1_1mat.html">mat</a>< L+1, L+1, T > &m, const <a class="el" href="structtdm_1_1vec.html">vec</a>< L, T > &factors)</td></tr>
|
|
<tr class="separator:a0f73dee532160054f7aeb723d3371162"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aa3af28aac1eb1d3b1b6d6e66fdc95b59"><td class="memTemplParams" colspan="2">template<<a class="el" href="namespacetdm.html#a644d3de5f1ca2eaa628196afcfbadef4">dim_t</a> L, typename T > </td></tr>
|
|
<tr class="memitem:aa3af28aac1eb1d3b1b6d6e66fdc95b59"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structtdm_1_1mat.html">mat</a>< L+1, L+1, T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacetdm_1_1projective.html#aa3af28aac1eb1d3b1b6d6e66fdc95b59">scale</a> (T factor)</td></tr>
|
|
<tr class="separator:aa3af28aac1eb1d3b1b6d6e66fdc95b59"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af07ccf333c2d31d6b28e2a854e4b758a"><td class="memTemplParams" colspan="2">template<<a class="el" href="namespacetdm.html#a644d3de5f1ca2eaa628196afcfbadef4">dim_t</a> L, typename T > </td></tr>
|
|
<tr class="memitem:af07ccf333c2d31d6b28e2a854e4b758a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structtdm_1_1mat.html">mat</a>< L, L, T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacetdm_1_1projective.html#af07ccf333c2d31d6b28e2a854e4b758a">scale</a> (const <a class="el" href="structtdm_1_1mat.html">mat</a>< L, L, T > &m, T factor)</td></tr>
|
|
<tr class="separator:af07ccf333c2d31d6b28e2a854e4b758a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:acebdfbfa65a7452ac8b81acd0b618eee"><td class="memTemplParams" colspan="2">template<<a class="el" href="namespacetdm.html#a644d3de5f1ca2eaa628196afcfbadef4">dim_t</a> L, typename T > </td></tr>
|
|
<tr class="memitem:acebdfbfa65a7452ac8b81acd0b618eee"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structtdm_1_1mat.html">mat</a>< L+1, L+1, T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacetdm_1_1projective.html#acebdfbfa65a7452ac8b81acd0b618eee">translate</a> (const <a class="el" href="structtdm_1_1vec.html">vec</a>< L, T > &position)</td></tr>
|
|
<tr class="separator:acebdfbfa65a7452ac8b81acd0b618eee"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac120cb33694cec606634642dc48019e9"><td class="memTemplParams" colspan="2">template<<a class="el" href="namespacetdm.html#a644d3de5f1ca2eaa628196afcfbadef4">dim_t</a> L, typename T > </td></tr>
|
|
<tr class="memitem:ac120cb33694cec606634642dc48019e9"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structtdm_1_1mat.html">mat</a>< L+1, L+1, T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacetdm_1_1projective.html#ac120cb33694cec606634642dc48019e9">translate</a> (const <a class="el" href="structtdm_1_1mat.html">mat</a>< L+1, L+1, T > &m, const <a class="el" href="structtdm_1_1vec.html">vec</a>< L, T > &position)</td></tr>
|
|
<tr class="separator:ac120cb33694cec606634642dc48019e9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab6b0c39e3a4f3435a1b3445dc0a93e9b"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
|
<tr class="memitem:ab6b0c39e3a4f3435a1b3445dc0a93e9b"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structtdm_1_1projective_1_1axis__angle.html">axis_angle</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacetdm_1_1projective.html#ab6b0c39e3a4f3435a1b3445dc0a93e9b">xyz2AxisAngle</a> (T xRadians, T yRadians, T zRadians, <a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aed">handedness</a> h=<a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aeda7c4f29407893c334a6cb7a87bf045c0d">handedness::right</a>)</td></tr>
|
|
<tr class="separator:ab6b0c39e3a4f3435a1b3445dc0a93e9b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a070fb9fdf44db8b854ade70147a8ce4c"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
|
|
<tr class="memitem:a070fb9fdf44db8b854ade70147a8ce4c"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structtdm_1_1projective_1_1axis__angle.html">axis_angle</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacetdm_1_1projective.html#a070fb9fdf44db8b854ade70147a8ce4c">xyz2AxisAngle</a> (const <a class="el" href="namespacetdm.html#a0ee1135015dc380efab2a1f62e27d32c">vec3</a>< T > &radians, <a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aed">handedness</a> h=<a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aeda7c4f29407893c334a6cb7a87bf045c0d">handedness::right</a>)</td></tr>
|
|
<tr class="separator:a070fb9fdf44db8b854ade70147a8ce4c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<h2 class="groupheader">Function Documentation</h2>
|
|
<a id="a531b788392d682b3b5507feceeaba471" name="a531b788392d682b3b5507feceeaba471"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a531b788392d682b3b5507feceeaba471">◆ </a></span>rotate() <span class="overload">[1/6]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="namespacetdm.html#a3fe6100e4962363b1a4be245b13d527c">mat4</a>< T > tdm::projective::rotate </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="namespacetdm.html#a3fe6100e4962363b1a4be245b13d527c">mat4</a>< T > & </td>
|
|
<td class="paramname"><em>m</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="namespacetdm.html#a0ee1135015dc380efab2a1f62e27d32c">vec3</a>< T > & </td>
|
|
<td class="paramname"><em>axis</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">T </td>
|
|
<td class="paramname"><em>radians</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aed">handedness</a> </td>
|
|
<td class="paramname"><em>h</em> = <code><a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aeda7c4f29407893c334a6cb7a87bf045c0d">handedness::right</a></code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<div class="fragment"><div class="line"><span class="lineno"> 77</span> {</div>
|
|
<div class="line"><span class="lineno"> 78</span> <span class="keywordflow">return</span> m * <a class="code hl_function" href="namespacetdm_1_1projective.html#abac0d987f95650a5086a231364064fbb">rotate</a>(axis, <a class="code hl_function" href="namespacetdm.html#a26fb6809e4f953161a41fe43c18465d9">radians</a>, h);</div>
|
|
<div class="line"><span class="lineno"> 79</span>}</div>
|
|
<div class="ttc" id="anamespacetdm_1_1projective_html_abac0d987f95650a5086a231364064fbb"><div class="ttname"><a href="namespacetdm_1_1projective.html#abac0d987f95650a5086a231364064fbb">tdm::projective::rotate</a></div><div class="ttdeci">mat4< T > rotate(const mat4< T > &m, const vec3< T > &radians, handedness h=handedness::right)</div><div class="ttdef"><b>Definition:</b> Transforms.h:118</div></div>
|
|
<div class="ttc" id="anamespacetdm_html_a26fb6809e4f953161a41fe43c18465d9"><div class="ttname"><a href="namespacetdm.html#a26fb6809e4f953161a41fe43c18465d9">tdm::radians</a></div><div class="ttdeci">std::enable_if< std::is_floating_point< T >::value, T >::type radians(T degrees)</div><div class="ttdef"><b>Definition:</b> Transforms.h:21</div></div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="abac0d987f95650a5086a231364064fbb" name="abac0d987f95650a5086a231364064fbb"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#abac0d987f95650a5086a231364064fbb">◆ </a></span>rotate() <span class="overload">[2/6]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="namespacetdm.html#a3fe6100e4962363b1a4be245b13d527c">mat4</a>< T > tdm::projective::rotate </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="namespacetdm.html#a3fe6100e4962363b1a4be245b13d527c">mat4</a>< T > & </td>
|
|
<td class="paramname"><em>m</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="namespacetdm.html#a0ee1135015dc380efab2a1f62e27d32c">vec3</a>< T > & </td>
|
|
<td class="paramname"><em>radians</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aed">handedness</a> </td>
|
|
<td class="paramname"><em>h</em> = <code><a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aeda7c4f29407893c334a6cb7a87bf045c0d">handedness::right</a></code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<div class="fragment"><div class="line"><span class="lineno"> 118</span> {</div>
|
|
<div class="line"><span class="lineno"> 119</span> <span class="keywordflow">return</span> m * <a class="code hl_function" href="namespacetdm_1_1projective.html#abac0d987f95650a5086a231364064fbb">rotate</a>(<a class="code hl_function" href="namespacetdm.html#a26fb6809e4f953161a41fe43c18465d9">radians</a>[0], <a class="code hl_function" href="namespacetdm.html#a26fb6809e4f953161a41fe43c18465d9">radians</a>[1], <a class="code hl_function" href="namespacetdm.html#a26fb6809e4f953161a41fe43c18465d9">radians</a>[2], h);</div>
|
|
<div class="line"><span class="lineno"> 120</span>}</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="a734e16d0c46de4f6622e1c8a631bfa53" name="a734e16d0c46de4f6622e1c8a631bfa53"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a734e16d0c46de4f6622e1c8a631bfa53">◆ </a></span>rotate() <span class="overload">[3/6]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="namespacetdm.html#a3fe6100e4962363b1a4be245b13d527c">mat4</a>< T > tdm::projective::rotate </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="namespacetdm.html#a3fe6100e4962363b1a4be245b13d527c">mat4</a>< T > & </td>
|
|
<td class="paramname"><em>m</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">T </td>
|
|
<td class="paramname"><em>xRadians</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">T </td>
|
|
<td class="paramname"><em>yRadians</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">T </td>
|
|
<td class="paramname"><em>zRadians</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aed">handedness</a> </td>
|
|
<td class="paramname"><em>h</em> = <code><a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aeda7c4f29407893c334a6cb7a87bf045c0d">handedness::right</a></code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<div class="fragment"><div class="line"><span class="lineno"> 108</span> {</div>
|
|
<div class="line"><span class="lineno"> 109</span> <span class="keywordflow">return</span> m * <a class="code hl_function" href="namespacetdm_1_1projective.html#abac0d987f95650a5086a231364064fbb">rotate</a>(xRadians, yRadians, zRadians, h);</div>
|
|
<div class="line"><span class="lineno"> 110</span>}</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="a6d871452e6ba8e5af822c3d3f4573139" name="a6d871452e6ba8e5af822c3d3f4573139"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a6d871452e6ba8e5af822c3d3f4573139">◆ </a></span>rotate() <span class="overload">[4/6]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="namespacetdm.html#a3fe6100e4962363b1a4be245b13d527c">mat4</a>< T > tdm::projective::rotate </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="namespacetdm.html#a0ee1135015dc380efab2a1f62e27d32c">vec3</a>< T > & </td>
|
|
<td class="paramname"><em>axis</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">T </td>
|
|
<td class="paramname"><em>radians</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aed">handedness</a> </td>
|
|
<td class="paramname"><em>h</em> = <code><a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aeda7c4f29407893c334a6cb7a87bf045c0d">handedness::right</a></code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<div class="fragment"><div class="line"><span class="lineno"> 53</span> {</div>
|
|
<div class="line"><span class="lineno"> 54</span> <span class="keyword">const</span> T c = std::cos(<a class="code hl_function" href="namespacetdm.html#a26fb6809e4f953161a41fe43c18465d9">radians</a>);</div>
|
|
<div class="line"><span class="lineno"> 55</span> <span class="keyword">const</span> T s = std::sin(<a class="code hl_function" href="namespacetdm.html#a26fb6809e4f953161a41fe43c18465d9">radians</a>) * <span class="keyword">static_cast<</span>T<span class="keyword">></span>(h);</div>
|
|
<div class="line"><span class="lineno"> 56</span> <span class="keyword">const</span> T one_minus_c = <span class="keyword">static_cast<</span>T<span class="keyword">></span>(1) - c;</div>
|
|
<div class="line"><span class="lineno"> 57</span> <span class="keyword">const</span> <a class="code hl_struct" href="structtdm_1_1vec.html">vec3<T></a> n = <a class="code hl_function" href="namespacetdm.html#a19d3e09b0d8eea38abc06732ed3775a7">normalize</a>(axis);</div>
|
|
<div class="line"><span class="lineno"> 58</span> <span class="keywordflow">return</span> <a class="code hl_struct" href="structtdm_1_1mat.html">mat4<T></a>{n[0] * n[0] * one_minus_c + c,</div>
|
|
<div class="line"><span class="lineno"> 59</span> n[1] * n[0] * one_minus_c - n[2] * s,</div>
|
|
<div class="line"><span class="lineno"> 60</span> n[2] * n[0] * one_minus_c + n[1] * s,</div>
|
|
<div class="line"><span class="lineno"> 61</span> <span class="keyword">static_cast<</span>T<span class="keyword">></span>(0),</div>
|
|
<div class="line"><span class="lineno"> 62</span> n[0] * n[1] * one_minus_c + n[2] * s,</div>
|
|
<div class="line"><span class="lineno"> 63</span> n[1] * n[1] * one_minus_c + c,</div>
|
|
<div class="line"><span class="lineno"> 64</span> n[2] * n[1] * one_minus_c - n[0] * s,</div>
|
|
<div class="line"><span class="lineno"> 65</span> <span class="keyword">static_cast<</span>T<span class="keyword">></span>(0),</div>
|
|
<div class="line"><span class="lineno"> 66</span> n[0] * n[2] * one_minus_c - n[1] * s,</div>
|
|
<div class="line"><span class="lineno"> 67</span> n[1] * n[2] * one_minus_c + n[0] * s,</div>
|
|
<div class="line"><span class="lineno"> 68</span> n[2] * n[2] * one_minus_c + c,</div>
|
|
<div class="line"><span class="lineno"> 69</span> <span class="keyword">static_cast<</span>T<span class="keyword">></span>(0),</div>
|
|
<div class="line"><span class="lineno"> 70</span> <span class="keyword">static_cast<</span>T<span class="keyword">></span>(0),</div>
|
|
<div class="line"><span class="lineno"> 71</span> <span class="keyword">static_cast<</span>T<span class="keyword">></span>(0),</div>
|
|
<div class="line"><span class="lineno"> 72</span> <span class="keyword">static_cast<</span>T<span class="keyword">></span>(0),</div>
|
|
<div class="line"><span class="lineno"> 73</span> <span class="keyword">static_cast<</span>T<span class="keyword">></span>(1)};</div>
|
|
<div class="line"><span class="lineno"> 74</span>}</div>
|
|
<div class="ttc" id="anamespacetdm_html_a19d3e09b0d8eea38abc06732ed3775a7"><div class="ttname"><a href="namespacetdm.html#a19d3e09b0d8eea38abc06732ed3775a7">tdm::normalize</a></div><div class="ttdeci">std::enable_if< std::is_floating_point< T >::value, vec< L, T > >::type normalize(vec< L, T > v)</div><div class="ttdef"><b>Definition:</b> Computations.h:51</div></div>
|
|
<div class="ttc" id="astructtdm_1_1mat_html"><div class="ttname"><a href="structtdm_1_1mat.html">tdm::mat</a></div><div class="ttdef"><b>Definition:</b> Mat.h:17</div></div>
|
|
<div class="ttc" id="astructtdm_1_1vec_html"><div class="ttname"><a href="structtdm_1_1vec.html">tdm::vec</a></div><div class="ttdef"><b>Definition:</b> Vec.h:10</div></div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="a55b0b5111d65a205801e520b83a91e4d" name="a55b0b5111d65a205801e520b83a91e4d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a55b0b5111d65a205801e520b83a91e4d">◆ </a></span>rotate() <span class="overload">[5/6]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="namespacetdm.html#a3fe6100e4962363b1a4be245b13d527c">mat4</a>< T > tdm::projective::rotate </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="namespacetdm.html#a0ee1135015dc380efab2a1f62e27d32c">vec3</a>< T > & </td>
|
|
<td class="paramname"><em>radians</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aed">handedness</a> </td>
|
|
<td class="paramname"><em>h</em> = <code><a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aeda7c4f29407893c334a6cb7a87bf045c0d">handedness::right</a></code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<div class="fragment"><div class="line"><span class="lineno"> 113</span> {</div>
|
|
<div class="line"><span class="lineno"> 114</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacetdm_1_1projective.html#abac0d987f95650a5086a231364064fbb">rotate</a>(<a class="code hl_function" href="namespacetdm.html#a26fb6809e4f953161a41fe43c18465d9">radians</a>[0], <a class="code hl_function" href="namespacetdm.html#a26fb6809e4f953161a41fe43c18465d9">radians</a>[1], <a class="code hl_function" href="namespacetdm.html#a26fb6809e4f953161a41fe43c18465d9">radians</a>[2], h);</div>
|
|
<div class="line"><span class="lineno"> 115</span>}</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="a64b5932ac17185165bf65c2000cddfb4" name="a64b5932ac17185165bf65c2000cddfb4"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a64b5932ac17185165bf65c2000cddfb4">◆ </a></span>rotate() <span class="overload">[6/6]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="namespacetdm.html#a3fe6100e4962363b1a4be245b13d527c">mat4</a>< T > tdm::projective::rotate </td>
|
|
<td>(</td>
|
|
<td class="paramtype">T </td>
|
|
<td class="paramname"><em>xRadians</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">T </td>
|
|
<td class="paramname"><em>yRadians</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">T </td>
|
|
<td class="paramname"><em>zRadians</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aed">handedness</a> </td>
|
|
<td class="paramname"><em>h</em> = <code><a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aeda7c4f29407893c334a6cb7a87bf045c0d">handedness::right</a></code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<div class="fragment"><div class="line"><span class="lineno"> 82</span> {</div>
|
|
<div class="line"><span class="lineno"> 83</span> <span class="keyword">const</span> T sx = std::sin(xRadians) * <span class="keyword">static_cast<</span>T<span class="keyword">></span>(h);</div>
|
|
<div class="line"><span class="lineno"> 84</span> <span class="keyword">const</span> T sy = std::sin(yRadians) * <span class="keyword">static_cast<</span>T<span class="keyword">></span>(h);</div>
|
|
<div class="line"><span class="lineno"> 85</span> <span class="keyword">const</span> T sz = std::sin(zRadians) * <span class="keyword">static_cast<</span>T<span class="keyword">></span>(h);</div>
|
|
<div class="line"><span class="lineno"> 86</span> <span class="keyword">const</span> T cx = std::cos(xRadians);</div>
|
|
<div class="line"><span class="lineno"> 87</span> <span class="keyword">const</span> T cy = std::cos(yRadians);</div>
|
|
<div class="line"><span class="lineno"> 88</span> <span class="keyword">const</span> T cz = std::cos(zRadians);</div>
|
|
<div class="line"><span class="lineno"> 89</span> <span class="keyword">auto</span> rx = <a class="code hl_struct" href="structtdm_1_1mat.html">mat4<T>::identity</a>();</div>
|
|
<div class="line"><span class="lineno"> 90</span> rx(1, 1) = cx;</div>
|
|
<div class="line"><span class="lineno"> 91</span> rx(1, 2) = sx;</div>
|
|
<div class="line"><span class="lineno"> 92</span> rx(2, 1) = -sx;</div>
|
|
<div class="line"><span class="lineno"> 93</span> rx(2, 2) = cx;</div>
|
|
<div class="line"><span class="lineno"> 94</span> <span class="keyword">auto</span> ry = <a class="code hl_struct" href="structtdm_1_1mat.html">mat4<T>::identity</a>();</div>
|
|
<div class="line"><span class="lineno"> 95</span> ry(0, 0) = cy;</div>
|
|
<div class="line"><span class="lineno"> 96</span> ry(0, 2) = -sy;</div>
|
|
<div class="line"><span class="lineno"> 97</span> ry(2, 0) = sy;</div>
|
|
<div class="line"><span class="lineno"> 98</span> ry(2, 2) = cy;</div>
|
|
<div class="line"><span class="lineno"> 99</span> <span class="keyword">auto</span> rz = <a class="code hl_struct" href="structtdm_1_1mat.html">mat4<T>::identity</a>();</div>
|
|
<div class="line"><span class="lineno"> 100</span> rz(0, 0) = cz;</div>
|
|
<div class="line"><span class="lineno"> 101</span> rz(0, 1) = sz;</div>
|
|
<div class="line"><span class="lineno"> 102</span> rz(1, 0) = -sz;</div>
|
|
<div class="line"><span class="lineno"> 103</span> rz(1, 1) = cz;</div>
|
|
<div class="line"><span class="lineno"> 104</span> <span class="keywordflow">return</span> rx * ry * rz;</div>
|
|
<div class="line"><span class="lineno"> 105</span>}</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="a0f73dee532160054f7aeb723d3371162" name="a0f73dee532160054f7aeb723d3371162"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a0f73dee532160054f7aeb723d3371162">◆ </a></span>scale() <span class="overload">[1/4]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<<a class="el" href="namespacetdm.html#a644d3de5f1ca2eaa628196afcfbadef4">dim_t</a> L, typename T > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structtdm_1_1mat.html">mat</a>< L+1, L+1, T > tdm::projective::scale </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structtdm_1_1mat.html">mat</a>< L+1, L+1, T > & </td>
|
|
<td class="paramname"><em>m</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structtdm_1_1vec.html">vec</a>< L, T > & </td>
|
|
<td class="paramname"><em>factors</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<div class="fragment"><div class="line"><span class="lineno"> 132</span> {</div>
|
|
<div class="line"><span class="lineno"> 133</span> <span class="keywordflow">return</span> m * <a class="code hl_function" href="namespacetdm_1_1projective.html#af07ccf333c2d31d6b28e2a854e4b758a">scale</a>(factors);</div>
|
|
<div class="line"><span class="lineno"> 134</span>}</div>
|
|
<div class="ttc" id="anamespacetdm_1_1projective_html_af07ccf333c2d31d6b28e2a854e4b758a"><div class="ttname"><a href="namespacetdm_1_1projective.html#af07ccf333c2d31d6b28e2a854e4b758a">tdm::projective::scale</a></div><div class="ttdeci">mat< L, L, T > scale(const mat< L, L, T > &m, T factor)</div><div class="ttdef"><b>Definition:</b> Transforms.h:142</div></div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="af07ccf333c2d31d6b28e2a854e4b758a" name="af07ccf333c2d31d6b28e2a854e4b758a"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af07ccf333c2d31d6b28e2a854e4b758a">◆ </a></span>scale() <span class="overload">[2/4]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<<a class="el" href="namespacetdm.html#a644d3de5f1ca2eaa628196afcfbadef4">dim_t</a> L, typename T > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structtdm_1_1mat.html">mat</a>< L, L, T > tdm::projective::scale </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structtdm_1_1mat.html">mat</a>< L, L, T > & </td>
|
|
<td class="paramname"><em>m</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">T </td>
|
|
<td class="paramname"><em>factor</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<div class="fragment"><div class="line"><span class="lineno"> 142</span> {</div>
|
|
<div class="line"><span class="lineno"> 143</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacetdm_1_1projective.html#af07ccf333c2d31d6b28e2a854e4b758a">scale</a>(m, <a class="code hl_struct" href="structtdm_1_1vec.html">vec<L - 1, T></a>{factor});</div>
|
|
<div class="line"><span class="lineno"> 144</span>}</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="a3f30f4777ac8bdc4e0eb5c96ab634a58" name="a3f30f4777ac8bdc4e0eb5c96ab634a58"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a3f30f4777ac8bdc4e0eb5c96ab634a58">◆ </a></span>scale() <span class="overload">[3/4]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<<a class="el" href="namespacetdm.html#a644d3de5f1ca2eaa628196afcfbadef4">dim_t</a> L, typename T > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structtdm_1_1mat.html">mat</a>< L+1, L+1, T > tdm::projective::scale </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structtdm_1_1vec.html">vec</a>< L, T > & </td>
|
|
<td class="paramname"><em>factors</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<div class="fragment"><div class="line"><span class="lineno"> 123</span> {</div>
|
|
<div class="line"><span class="lineno"> 124</span> <a class="code hl_struct" href="structtdm_1_1vec.html">vec<L + 1, T></a> diagonal{<span class="keyword">static_cast<</span>T<span class="keyword">></span>(1)};</div>
|
|
<div class="line"><span class="lineno"> 125</span> factors.<a class="code hl_function" href="structtdm_1_1vec.html#a127a38ee0747536a683201485e0d40c4">apply</a>([&diagonal](<span class="keyword">const</span> T& value, <a class="code hl_typedef" href="namespacetdm.html#a644d3de5f1ca2eaa628196afcfbadef4">dim_t</a> i) {</div>
|
|
<div class="line"><span class="lineno"> 126</span> diagonal[i] = value;</div>
|
|
<div class="line"><span class="lineno"> 127</span> });</div>
|
|
<div class="line"><span class="lineno"> 128</span> <span class="keywordflow">return</span> mat<L + 1, L + 1, T>::diagonal(diagonal);</div>
|
|
<div class="line"><span class="lineno"> 129</span>}</div>
|
|
<div class="ttc" id="anamespacetdm_html_a644d3de5f1ca2eaa628196afcfbadef4"><div class="ttname"><a href="namespacetdm.html#a644d3de5f1ca2eaa628196afcfbadef4">tdm::dim_t</a></div><div class="ttdeci">std::size_t dim_t</div><div class="ttdef"><b>Definition:</b> Types.h:22</div></div>
|
|
<div class="ttc" id="astructtdm_1_1vec_html_a127a38ee0747536a683201485e0d40c4"><div class="ttname"><a href="structtdm_1_1vec.html#a127a38ee0747536a683201485e0d40c4">tdm::vec::apply</a></div><div class="ttdeci">vec & apply(F func)</div><div class="ttdef"><b>Definition:</b> Vec.h:68</div></div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="aa3af28aac1eb1d3b1b6d6e66fdc95b59" name="aa3af28aac1eb1d3b1b6d6e66fdc95b59"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aa3af28aac1eb1d3b1b6d6e66fdc95b59">◆ </a></span>scale() <span class="overload">[4/4]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<<a class="el" href="namespacetdm.html#a644d3de5f1ca2eaa628196afcfbadef4">dim_t</a> L, typename T > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structtdm_1_1mat.html">mat</a>< L+1, L+1, T > tdm::projective::scale </td>
|
|
<td>(</td>
|
|
<td class="paramtype">T </td>
|
|
<td class="paramname"><em>factor</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<div class="fragment"><div class="line"><span class="lineno"> 137</span> {</div>
|
|
<div class="line"><span class="lineno"> 138</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacetdm_1_1projective.html#af07ccf333c2d31d6b28e2a854e4b758a">scale</a>(<a class="code hl_struct" href="structtdm_1_1vec.html">vec<L, T></a>{factor});</div>
|
|
<div class="line"><span class="lineno"> 139</span>}</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="ac120cb33694cec606634642dc48019e9" name="ac120cb33694cec606634642dc48019e9"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac120cb33694cec606634642dc48019e9">◆ </a></span>translate() <span class="overload">[1/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<<a class="el" href="namespacetdm.html#a644d3de5f1ca2eaa628196afcfbadef4">dim_t</a> L, typename T > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structtdm_1_1mat.html">mat</a>< L+1, L+1, T > tdm::projective::translate </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structtdm_1_1mat.html">mat</a>< L+1, L+1, T > & </td>
|
|
<td class="paramname"><em>m</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structtdm_1_1vec.html">vec</a>< L, T > & </td>
|
|
<td class="paramname"><em>position</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<div class="fragment"><div class="line"><span class="lineno"> 156</span> {</div>
|
|
<div class="line"><span class="lineno"> 157</span> <span class="keywordflow">return</span> m * <a class="code hl_function" href="namespacetdm_1_1projective.html#ac120cb33694cec606634642dc48019e9">translate</a>(position);</div>
|
|
<div class="line"><span class="lineno"> 158</span>}</div>
|
|
<div class="ttc" id="anamespacetdm_1_1projective_html_ac120cb33694cec606634642dc48019e9"><div class="ttname"><a href="namespacetdm_1_1projective.html#ac120cb33694cec606634642dc48019e9">tdm::projective::translate</a></div><div class="ttdeci">mat< L+1, L+1, T > translate(const mat< L+1, L+1, T > &m, const vec< L, T > &position)</div><div class="ttdef"><b>Definition:</b> Transforms.h:156</div></div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="acebdfbfa65a7452ac8b81acd0b618eee" name="acebdfbfa65a7452ac8b81acd0b618eee"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#acebdfbfa65a7452ac8b81acd0b618eee">◆ </a></span>translate() <span class="overload">[2/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<<a class="el" href="namespacetdm.html#a644d3de5f1ca2eaa628196afcfbadef4">dim_t</a> L, typename T > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structtdm_1_1mat.html">mat</a>< L+1, L+1, T > tdm::projective::translate </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structtdm_1_1vec.html">vec</a>< L, T > & </td>
|
|
<td class="paramname"><em>position</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<div class="fragment"><div class="line"><span class="lineno"> 147</span> {</div>
|
|
<div class="line"><span class="lineno"> 148</span> <span class="keyword">auto</span> m = <a class="code hl_struct" href="structtdm_1_1mat.html">mat<L + 1, L + 1, T>::identity</a>();</div>
|
|
<div class="line"><span class="lineno"> 149</span> position.<a class="code hl_function" href="structtdm_1_1vec.html#a127a38ee0747536a683201485e0d40c4">apply</a>([&m](<span class="keyword">const</span> T& value, <a class="code hl_typedef" href="namespacetdm.html#a644d3de5f1ca2eaa628196afcfbadef4">dim_t</a> i) {</div>
|
|
<div class="line"><span class="lineno"> 150</span> m(L, i) = value;</div>
|
|
<div class="line"><span class="lineno"> 151</span> });</div>
|
|
<div class="line"><span class="lineno"> 152</span> <span class="keywordflow">return</span> m;</div>
|
|
<div class="line"><span class="lineno"> 153</span>}</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="a070fb9fdf44db8b854ade70147a8ce4c" name="a070fb9fdf44db8b854ade70147a8ce4c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a070fb9fdf44db8b854ade70147a8ce4c">◆ </a></span>xyz2AxisAngle() <span class="overload">[1/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T > </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structtdm_1_1projective_1_1axis__angle.html">axis_angle</a>< T > tdm::projective::xyz2AxisAngle </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="namespacetdm.html#a0ee1135015dc380efab2a1f62e27d32c">vec3</a>< T > & </td>
|
|
<td class="paramname"><em>radians</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aed">handedness</a> </td>
|
|
<td class="paramname"><em>h</em> = <code><a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aeda7c4f29407893c334a6cb7a87bf045c0d">handedness::right</a></code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<div class="fragment"><div class="line"><span class="lineno"> 178</span> {</div>
|
|
<div class="line"><span class="lineno"> 179</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacetdm_1_1projective.html#a070fb9fdf44db8b854ade70147a8ce4c">xyz2AxisAngle</a>(<a class="code hl_function" href="namespacetdm.html#a26fb6809e4f953161a41fe43c18465d9">radians</a>[0], <a class="code hl_function" href="namespacetdm.html#a26fb6809e4f953161a41fe43c18465d9">radians</a>[1], <a class="code hl_function" href="namespacetdm.html#a26fb6809e4f953161a41fe43c18465d9">radians</a>[2], h);</div>
|
|
<div class="line"><span class="lineno"> 180</span>}</div>
|
|
<div class="ttc" id="anamespacetdm_1_1projective_html_a070fb9fdf44db8b854ade70147a8ce4c"><div class="ttname"><a href="namespacetdm_1_1projective.html#a070fb9fdf44db8b854ade70147a8ce4c">tdm::projective::xyz2AxisAngle</a></div><div class="ttdeci">axis_angle< T > xyz2AxisAngle(const vec3< T > &radians, handedness h=handedness::right)</div><div class="ttdef"><b>Definition:</b> Transforms.h:178</div></div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="ab6b0c39e3a4f3435a1b3445dc0a93e9b" name="ab6b0c39e3a4f3435a1b3445dc0a93e9b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab6b0c39e3a4f3435a1b3445dc0a93e9b">◆ </a></span>xyz2AxisAngle() <span class="overload">[2/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T > </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structtdm_1_1projective_1_1axis__angle.html">axis_angle</a>< T > tdm::projective::xyz2AxisAngle </td>
|
|
<td>(</td>
|
|
<td class="paramtype">T </td>
|
|
<td class="paramname"><em>xRadians</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">T </td>
|
|
<td class="paramname"><em>yRadians</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">T </td>
|
|
<td class="paramname"><em>zRadians</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aed">handedness</a> </td>
|
|
<td class="paramname"><em>h</em> = <code><a class="el" href="namespacetdm.html#a4c1144e7275ec98fc638359109142aeda7c4f29407893c334a6cb7a87bf045c0d">handedness::right</a></code> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<div class="fragment"><div class="line"><span class="lineno"> 167</span> {</div>
|
|
<div class="line"><span class="lineno"> 168</span> <span class="keyword">const</span> <a class="code hl_struct" href="structtdm_1_1mat.html">mat4<T></a> m = <a class="code hl_function" href="namespacetdm_1_1projective.html#abac0d987f95650a5086a231364064fbb">rotate</a>(xRadians, yRadians, zRadians, h);</div>
|
|
<div class="line"><span class="lineno"> 169</span> <span class="keyword">const</span> T <a class="code hl_function" href="namespacetdm.html#a26fb6809e4f953161a41fe43c18465d9">radians</a> = std::acos((<a class="code hl_function" href="namespacetdm.html#af2af6050315345aa0db49cc5f77ba33f">trace</a>(m.template submat<3, 3>(0, 0)) - <span class="keyword">static_cast<</span>T<span class="keyword">></span>(1)) / <span class="keyword">static_cast<</span>T<span class="keyword">></span>(2));</div>
|
|
<div class="line"><span class="lineno"> 170</span> <span class="keyword">const</span> T factor = <span class="keyword">static_cast<</span>T<span class="keyword">></span>(1) / (<span class="keyword">static_cast<</span>T<span class="keyword">></span>(2) * std::sin(<a class="code hl_function" href="namespacetdm.html#a26fb6809e4f953161a41fe43c18465d9">radians</a>));</div>
|
|
<div class="line"><span class="lineno"> 171</span> <span class="keyword">const</span> T x = factor * (m(2, 1) - m(1, 2));</div>
|
|
<div class="line"><span class="lineno"> 172</span> <span class="keyword">const</span> T y = factor * (m(0, 2) - m(2, 0));</div>
|
|
<div class="line"><span class="lineno"> 173</span> <span class="keyword">const</span> T z = factor * (m(1, 0) - m(0, 1));</div>
|
|
<div class="line"><span class="lineno"> 174</span> <span class="keywordflow">return</span> {{x, y, z}, <a class="code hl_function" href="namespacetdm.html#a26fb6809e4f953161a41fe43c18465d9">radians</a>};</div>
|
|
<div class="line"><span class="lineno"> 175</span>}</div>
|
|
<div class="ttc" id="anamespacetdm_html_af2af6050315345aa0db49cc5f77ba33f"><div class="ttname"><a href="namespacetdm.html#af2af6050315345aa0db49cc5f77ba33f">tdm::trace</a></div><div class="ttdeci">T trace(const mat< N, N, T > &m)</div><div class="ttdef"><b>Definition:</b> Computations.h:151</div></div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
</div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
|
|
</small></address>
|
|
</body>
|
|
</html>
|