181 lines
36 KiB
HTML
181 lines
36 KiB
HTML
<!-- HTML header for doxygen 1.8.8-->
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<!-- For Mobile Devices -->
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta name="generator" content="Doxygen 1.8.12"/>
|
|
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
|
|
<title>Etk: Ewol Tool Kit: framework/atria-soft/etk/etk/math/Plane.hpp Source File</title>
|
|
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
|
|
<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" />
|
|
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
|
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
|
|
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
|
|
<script type="text/javascript" src="doxy-boot.js"></script>
|
|
</head>
|
|
<body>
|
|
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
|
|
<div class="container">
|
|
<div class="navbar-header">
|
|
<a class="navbar-brand">Etk: Ewol Tool Kit 0.10.0</a>
|
|
</div>
|
|
<div id="navbar" class="navbar-collapse collapse">
|
|
<ul class="nav navbar-nav">
|
|
<li><a href="index.html">Main Page</a></li>
|
|
<li><a href="pages.html">Related Pages</a></li>
|
|
<li><a href="namespaces.html">Namespaces</a></li>
|
|
<li><a href="annotated.html">Classes</a></li>
|
|
<li><a href="files.html">Files</a></li>
|
|
</ul>
|
|
<ul class="nav navbar-nav navbar-right">
|
|
<li class="dropdown">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
|
|
Link-libs<span class="caret"></span>
|
|
</a>
|
|
<ul class="dropdown-menu">
|
|
<li><a href="http://HeeroYui.github.io/lutin">lutin</a></li>
|
|
<li><a href="http://atria-soft.github.io/ewol">ewol</a></li>
|
|
<li><a href="http://atria-soft.github.io/echrono">echrono</a></li>
|
|
<li><a href="http://atria-soft.github.io/etk">etk</a></li>
|
|
<li><a href="http://atria-soft.github.io/ejson">ejson</a></li>
|
|
<li><a href="http://atria-soft.github.io/exml">exml</a></li>
|
|
<li><a href="http://atria-soft.github.io/esvg">esvg</a></li>
|
|
<li><a href="http://atria-soft.github.io/egami">egami</a></li>
|
|
<li><a href="http://atria-soft.github.io/gale">gale</a></li>
|
|
<li><a href="http://atria-soft.github.io/ege">ege</a></li>
|
|
<li><a href="http://atria-soft.github.io/elog">elog</a></li>
|
|
<li><a href="http://atria-soft.github.io/ememory">ememory</a></li>
|
|
<li><a href="http://atria-soft.github.io/enet">enet</a></li>
|
|
<li><a href="http://atria-soft.github.io/eproperty">eproperty</a></li>
|
|
<li><a href="http://atria-soft.github.io/esignal">esignal</a></li>
|
|
<li><a href="http://atria-soft.github.io/etranslate">etranslate</a></li>
|
|
<li><a href="http://atria-soft.github.io/zeus">zeus</a></li>
|
|
<li><a href="http://musicdsp.github.io/audio-ess">audio-ess</a></li>
|
|
<li><a href="http://musicdsp.github.io/audio">audio</a></li>
|
|
<li><a href="http://musicdsp.github.io/audio-drain">audio-drain</a></li>
|
|
<li><a href="http://musicdsp.github.io/audio-orchestra">audio-orchestra</a></li>
|
|
<li><a href="http://musicdsp.github.io/audio-river">audio-river</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<div id="search-box" class="input-group">
|
|
<div class="input-group-btn">
|
|
<button aria-expanded="false" type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
|
<span class="glyphicon glyphicon-search"></span>
|
|
<span class="caret"></span>
|
|
</button>
|
|
<ul class="dropdown-menu">
|
|
<li><a href="#">All</a></li>
|
|
<li><a href="#">Classes</a></li>
|
|
<li><a href="#">Namespaces</a></li>
|
|
<li><a href="#">Files</a></li>
|
|
<li><a href="#">Functions</a></li>
|
|
<li><a href="#">Variables</a></li>
|
|
<li><a href="#">Typedefs</a></li>
|
|
<li><a href="#">Enumerations</a></li>
|
|
<li><a href="#">Enumerator</a></li>
|
|
<li><a href="#">Friends</a></li>
|
|
<li><a href="#">Macros</a></li>
|
|
<li><a href="#">Pages</a></li>
|
|
</ul>
|
|
</div>
|
|
<button id="search-close" type="button" class="close" aria-label="Close">
|
|
<span aria-hidden="true"></span>
|
|
</button>
|
|
<input id="search-field" class="form-control" accesskey="S" onkeydown="searchBox.OnSearchFieldChange(event);" placeholder="Search ..." type="text">
|
|
</div>
|
|
</div><!--/.nav-collapse -->
|
|
</div>
|
|
</nav>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div class="content" id="content">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
|
|
<div style="margin-bottom: 15px;margin-top: 60px;">
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.12 -->
|
|
<script type="text/javascript">
|
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
</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="dir_644e041c3a6521da7b27eba0e4eb2b95.html">framework</a></li><li class="navelem"><a class="el" href="dir_a094892b17be858f66bf3446bbb755c7.html">atria-soft</a></li><li class="navelem"><a class="el" href="dir_101ca691570835542fc832f149ed9b11.html">etk</a></li><li class="navelem"><a class="el" href="dir_8e1854e033aa3ec68b8dd13c773d2923.html">etk</a></li><li class="navelem"><a class="el" href="dir_f311a0a6eba1dc32efa9f7eace7d8ad2.html">math</a></li> </ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="headertitle">
|
|
<div class="title">Plane.hpp</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<a href="_plane_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include <<a class="code" href="types_8hpp.html">etk/types.hpp</a>></span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> </div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include <etk/debug.hpp></span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">namespace </span><a class="code" href="namespaceetk.html">etk</a> {</div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="classetk_1_1_plane.html"> 19</a></span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T> <span class="keyword">class </span><a class="code" href="classetk_1_1_plane.html">Plane</a> {</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  <a class="code" href="classetk_1_1_vector3_d.html">etk::Vector3D<T></a> m_normal; </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  T m_intercept; </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="classetk_1_1_plane.html#ac45e649cc99e2a64f93c4efd2f5cd3a0"> 27</a></span>  <a class="code" href="classetk_1_1_plane.html#ac45e649cc99e2a64f93c4efd2f5cd3a0">Plane</a>() :</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  m_normal(0, 0, 0),</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  m_intercept(0) {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  }</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classetk_1_1_plane.html#ad91eb9e5c7637f30869fd585c0b77f80"> 37</a></span>  <a class="code" href="classetk_1_1_plane.html#ad91eb9e5c7637f30869fd585c0b77f80">Plane</a>(<a class="code" href="classetk_1_1_vector3_d.html">etk::Vector3D<T></a> _normal, T _intercept=0) :</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  m_normal(_normal),</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  m_intercept(_intercept) {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  }</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classetk_1_1_plane.html#abd201fb9f3ea8d7a31d3590ce4ccbf66"> 46</a></span>  <a class="code" href="classetk_1_1_plane.html#abd201fb9f3ea8d7a31d3590ce4ccbf66">Plane</a>(<span class="keyword">const</span> <a class="code" href="classetk_1_1_plane.html">Plane</a>& _obj) :</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  m_normal(_obj.m_normal),</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  m_intercept(_obj.m_intercept) {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  }</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classetk_1_1_plane.html#a202b3335b2b71cc84726a1b57b8e1e70"> 55</a></span>  <span class="keywordtype">void</span> <a class="code" href="classetk_1_1_plane.html#a202b3335b2b71cc84726a1b57b8e1e70">setNormal</a>(<span class="keyword">const</span> <a class="code" href="classetk_1_1_vector3_d.html">etk::Vector3D<T></a>& _obj) {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  m_normal = _obj;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  }</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classetk_1_1_plane.html#a691582e68a6ee38b0c7c9ccf2a6734f3"> 62</a></span>  <span class="keywordtype">void</span> <a class="code" href="classetk_1_1_plane.html#a691582e68a6ee38b0c7c9ccf2a6734f3">setIntercept</a>(<span class="keywordtype">float</span> _intercept) {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  m_intercept=_intercept;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  }</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classetk_1_1_plane.html#a69b4871efd25fa204a3917360bfb8cc9"> 71</a></span>  <span class="keywordtype">void</span> <a class="code" href="classetk_1_1_plane.html#a69b4871efd25fa204a3917360bfb8cc9">setFromPoints</a>(<span class="keyword">const</span> <a class="code" href="classetk_1_1_vector3_d.html">etk::Vector3D<T></a>& _p0,</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">const</span> <a class="code" href="classetk_1_1_vector3_d.html">etk::Vector3D<T></a>& _p1,</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keyword">const</span> <a class="code" href="classetk_1_1_vector3_d.html">etk::Vector3D<T></a>& _p2) {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  m_normal = (_p1 - _p0).cross(_p2 - _p0);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  m_normal.<a class="code" href="classetk_1_1_vector3_d.html#aee1c200271d3691934c0fdcc18bd69ce">normalize</a>();</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="classetk_1_1_plane.html#a6b0377c24a6b076de9fe112400724523">calculateIntercept</a>(_p0);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  }</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classetk_1_1_plane.html#a6b0377c24a6b076de9fe112400724523"> 82</a></span>  <span class="keywordtype">void</span> <a class="code" href="classetk_1_1_plane.html#a6b0377c24a6b076de9fe112400724523">calculateIntercept</a>(<span class="keyword">const</span> <a class="code" href="classetk_1_1_vector3_d.html">etk::Vector3D<T></a>& _pointOnPlane) {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  m_intercept=-m_normal.<a class="code" href="classetk_1_1_vector3_d.html#ae24ac042b5e2878119cfb6e321daf3bc">dot</a>(_pointOnPlane);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classetk_1_1_plane.html#a383afb40ac4cfab41b7d221c283b29f0"> 88</a></span>  <span class="keywordtype">void</span> <a class="code" href="classetk_1_1_plane.html#a383afb40ac4cfab41b7d221c283b29f0">normalize</a>() {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordtype">float</span> normalLength = m_normal.getLength();</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">if</span> (normalLength == 0) {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  m_normal /= normalLength;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  m_intercept /= normalLength;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  }</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classetk_1_1_plane.html#ab17849e22fddbc55964ef2990818e2a6"> 100</a></span>  <span class="keyword">const</span> <a class="code" href="classetk_1_1_vector3_d.html">etk::Vector3D<T></a>& <a class="code" href="classetk_1_1_plane.html#ab17849e22fddbc55964ef2990818e2a6">getNormal</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">return</span> m_normal;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classetk_1_1_plane.html#ac701a8e4aae7df5874e1e97658703c7f"> 107</a></span>  T <a class="code" href="classetk_1_1_plane.html#ac701a8e4aae7df5874e1e97658703c7f">getIntercept</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">return</span> m_intercept;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  }</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classetk_1_1_plane.html#abc2a4dffb33f88c073d03799a81a902e"> 116</a></span>  <a class="code" href="classetk_1_1_vector3_d.html">etk::Vector3D<T></a> <a class="code" href="classetk_1_1_plane.html#abc2a4dffb33f88c073d03799a81a902e">intersect3</a>(<span class="keyword">const</span> <a class="code" href="classetk_1_1_plane.html">Plane<T></a>& _p2,</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keyword">const</span> <a class="code" href="classetk_1_1_plane.html">Plane<T></a>& _p3) {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordtype">float</span> denominator = m_normal.<a class="code" href="classetk_1_1_vector3_d.html#ae24ac042b5e2878119cfb6e321daf3bc">dot</a>((_p2.m_normal).cross(_p3.m_normal));</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="comment">//scalar triple product of normals</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">if</span>(denominator==0.0f) {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="comment">//no intersection</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">return</span> <a class="code" href="classetk_1_1_vector3_d.html">etk::Vector3D<T></a>(0,0,0);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="classetk_1_1_vector3_d.html">etk::Vector3D<T></a> temp1, temp2, temp3;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  temp1 = (_p2.m_normal.cross(_p3.m_normal))*m_intercept;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  temp2 = (_p3.m_normal.cross(m_normal)) * _p2.m_intercept;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  temp3 = (m_normal.<a class="code" href="classetk_1_1_vector3_d.html#a0ac0f11a99ebb6b45605da1d373c4bbd">cross</a>(_p2.m_normal)) * _p3.m_intercept;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  return (temp1+temp2+temp3) / (-denominator);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  }</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classetk_1_1_plane.html#aa63645925f576389fc111737c1f6af30"> 135</a></span>  <span class="keywordtype">float</span> <a class="code" href="classetk_1_1_plane.html#aa63645925f576389fc111737c1f6af30">getDistance</a>(<span class="keyword">const</span> <a class="code" href="classetk_1_1_vector3_d.html">etk::Vector3D<T></a>& _point)<span class="keyword"> const </span>{</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">return</span> _point.<a class="code" href="classetk_1_1_vector3_d.html#af2bda50fefea08fb49c04b15a61bcb6a">x</a>() * m_normal.<a class="code" href="classetk_1_1_vector3_d.html#af2bda50fefea08fb49c04b15a61bcb6a">x</a>()</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  + _point.<a class="code" href="classetk_1_1_vector3_d.html#ad949b7843b6212277927f0b973ef502b">y</a>() * m_normal.<a class="code" href="classetk_1_1_vector3_d.html#ad949b7843b6212277927f0b973ef502b">y</a>()</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  + _point.<a class="code" href="classetk_1_1_vector3_d.html#a4d5e3071c66297840c6a857e580aaabd">z</a>() * m_normal.<a class="code" href="classetk_1_1_vector3_d.html#a4d5e3071c66297840c6a857e580aaabd">z</a>()</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  + m_intercept;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  }</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classetk_1_1_plane.html#a0022135ae6ce5333c7a39e04f16369af"> 147</a></span>  <a class="code" href="classetk_1_1_plane.html">Plane<T></a> <a class="code" href="classetk_1_1_plane.html#a0022135ae6ce5333c7a39e04f16369af">linearInterpolate</a>(<span class="keyword">const</span> <a class="code" href="classetk_1_1_plane.html">Plane<T></a>& _p2, <span class="keywordtype">float</span> _factor) {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="classetk_1_1_plane.html">Plane<T></a> result;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  result.m_normal=m_normal*(1.0f-_factor) + _p2.m_normal*_factor;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  result.m_normal.normalize();</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  result.m_intercept=m_intercept*(1.0f-_factor) + _p2.m_intercept*_factor;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  }</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classetk_1_1_plane.html#aba7b788f733af40c2eb527809b4bf132"> 160</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classetk_1_1_plane.html#aba7b788f733af40c2eb527809b4bf132">operator==</a>(<span class="keyword">const</span> <a class="code" href="classetk_1_1_plane.html">Plane<T></a>& _obj)<span class="keyword"> const </span>{</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">if</span>( m_normal == _obj.m_normal</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  && m_intercept == _obj.m_intercept) {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  }</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classetk_1_1_plane.html#acff6210dea13b9e5d767c017c79dd6a8"> 173</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classetk_1_1_plane.html#acff6210dea13b9e5d767c017c79dd6a8">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classetk_1_1_plane.html">Plane<T></a>& _obj)<span class="keyword"> const </span>{</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">return</span>!((*this) == _obj);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  };</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div><div class="ttc" id="classetk_1_1_plane_html_a202b3335b2b71cc84726a1b57b8e1e70"><div class="ttname"><a href="classetk_1_1_plane.html#a202b3335b2b71cc84726a1b57b8e1e70">etk::Plane::setNormal</a></div><div class="ttdeci">void setNormal(const etk::Vector3D< T > &_obj)</div><div class="ttdoc">Set the normal of the plane. </div><div class="ttdef"><b>Definition:</b> Plane.hpp:55</div></div>
|
|
<div class="ttc" id="classetk_1_1_plane_html_ac701a8e4aae7df5874e1e97658703c7f"><div class="ttname"><a href="classetk_1_1_plane.html#ac701a8e4aae7df5874e1e97658703c7f">etk::Plane::getIntercept</a></div><div class="ttdeci">T getIntercept() const</div><div class="ttdoc">Get intercept Value of the plane. </div><div class="ttdef"><b>Definition:</b> Plane.hpp:107</div></div>
|
|
<div class="ttc" id="classetk_1_1_plane_html_a69b4871efd25fa204a3917360bfb8cc9"><div class="ttname"><a href="classetk_1_1_plane.html#a69b4871efd25fa204a3917360bfb8cc9">etk::Plane::setFromPoints</a></div><div class="ttdeci">void setFromPoints(const etk::Vector3D< T > &_p0, const etk::Vector3D< T > &_p1, const etk::Vector3D< T > &_p2)</div><div class="ttdoc">Set the plane with 3 points in the space. </div><div class="ttdef"><b>Definition:</b> Plane.hpp:71</div></div>
|
|
<div class="ttc" id="classetk_1_1_plane_html_abd201fb9f3ea8d7a31d3590ce4ccbf66"><div class="ttname"><a href="classetk_1_1_plane.html#abd201fb9f3ea8d7a31d3590ce4ccbf66">etk::Plane::Plane</a></div><div class="ttdeci">Plane(const Plane &_obj)</div><div class="ttdoc">Copy constructor of a Plane. </div><div class="ttdef"><b>Definition:</b> Plane.hpp:46</div></div>
|
|
<div class="ttc" id="namespaceetk_html"><div class="ttname"><a href="namespaceetk.html">etk</a></div><div class="ttdoc">basic namespace of the etk library. (it might contain all the etk fuctions/class/structures without m...</div><div class="ttdef"><b>Definition:</b> Archive.hpp:16</div></div>
|
|
<div class="ttc" id="classetk_1_1_vector3_d_html_ad949b7843b6212277927f0b973ef502b"><div class="ttname"><a href="classetk_1_1_vector3_d.html#ad949b7843b6212277927f0b973ef502b">etk::Vector3D::y</a></div><div class="ttdeci">const T & y() const</div><div class="ttdoc">Get Y value. </div><div class="ttdef"><b>Definition:</b> Vector3D.hpp:415</div></div>
|
|
<div class="ttc" id="classetk_1_1_plane_html_a0022135ae6ce5333c7a39e04f16369af"><div class="ttname"><a href="classetk_1_1_plane.html#a0022135ae6ce5333c7a39e04f16369af">etk::Plane::linearInterpolate</a></div><div class="ttdeci">Plane< T > linearInterpolate(const Plane< T > &_p2, float _factor)</div><div class="ttdoc">Create a linear interpolation of the plane with an other. </div><div class="ttdef"><b>Definition:</b> Plane.hpp:147</div></div>
|
|
<div class="ttc" id="classetk_1_1_plane_html_ac45e649cc99e2a64f93c4efd2f5cd3a0"><div class="ttname"><a href="classetk_1_1_plane.html#ac45e649cc99e2a64f93c4efd2f5cd3a0">etk::Plane::Plane</a></div><div class="ttdeci">Plane()</div><div class="ttdoc">Constructor of a Plane. </div><div class="ttdef"><b>Definition:</b> Plane.hpp:27</div></div>
|
|
<div class="ttc" id="classetk_1_1_vector3_d_html_a4d5e3071c66297840c6a857e580aaabd"><div class="ttname"><a href="classetk_1_1_vector3_d.html#a4d5e3071c66297840c6a857e580aaabd">etk::Vector3D::z</a></div><div class="ttdeci">const T & z() const</div><div class="ttdoc">Get Z value. </div><div class="ttdef"><b>Definition:</b> Vector3D.hpp:422</div></div>
|
|
<div class="ttc" id="classetk_1_1_plane_html_abc2a4dffb33f88c073d03799a81a902e"><div class="ttname"><a href="classetk_1_1_plane.html#abc2a4dffb33f88c073d03799a81a902e">etk::Plane::intersect3</a></div><div class="ttdeci">etk::Vector3D< T > intersect3(const Plane< T > &_p2, const Plane< T > &_p3)</div><div class="ttdoc">Get the intersection between 3 planes. </div><div class="ttdef"><b>Definition:</b> Plane.hpp:116</div></div>
|
|
<div class="ttc" id="types_8hpp_html"><div class="ttname"><a href="types_8hpp.html">types.hpp</a></div></div>
|
|
<div class="ttc" id="classetk_1_1_plane_html_acff6210dea13b9e5d767c017c79dd6a8"><div class="ttname"><a href="classetk_1_1_plane.html#acff6210dea13b9e5d767c017c79dd6a8">etk::Plane::operator!=</a></div><div class="ttdeci">bool operator!=(const Plane< T > &_obj) const</div><div class="ttdoc">In-Equality compare operator with an other object. </div><div class="ttdef"><b>Definition:</b> Plane.hpp:173</div></div>
|
|
<div class="ttc" id="classetk_1_1_plane_html"><div class="ttname"><a href="classetk_1_1_plane.html">etk::Plane</a></div><div class="ttdoc">Plane equation template: define a plane equation. </div><div class="ttdef"><b>Definition:</b> Plane.hpp:19</div></div>
|
|
<div class="ttc" id="classetk_1_1_vector3_d_html_ae24ac042b5e2878119cfb6e321daf3bc"><div class="ttname"><a href="classetk_1_1_vector3_d.html#ae24ac042b5e2878119cfb6e321daf3bc">etk::Vector3D::dot</a></div><div class="ttdeci">float dot(const Vector3D< T > &_obj) const</div><div class="ttdoc">Return the dot product. </div><div class="ttdef"><b>Definition:</b> Vector3D.hpp:157</div></div>
|
|
<div class="ttc" id="classetk_1_1_plane_html_a383afb40ac4cfab41b7d221c283b29f0"><div class="ttname"><a href="classetk_1_1_plane.html#a383afb40ac4cfab41b7d221c283b29f0">etk::Plane::normalize</a></div><div class="ttdeci">void normalize()</div><div class="ttdoc">Normalize tha plane properties. </div><div class="ttdef"><b>Definition:</b> Plane.hpp:88</div></div>
|
|
<div class="ttc" id="classetk_1_1_plane_html_ad91eb9e5c7637f30869fd585c0b77f80"><div class="ttname"><a href="classetk_1_1_plane.html#ad91eb9e5c7637f30869fd585c0b77f80">etk::Plane::Plane</a></div><div class="ttdeci">Plane(etk::Vector3D< T > _normal, T _intercept=0)</div><div class="ttdoc">Constructor of a Plane. </div><div class="ttdef"><b>Definition:</b> Plane.hpp:37</div></div>
|
|
<div class="ttc" id="classetk_1_1_plane_html_aa63645925f576389fc111737c1f6af30"><div class="ttname"><a href="classetk_1_1_plane.html#aa63645925f576389fc111737c1f6af30">etk::Plane::getDistance</a></div><div class="ttdeci">float getDistance(const etk::Vector3D< T > &_point) const</div><div class="ttdoc">Get distance from a point to the plane. </div><div class="ttdef"><b>Definition:</b> Plane.hpp:135</div></div>
|
|
<div class="ttc" id="classetk_1_1_vector3_d_html"><div class="ttname"><a href="classetk_1_1_vector3_d.html">etk::Vector3D</a></div><div class="ttdoc">Vectorial 3-dimention vector (x/y/z) </div><div class="ttdef"><b>Definition:</b> Vector3D.hpp:20</div></div>
|
|
<div class="ttc" id="classetk_1_1_plane_html_a691582e68a6ee38b0c7c9ccf2a6734f3"><div class="ttname"><a href="classetk_1_1_plane.html#a691582e68a6ee38b0c7c9ccf2a6734f3">etk::Plane::setIntercept</a></div><div class="ttdeci">void setIntercept(float _intercept)</div><div class="ttdoc">Set interception value of the plane. </div><div class="ttdef"><b>Definition:</b> Plane.hpp:62</div></div>
|
|
<div class="ttc" id="classetk_1_1_plane_html_a6b0377c24a6b076de9fe112400724523"><div class="ttname"><a href="classetk_1_1_plane.html#a6b0377c24a6b076de9fe112400724523">etk::Plane::calculateIntercept</a></div><div class="ttdeci">void calculateIntercept(const etk::Vector3D< T > &_pointOnPlane)</div><div class="ttdoc">Calculate interception value with a point in the plane. </div><div class="ttdef"><b>Definition:</b> Plane.hpp:82</div></div>
|
|
<div class="ttc" id="classetk_1_1_vector3_d_html_af2bda50fefea08fb49c04b15a61bcb6a"><div class="ttname"><a href="classetk_1_1_vector3_d.html#af2bda50fefea08fb49c04b15a61bcb6a">etk::Vector3D::x</a></div><div class="ttdeci">const T & x() const</div><div class="ttdoc">Get X value. </div><div class="ttdef"><b>Definition:</b> Vector3D.hpp:408</div></div>
|
|
<div class="ttc" id="classetk_1_1_plane_html_ab17849e22fddbc55964ef2990818e2a6"><div class="ttname"><a href="classetk_1_1_plane.html#ab17849e22fddbc55964ef2990818e2a6">etk::Plane::getNormal</a></div><div class="ttdeci">const etk::Vector3D< T > & getNormal() const</div><div class="ttdoc">Get the normal of the plane. </div><div class="ttdef"><b>Definition:</b> Plane.hpp:100</div></div>
|
|
<div class="ttc" id="classetk_1_1_plane_html_aba7b788f733af40c2eb527809b4bf132"><div class="ttname"><a href="classetk_1_1_plane.html#aba7b788f733af40c2eb527809b4bf132">etk::Plane::operator==</a></div><div class="ttdeci">bool operator==(const Plane< T > &_obj) const</div><div class="ttdoc">Equality compare operator with an other object. </div><div class="ttdef"><b>Definition:</b> Plane.hpp:160</div></div>
|
|
<div class="ttc" id="classetk_1_1_vector3_d_html_a0ac0f11a99ebb6b45605da1d373c4bbd"><div class="ttname"><a href="classetk_1_1_vector3_d.html#a0ac0f11a99ebb6b45605da1d373c4bbd">etk::Vector3D::cross</a></div><div class="ttdeci">Vector3D< T > cross(const Vector3D< T > &_obj) const</div><div class="ttdoc">Return the cross product between this and another vector. </div><div class="ttdef"><b>Definition:</b> Vector3D.hpp:267</div></div>
|
|
<div class="ttc" id="classetk_1_1_vector3_d_html_aee1c200271d3691934c0fdcc18bd69ce"><div class="ttname"><a href="classetk_1_1_vector3_d.html#aee1c200271d3691934c0fdcc18bd69ce">etk::Vector3D::normalize</a></div><div class="ttdeci">Vector3D< T > & normalize()</div><div class="ttdoc">Normalize this vector x^2 + y^2 + z^2 = 1. </div><div class="ttdef"><b>Definition:</b> Vector3D.hpp:216</div></div>
|
|
</div><!-- fragment --></div><!-- contents -->
|
|
<!-- HTML footer for doxygen 1.8.8-->
|
|
<!-- start footer part -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated on Mon Oct 24 2016 15:35:46 for Etk: Ewol Tool Kit by  <a href="http://www.doxygen.org/index.html">
|
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
|
</a> 1.8.12
|
|
</small></address>
|
|
</body>
|
|
</html>
|