2021-11-15 11:35:45 +01:00
<!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=9" / >
< meta name = "generator" content = "Doxygen 1.8.17" / >
< meta name = "viewport" content = "width=device-width, initial-scale=1" / >
< title > Leonetienne/Eule: Eule/Quaternion.cpp Source File< / 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 >
< script type = "text/x-mathjax-config" >
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
< / script >
< script type = "text/javascript" async = "async" src = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.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 style = "height: 56px;" >
< td id = "projectalign" style = "padding-left: 0.5em;" >
< div id = "projectname" > Leonetienne/Eule
< / div >
< div id = "projectbrief" > Homemade math library, mainly targetted towards computer graphics< / div >
< / td >
< / tr >
< / tbody >
< / table >
< / div >
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3& dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @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:cf05388f2679ee054f2beb29a391d25f4e673ac3& dn=gpl-2.0.txt GPL-v2 */
$(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 = "dir_29a3c7679fa29c698d8a016dea7d0b26.html" > Eule< / a > < / li > < / ul >
< / div >
< / div > <!-- top -->
< div class = "header" >
< div class = "headertitle" >
< div class = "title" > Quaternion.cpp< / div > < / div >
< / div > <!-- header -->
< div class = "contents" >
< a href = "Quaternion_8cpp.html" > Go to the documentation of this file.< / a > < div class = "fragment" > < div class = "line" > < a name = "l00001" > < / a > < span class = "lineno" > 1< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "Quaternion_8h.html" > Quaternion.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00002" > < / a > < span class = "lineno" > 2< / span >   < span class = "preprocessor" > #include " < a class = "code" href = "Constants_8h.html" > Constants.h< / a > " < / span > < / div >
< div class = "line" > < a name = "l00003" > < / a > < span class = "lineno" > 3< / span >   < / div >
< div class = "line" > < a name = "l00004" > < / a > < span class = "lineno" > 4< / span >   < span class = "comment" > //#define _EULE_NO_INTRINSICS_< / span > < / div >
< div class = "line" > < a name = "l00005" > < / a > < span class = "lineno" > 5< / span >   < span class = "preprocessor" > #ifndef _EULE_NO_INTRINSICS_< / span > < / div >
< div class = "line" > < a name = "l00006" > < / a > < span class = "lineno" > 6< / span >   < span class = "preprocessor" > #include < immintrin.h> < / span > < / div >
< div class = "line" > < a name = "l00007" > < / a > < span class = "lineno" > 7< / span >   < span class = "preprocessor" > #endif< / 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 = "keyword" > using namespace < / span > < a class = "code" href = "namespaceEule.html" > Eule< / a > ;< / div >
< div class = "line" > < a name = "l00010" > < / a > < span class = "lineno" > 10< / span >   < / div >
< div class = "line" > < a name = "l00011" > < / a > < span class = "lineno" > < a class = "line" href = "classEule_1_1Quaternion.html#abcc01358aada56ea5f0db4da18aaf77d" > 11< / a > < / span >   < a class = "code" href = "classEule_1_1Quaternion.html#abcc01358aada56ea5f0db4da18aaf77d" > Quaternion::Quaternion< / a > ()< / div >
< div class = "line" > < a name = "l00012" > < / a > < span class = "lineno" > 12< / span >   {< / div >
< div class = "line" > < a name = "l00013" > < / a > < span class = "lineno" > 13< / span >   v = < a class = "code" href = "namespaceEule.html#ab1f7f26891b56b960ca6cca5cc1cc44e" > Vector4d< / a > (0, 0, 0, 1);< / div >
< div class = "line" > < a name = "l00014" > < / a > < span class = "lineno" > 14< / span >   < span class = "keywordflow" > return< / span > ;< / div >
< div class = "line" > < a name = "l00015" > < / a > < span class = "lineno" > 15< / span >   }< / div >
< div class = "line" > < a name = "l00016" > < / a > < span class = "lineno" > 16< / span >   < / div >
< div class = "line" > < a name = "l00017" > < / a > < span class = "lineno" > < a class = "line" href = "classEule_1_1Quaternion.html#a2dc0ed0c7773600cf443151573287e4a" > 17< / a > < / span >   < a class = "code" href = "classEule_1_1Quaternion.html#abcc01358aada56ea5f0db4da18aaf77d" > Quaternion::Quaternion< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classEule_1_1Vector4.html" > Vector4d< / a > values)< / div >
< div class = "line" > < a name = "l00018" > < / a > < span class = "lineno" > 18< / span >   {< / div >
< div class = "line" > < a name = "l00019" > < / a > < span class = "lineno" > 19< / span >   v = values;< / div >
< div class = "line" > < a name = "l00020" > < / a > < span class = "lineno" > 20< / span >   < span class = "keywordflow" > return< / span > ;< / div >
< div class = "line" > < a name = "l00021" > < / a > < span class = "lineno" > 21< / span >   }< / div >
< div class = "line" > < a name = "l00022" > < / a > < span class = "lineno" > 22< / span >   < / div >
< div class = "line" > < a name = "l00023" > < / a > < span class = "lineno" > < a class = "line" href = "classEule_1_1Quaternion.html#ab3b8862f9fd86c7ebb426b4940d08b39" > 23< / a > < / span >   < a class = "code" href = "classEule_1_1Quaternion.html#abcc01358aada56ea5f0db4da18aaf77d" > Quaternion::Quaternion< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > & q)< / div >
< div class = "line" > < a name = "l00024" > < / a > < span class = "lineno" > 24< / span >   {< / div >
< div class = "line" > < a name = "l00025" > < / a > < span class = "lineno" > 25< / span >   v = q.v;< / div >
< div class = "line" > < a name = "l00026" > < / a > < span class = "lineno" > 26< / span >   < span class = "keywordflow" > return< / span > ;< / div >
< div class = "line" > < a name = "l00027" > < / a > < span class = "lineno" > 27< / span >   }< / div >
< div class = "line" > < a name = "l00028" > < / a > < span class = "lineno" > 28< / span >   < / div >
< div class = "line" > < a name = "l00029" > < / a > < span class = "lineno" > < a class = "line" href = "classEule_1_1Quaternion.html#a1e4c6f8984bb7a9ae1ffed45adffe02f" > 29< / a > < / span >   < a class = "code" href = "classEule_1_1Quaternion.html#abcc01358aada56ea5f0db4da18aaf77d" > Quaternion::Quaternion< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classEule_1_1Vector3.html" > Vector3d< / a > eulerAngles)< / div >
< div class = "line" > < a name = "l00030" > < / a > < span class = "lineno" > 30< / span >   {< / div >
2021-11-15 11:46:15 +01:00
< div class = "line" > < a name = "l00031" > < / a > < span class = "lineno" > 31< / span >   < a class = "code" href = "classEule_1_1Vector3.html" > Vector3d< / a > eulerRad = eulerAngles * < a class = "code" href = "Constants_8h.html#a0688d82670a3ba9d40853859003c64df" > Deg2Rad< / a > ;< / div >
2021-11-15 11:35:45 +01:00
< div class = "line" > < a name = "l00032" > < / a > < span class = "lineno" > 32< / span >   < / div >
< div class = "line" > < a name = "l00033" > < / a > < span class = "lineno" > 33< / span >   < span class = "preprocessor" > #ifndef _EULE_NO_INTRINSICS_< / span > < / div >
< div class = "line" > < a name = "l00034" > < / a > < span class = "lineno" > 34< / span >   < / div >
< div class = "line" > < a name = "l00035" > < / a > < span class = "lineno" > 35< / span >   < span class = "comment" > // Calculate sine and cos values< / span > < / div >
< div class = "line" > < a name = "l00036" > < / a > < span class = "lineno" > 36< / span >   __m256d __vec = _mm256_set_pd(0, eulerRad.< a class = "code" href = "classEule_1_1Vector3.html#a754b1a46c44a0fde99e670e174dba674" > z< / a > , eulerRad.< a class = "code" href = "classEule_1_1Vector3.html#a716e038c7b599bc5c741dfc0a3c42146" > y< / a > , eulerRad.< a class = "code" href = "classEule_1_1Vector3.html#a3d7770a583354b1dfc2f6af1092adc1b" > x< / a > );< / div >
< div class = "line" > < a name = "l00037" > < / a > < span class = "lineno" > 37< / span >   __vec = _mm256_mul_pd(__vec, _mm256_set1_pd(0.5));< / div >
< div class = "line" > < a name = "l00038" > < / a > < span class = "lineno" > 38< / span >   __m256d __cos;< / div >
< div class = "line" > < a name = "l00039" > < / a > < span class = "lineno" > 39< / span >   __m256d __sin = _mm256_sincos_pd(& __cos, __vec);< / 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 >   < span class = "comment" > // Create multiplication vectors< / span > < / div >
< div class = "line" > < a name = "l00042" > < / a > < span class = "lineno" > 42< / span >   < span class = "keywordtype" > double< / span > sin[4];< / div >
< div class = "line" > < a name = "l00043" > < / a > < span class = "lineno" > 43< / span >   < span class = "keywordtype" > double< / span > cos[4];< / div >
< div class = "line" > < a name = "l00044" > < / a > < span class = "lineno" > 44< / span >   < / div >
< div class = "line" > < a name = "l00045" > < / a > < span class = "lineno" > 45< / span >   _mm256_storeu_pd(sin, __sin);< / div >
< div class = "line" > < a name = "l00046" > < / a > < span class = "lineno" > 46< / span >   _mm256_storeu_pd(cos, __cos);< / div >
< div class = "line" > < a name = "l00047" > < / a > < span class = "lineno" > 47< / span >   < / div >
< div class = "line" > < a name = "l00048" > < / a > < span class = "lineno" > 48< / span >   __m256d __a = _mm256_set_pd(cos[0], cos[0], sin[0], cos[0]);< / div >
< div class = "line" > < a name = "l00049" > < / a > < span class = "lineno" > 49< / span >   __m256d __b = _mm256_set_pd(cos[1], sin[1], cos[1], cos[1]);< / div >
< div class = "line" > < a name = "l00050" > < / a > < span class = "lineno" > 50< / span >   __m256d __c = _mm256_set_pd(sin[2], cos[2], cos[2], cos[2]);< / div >
< div class = "line" > < a name = "l00051" > < / a > < span class = "lineno" > 51< / span >   < / div >
< div class = "line" > < a name = "l00052" > < / a > < span class = "lineno" > 52< / span >   __m256d __d = _mm256_set_pd(sin[0], sin[0], cos[0], sin[0]);< / div >
< div class = "line" > < a name = "l00053" > < / a > < span class = "lineno" > 53< / span >   __m256d __e = _mm256_set_pd(sin[1], cos[1], sin[1], sin[1]);< / div >
< div class = "line" > < a name = "l00054" > < / a > < span class = "lineno" > 54< / span >   __m256d __f = _mm256_set_pd(cos[2], sin[2], sin[2], sin[2]);< / div >
< div class = "line" > < a name = "l00055" > < / a > < span class = "lineno" > 55< / span >   < / div >
< div class = "line" > < a name = "l00056" > < / a > < span class = "lineno" > 56< / span >   < span class = "comment" > // Multiply them< / span > < / div >
< div class = "line" > < a name = "l00057" > < / a > < span class = "lineno" > 57< / span >   __m256d __abc;< / div >
< div class = "line" > < a name = "l00058" > < / a > < span class = "lineno" > 58< / span >   __abc = _mm256_mul_pd(__a, __b);< / div >
< div class = "line" > < a name = "l00059" > < / a > < span class = "lineno" > 59< / span >   __abc = _mm256_mul_pd(__abc, __c);< / div >
< div class = "line" > < a name = "l00060" > < / a > < span class = "lineno" > 60< / span >   < / div >
< div class = "line" > < a name = "l00061" > < / a > < span class = "lineno" > 61< / span >   __m256d __def;< / div >
< div class = "line" > < a name = "l00062" > < / a > < span class = "lineno" > 62< / span >   __def = _mm256_mul_pd(__d, __e);< / div >
< div class = "line" > < a name = "l00063" > < / a > < span class = "lineno" > 63< / span >   __def = _mm256_mul_pd(__def, __f);< / div >
< div class = "line" > < a name = "l00064" > < / a > < span class = "lineno" > 64< / span >   < / div >
< div class = "line" > < a name = "l00065" > < / a > < span class = "lineno" > 65< / span >   < span class = "comment" > // Extract results< / span > < / div >
< div class = "line" > < a name = "l00066" > < / a > < span class = "lineno" > 66< / span >   < span class = "keywordtype" > double< / span > abc[4];< / div >
< div class = "line" > < a name = "l00067" > < / a > < span class = "lineno" > 67< / span >   < span class = "keywordtype" > double< / span > def[4];< / div >
< div class = "line" > < a name = "l00068" > < / a > < span class = "lineno" > 68< / span >   < / div >
< div class = "line" > < a name = "l00069" > < / a > < span class = "lineno" > 69< / span >   _mm256_storeu_pd(abc, __abc);< / div >
< div class = "line" > < a name = "l00070" > < / a > < span class = "lineno" > 70< / span >   _mm256_storeu_pd(def, __def);< / div >
< div class = "line" > < a name = "l00071" > < / a > < span class = "lineno" > 71< / span >   < / div >
< div class = "line" > < a name = "l00072" > < / a > < span class = "lineno" > 72< / span >   < span class = "comment" > // Sum them up< / span > < / div >
< div class = "line" > < a name = "l00073" > < / a > < span class = "lineno" > 73< / span >   v.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > = abc[0] + def[0];< / div >
< div class = "line" > < a name = "l00074" > < / a > < span class = "lineno" > 74< / span >   v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > = abc[1] - def[1];< / div >
< div class = "line" > < a name = "l00075" > < / a > < span class = "lineno" > 75< / span >   v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > = abc[2] + def[2];< / div >
< div class = "line" > < a name = "l00076" > < / a > < span class = "lineno" > 76< / span >   v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > = abc[3] - def[3];< / div >
< div class = "line" > < a name = "l00077" > < / a > < span class = "lineno" > 77< / span >   < / div >
< div class = "line" > < a name = "l00078" > < / a > < span class = "lineno" > 78< / span >   < span class = "preprocessor" > #else< / span > < / div >
< div class = "line" > < a name = "l00079" > < / a > < span class = "lineno" > 79< / span >   < / div >
< div class = "line" > < a name = "l00080" > < / a > < span class = "lineno" > 80< / span >   < span class = "keyword" > const< / span > < span class = "keywordtype" > double< / span > cy = cos(eulerRad.< a class = "code" href = "classEule_1_1Vector3.html#a754b1a46c44a0fde99e670e174dba674" > z< / a > * 0.5);< / div >
< div class = "line" > < a name = "l00081" > < / a > < span class = "lineno" > 81< / span >   < span class = "keyword" > const< / span > < span class = "keywordtype" > double< / span > sy = sin(eulerRad.< a class = "code" href = "classEule_1_1Vector3.html#a754b1a46c44a0fde99e670e174dba674" > z< / a > * 0.5);< / div >
< div class = "line" > < a name = "l00082" > < / a > < span class = "lineno" > 82< / span >   < span class = "keyword" > const< / span > < span class = "keywordtype" > double< / span > cp = cos(eulerRad.< a class = "code" href = "classEule_1_1Vector3.html#a716e038c7b599bc5c741dfc0a3c42146" > y< / a > * 0.5);< / div >
< div class = "line" > < a name = "l00083" > < / a > < span class = "lineno" > 83< / span >   < span class = "keyword" > const< / span > < span class = "keywordtype" > double< / span > sp = sin(eulerRad.< a class = "code" href = "classEule_1_1Vector3.html#a716e038c7b599bc5c741dfc0a3c42146" > y< / a > * 0.5);< / div >
< div class = "line" > < a name = "l00084" > < / a > < span class = "lineno" > 84< / span >   < span class = "keyword" > const< / span > < span class = "keywordtype" > double< / span > cr = cos(eulerRad.< a class = "code" href = "classEule_1_1Vector3.html#a3d7770a583354b1dfc2f6af1092adc1b" > x< / a > * 0.5);< / div >
< div class = "line" > < a name = "l00085" > < / a > < span class = "lineno" > 85< / span >   < span class = "keyword" > const< / span > < span class = "keywordtype" > double< / span > sr = sin(eulerRad.< a class = "code" href = "classEule_1_1Vector3.html#a3d7770a583354b1dfc2f6af1092adc1b" > x< / a > * 0.5);< / div >
< div class = "line" > < a name = "l00086" > < / a > < span class = "lineno" > 86< / span >   < / div >
< div class = "line" > < a name = "l00087" > < / a > < span class = "lineno" > 87< / span >   v.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > = cr * cp * cy + sr * sp * sy;< / div >
< div class = "line" > < a name = "l00088" > < / a > < span class = "lineno" > 88< / span >   v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > = sr * cp * cy - cr * sp * sy;< / div >
< div class = "line" > < a name = "l00089" > < / a > < span class = "lineno" > 89< / span >   v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > = cr * sp * cy + sr * cp * sy;< / div >
< div class = "line" > < a name = "l00090" > < / a > < span class = "lineno" > 90< / span >   v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > = cr * cp * sy - sr * sp * cy;< / div >
< div class = "line" > < a name = "l00091" > < / a > < span class = "lineno" > 91< / span >   < / div >
< div class = "line" > < a name = "l00092" > < / a > < span class = "lineno" > 92< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "line" > < a name = "l00093" > < / a > < span class = "lineno" > 93< / span >   < / div >
< div class = "line" > < a name = "l00094" > < / a > < span class = "lineno" > 94< / span >   < span class = "keywordflow" > return< / span > ;< / div >
< div class = "line" > < a name = "l00095" > < / a > < span class = "lineno" > 95< / span >   }< / div >
< div class = "line" > < a name = "l00096" > < / a > < span class = "lineno" > 96< / span >   < / div >
< div class = "line" > < a name = "l00097" > < / a > < span class = "lineno" > < a class = "line" href = "classEule_1_1Quaternion.html#a5f834c2ca469cd71edc8a23fdc3f56e8" > 97< / a > < / span >   < a class = "code" href = "classEule_1_1Quaternion.html#a5f834c2ca469cd71edc8a23fdc3f56e8" > Quaternion::~Quaternion< / a > ()< / div >
< div class = "line" > < a name = "l00098" > < / a > < span class = "lineno" > 98< / span >   {< / div >
< div class = "line" > < a name = "l00099" > < / a > < span class = "lineno" > 99< / span >   < span class = "keywordflow" > return< / span > ;< / div >
< div class = "line" > < a name = "l00100" > < / a > < span class = "lineno" > 100< / span >   }< / div >
< div class = "line" > < a name = "l00101" > < / a > < span class = "lineno" > 101< / span >   < / div >
< div class = "line" > < a name = "l00102" > < / a > < span class = "lineno" > < a class = "line" href = "classEule_1_1Quaternion.html#a9cf7fd3318ffdd50e6567c84d24c20e9" > 102< / a > < / span >   < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > < a class = "code" href = "classEule_1_1Quaternion.html#a9cf7fd3318ffdd50e6567c84d24c20e9" > Quaternion::operator= < / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > & q)< / div >
< div class = "line" > < a name = "l00103" > < / a > < span class = "lineno" > 103< / span >   {< / div >
< div class = "line" > < a name = "l00104" > < / a > < span class = "lineno" > 104< / span >   InvalidateCache();< / div >
< div class = "line" > < a name = "l00105" > < / a > < span class = "lineno" > 105< / span >   < / div >
< div class = "line" > < a name = "l00106" > < / a > < span class = "lineno" > 106< / span >   v = q.v;< / div >
< div class = "line" > < a name = "l00107" > < / a > < span class = "lineno" > 107< / span >   < / div >
< div class = "line" > < a name = "l00108" > < / a > < span class = "lineno" > 108< / span >   < span class = "keywordflow" > return< / span > (*< span class = "keyword" > this< / span > );< / div >
< div class = "line" > < a name = "l00109" > < / a > < span class = "lineno" > 109< / span >   }< / div >
< div class = "line" > < a name = "l00110" > < / a > < span class = "lineno" > 110< / span >   < / div >
< div class = "line" > < a name = "l00111" > < / a > < span class = "lineno" > < a class = "line" href = "classEule_1_1Quaternion.html#ab178e12364d87fb676d85695e491361f" > 111< / a > < / span >   < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > < a class = "code" href = "classEule_1_1Quaternion.html#ab178e12364d87fb676d85695e491361f" > Quaternion::operator* < / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > & q)< span class = "keyword" > const< / span > < / div >
< div class = "line" > < a name = "l00112" > < / a > < span class = "lineno" > 112< / span >   < span class = "keyword" > < / span > {< / div >
< div class = "line" > < a name = "l00113" > < / a > < span class = "lineno" > 113< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "classEule_1_1Quaternion.html#abcc01358aada56ea5f0db4da18aaf77d" > Quaternion< / a > (< a class = "code" href = "namespaceEule.html#ab1f7f26891b56b960ca6cca5cc1cc44e" > Vector4d< / a > (< / div >
< div class = "line" > < a name = "l00114" > < / a > < span class = "lineno" > 114< / span >   v.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > + v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > + v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > - v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > ,< / div >
< div class = "line" > < a name = "l00115" > < / a > < span class = "lineno" > 115< / span >   v.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > + v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > + v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > - v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > ,< / div >
< div class = "line" > < a name = "l00116" > < / a > < span class = "lineno" > 116< / span >   v.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > + v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > + v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > - v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > ,< / div >
< div class = "line" > < a name = "l00117" > < / a > < span class = "lineno" > 117< / span >   v.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > - v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > - v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > - v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > < / div >
< div class = "line" > < a name = "l00118" > < / a > < span class = "lineno" > 118< / span >   ));< / div >
< div class = "line" > < a name = "l00119" > < / a > < span class = "lineno" > 119< / span >   }< / div >
< div class = "line" > < a name = "l00120" > < / a > < span class = "lineno" > 120< / span >   < / div >
< div class = "line" > < a name = "l00121" > < / a > < span class = "lineno" > 121< / span >   < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > < a class = "code" href = "classEule_1_1Quaternion.html#ab178e12364d87fb676d85695e491361f" > Quaternion::operator*< / a > (< span class = "keyword" > const< / span > < span class = "keywordtype" > double< / span > scale)< span class = "keyword" > const< / span > < / div >
< div class = "line" > < a name = "l00122" > < / a > < span class = "lineno" > 122< / span >   < span class = "keyword" > < / span > {< / div >
< div class = "line" > < a name = "l00123" > < / a > < span class = "lineno" > 123< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "classEule_1_1Quaternion.html#abcc01358aada56ea5f0db4da18aaf77d" > Quaternion< / a > (v * scale);< / div >
< div class = "line" > < a name = "l00124" > < / a > < span class = "lineno" > 124< / span >   }< / div >
< div class = "line" > < a name = "l00125" > < / a > < span class = "lineno" > 125< / span >   < / div >
< div class = "line" > < a name = "l00126" > < / a > < span class = "lineno" > < a class = "line" href = "classEule_1_1Quaternion.html#a23488d14e31db8cec75a0e8c6f38c70a" > 126< / a > < / span >   < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > < a class = "code" href = "classEule_1_1Quaternion.html#a23488d14e31db8cec75a0e8c6f38c70a" > Quaternion::operator/ < / a > (< a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > & q)< span class = "keyword" > const< / span > < / div >
< div class = "line" > < a name = "l00127" > < / a > < span class = "lineno" > 127< / span >   < span class = "keyword" > < / span > {< / div >
< div class = "line" > < a name = "l00128" > < / a > < span class = "lineno" > 128< / span >   < span class = "keywordflow" > return< / span > ((*< span class = "keyword" > this< / span > ) * (q.< a class = "code" href = "classEule_1_1Quaternion.html#a704d63f0f2cd2d50fd61562e3c2eb576" > Inverse< / a > ()));< / div >
< div class = "line" > < a name = "l00129" > < / a > < span class = "lineno" > 129< / span >   }< / div >
< div class = "line" > < a name = "l00130" > < / a > < span class = "lineno" > 130< / span >   < / div >
< div class = "line" > < a name = "l00131" > < / a > < span class = "lineno" > < a class = "line" href = "classEule_1_1Quaternion.html#a8941e3b43aabd15e2471e57ebd49c8a7" > 131< / a > < / span >   < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > & < a class = "code" href = "classEule_1_1Quaternion.html#a8941e3b43aabd15e2471e57ebd49c8a7" > Quaternion::operator*= < / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > & q)< / div >
< div class = "line" > < a name = "l00132" > < / a > < span class = "lineno" > 132< / span >   {< / div >
< div class = "line" > < a name = "l00133" > < / a > < span class = "lineno" > 133< / span >   InvalidateCache();< / div >
< div class = "line" > < a name = "l00134" > < / a > < span class = "lineno" > 134< / span >   < / div >
< div class = "line" > < a name = "l00135" > < / a > < span class = "lineno" > 135< / span >   < a class = "code" href = "classEule_1_1Vector4.html" > Vector4d< / a > bufr = v;< / div >
< div class = "line" > < a name = "l00136" > < / a > < span class = "lineno" > 136< / span >   v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > = bufr.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > + bufr.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > + bufr.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > - bufr.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > ; < span class = "comment" > // x< / span > < / div >
< div class = "line" > < a name = "l00137" > < / a > < span class = "lineno" > 137< / span >   v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > = bufr.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > + bufr.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > + bufr.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > - bufr.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > ; < span class = "comment" > // y< / span > < / div >
< div class = "line" > < a name = "l00138" > < / a > < span class = "lineno" > 138< / span >   v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > = bufr.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > + bufr.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > + bufr.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > - bufr.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > ; < span class = "comment" > // z< / span > < / div >
< div class = "line" > < a name = "l00139" > < / a > < span class = "lineno" > 139< / span >   v.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > = bufr.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > - bufr.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > - bufr.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > - bufr.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > * q.v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > ; < span class = "comment" > // w< / span > < / div >
< div class = "line" > < a name = "l00140" > < / a > < span class = "lineno" > 140< / span >   < / div >
< div class = "line" > < a name = "l00141" > < / a > < span class = "lineno" > 141< / span >   < span class = "keywordflow" > return< / span > (*< span class = "keyword" > this< / span > );< / div >
< div class = "line" > < a name = "l00142" > < / a > < span class = "lineno" > 142< / span >   }< / div >
< div class = "line" > < a name = "l00143" > < / a > < span class = "lineno" > 143< / span >   < / div >
< div class = "line" > < a name = "l00144" > < / a > < span class = "lineno" > 144< / span >   < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > & < a class = "code" href = "classEule_1_1Quaternion.html#a8941e3b43aabd15e2471e57ebd49c8a7" > Quaternion::operator*=< / a > (< span class = "keyword" > const< / span > < span class = "keywordtype" > double< / span > scale)< / div >
< div class = "line" > < a name = "l00145" > < / a > < span class = "lineno" > 145< / span >   {< / div >
< div class = "line" > < a name = "l00146" > < / a > < span class = "lineno" > 146< / span >   InvalidateCache();< / div >
< div class = "line" > < a name = "l00147" > < / a > < span class = "lineno" > 147< / span >   < / div >
< div class = "line" > < a name = "l00148" > < / a > < span class = "lineno" > 148< / span >   v *= scale;< / div >
< div class = "line" > < a name = "l00149" > < / a > < span class = "lineno" > 149< / span >   < span class = "keywordflow" > return< / span > (*< span class = "keyword" > this< / span > );< / div >
< div class = "line" > < a name = "l00150" > < / a > < span class = "lineno" > 150< / span >   }< / div >
< div class = "line" > < a name = "l00151" > < / a > < span class = "lineno" > 151< / span >   < / div >
< div class = "line" > < a name = "l00152" > < / a > < span class = "lineno" > < a class = "line" href = "classEule_1_1Quaternion.html#aa071c90a64d21cbb8109366bf2449838" > 152< / a > < / span >   < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > & < a class = "code" href = "classEule_1_1Quaternion.html#aa071c90a64d21cbb8109366bf2449838" > Quaternion::operator/= < / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > & q)< / div >
< div class = "line" > < a name = "l00153" > < / a > < span class = "lineno" > 153< / span >   {< / div >
< div class = "line" > < a name = "l00154" > < / a > < span class = "lineno" > 154< / span >   InvalidateCache();< / div >
< div class = "line" > < a name = "l00155" > < / a > < span class = "lineno" > 155< / span >   < / div >
< div class = "line" > < a name = "l00156" > < / a > < span class = "lineno" > 156< / span >   (*this) = (*this) * q.< a class = "code" href = "classEule_1_1Quaternion.html#a704d63f0f2cd2d50fd61562e3c2eb576" > Inverse< / a > ();< / div >
< div class = "line" > < a name = "l00157" > < / a > < span class = "lineno" > 157< / span >   < span class = "keywordflow" > return< / span > (*< span class = "keyword" > this< / span > );< / div >
< div class = "line" > < a name = "l00158" > < / a > < span class = "lineno" > 158< / span >   }< / div >
< div class = "line" > < a name = "l00159" > < / a > < span class = "lineno" > 159< / span >   < / div >
< div class = "line" > < a name = "l00160" > < / a > < span class = "lineno" > < a class = "line" href = "classEule_1_1Quaternion.html#a29aeab8de1a33ae8c043e3438829835f" > 160< / a > < / span >   < a class = "code" href = "classEule_1_1Vector3.html" > Vector3d< / a > < a class = "code" href = "classEule_1_1Quaternion.html#ab178e12364d87fb676d85695e491361f" > Quaternion::operator*< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classEule_1_1Vector3.html" > Vector3d< / a > & p)< span class = "keyword" > const< / span > < / div >
< div class = "line" > < a name = "l00161" > < / a > < span class = "lineno" > 161< / span >   < span class = "keyword" > < / span > {< / div >
< div class = "line" > < a name = "l00162" > < / a > < span class = "lineno" > 162< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "classEule_1_1Quaternion.html#aaeb89218e886e605c6e2a87c9cb773a4" > RotateVector< / a > (p);< / div >
< div class = "line" > < a name = "l00163" > < / a > < span class = "lineno" > 163< / 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" > < a class = "line" href = "classEule_1_1Quaternion.html#a516d4dcc7c6f13d8846070b72f588210" > 165< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classEule_1_1Quaternion.html#a516d4dcc7c6f13d8846070b72f588210" > Quaternion::operator== < / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > & q)< span class = "keyword" > const< / span > < / div >
< div class = "line" > < a name = "l00166" > < / a > < span class = "lineno" > 166< / span >   < span class = "keyword" > < / span > {< / div >
< div class = "line" > < a name = "l00167" > < / a > < span class = "lineno" > 167< / span >   < span class = "keywordflow" > return< / span > (v.< a class = "code" href = "classEule_1_1Vector4.html#af49ea98d369420a07158d705eab60479" > Similar< / a > (q.v)) || (v.< a class = "code" href = "classEule_1_1Vector4.html#af49ea98d369420a07158d705eab60479" > Similar< / a > (q.v * -1));< / div >
< div class = "line" > < a name = "l00168" > < / a > < span class = "lineno" > 168< / span >   }< / div >
< div class = "line" > < a name = "l00169" > < / a > < span class = "lineno" > 169< / span >   < / div >
< div class = "line" > < a name = "l00170" > < / a > < span class = "lineno" > < a class = "line" href = "classEule_1_1Quaternion.html#a1a97201d7deb56f543d65be9741cd2bd" > 170< / a > < / span >   < span class = "keywordtype" > bool< / span > < a class = "code" href = "classEule_1_1Quaternion.html#a1a97201d7deb56f543d65be9741cd2bd" > Quaternion::operator!= < / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > & q)< span class = "keyword" > const< / span > < / div >
< div class = "line" > < a name = "l00171" > < / a > < span class = "lineno" > 171< / span >   < span class = "keyword" > < / span > {< / div >
< div class = "line" > < a name = "l00172" > < / a > < span class = "lineno" > 172< / span >   < span class = "keywordflow" > return< / span > (!v.< a class = "code" href = "classEule_1_1Vector4.html#af49ea98d369420a07158d705eab60479" > Similar< / a > (q.v)) & & (!v.< a class = "code" href = "classEule_1_1Vector4.html#af49ea98d369420a07158d705eab60479" > Similar< / a > (q.v * -1));< / div >
< div class = "line" > < a name = "l00173" > < / a > < span class = "lineno" > 173< / span >   }< / div >
< div class = "line" > < a name = "l00174" > < / a > < span class = "lineno" > 174< / span >   < / div >
< div class = "line" > < a name = "l00175" > < / a > < span class = "lineno" > < a class = "line" href = "classEule_1_1Quaternion.html#a704d63f0f2cd2d50fd61562e3c2eb576" > 175< / a > < / span >   < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > < a class = "code" href = "classEule_1_1Quaternion.html#a704d63f0f2cd2d50fd61562e3c2eb576" > Quaternion::Inverse< / a > ()< span class = "keyword" > const< / span > < / div >
< div class = "line" > < a name = "l00176" > < / a > < span class = "lineno" > 176< / span >   < span class = "keyword" > < / span > {< / div >
< div class = "line" > < a name = "l00177" > < / a > < span class = "lineno" > 177< / span >   < span class = "keywordflow" > if< / span > (!isCacheUpToDate_inverse)< / 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 >   cache_inverse = (< a class = "code" href = "classEule_1_1Quaternion.html#aa5333ab28dbe4d5ae15ab5dbc36b90ca" > Conjugate< / a > () * (1.0 / v.< a class = "code" href = "classEule_1_1Vector4.html#a2cd0433c99303b8934993b2fd2aa1c6e" > SqrMagnitude< / a > ())).v;< / div >
< div class = "line" > < a name = "l00180" > < / a > < span class = "lineno" > 180< / span >   < / div >
< div class = "line" > < a name = "l00181" > < / a > < span class = "lineno" > 181< / span >   isCacheUpToDate_inverse = < span class = "keyword" > true< / span > ;< / div >
< div class = "line" > < a name = "l00182" > < / a > < span class = "lineno" > 182< / span >   }< / div >
< div class = "line" > < a name = "l00183" > < / a > < span class = "lineno" > 183< / span >   < / div >
< div class = "line" > < a name = "l00184" > < / a > < span class = "lineno" > 184< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "classEule_1_1Quaternion.html#abcc01358aada56ea5f0db4da18aaf77d" > Quaternion< / a > (cache_inverse);< / div >
< div class = "line" > < a name = "l00185" > < / a > < span class = "lineno" > 185< / span >   }< / div >
< div class = "line" > < a name = "l00186" > < / a > < span class = "lineno" > 186< / span >   < / div >
< div class = "line" > < a name = "l00187" > < / a > < span class = "lineno" > < a class = "line" href = "classEule_1_1Quaternion.html#aa5333ab28dbe4d5ae15ab5dbc36b90ca" > 187< / a > < / span >   < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > < a class = "code" href = "classEule_1_1Quaternion.html#aa5333ab28dbe4d5ae15ab5dbc36b90ca" > Quaternion::Conjugate< / a > ()< span class = "keyword" > const< / span > < / div >
< div class = "line" > < a name = "l00188" > < / a > < span class = "lineno" > 188< / span >   < span class = "keyword" > < / span > {< / div >
< div class = "line" > < a name = "l00189" > < / a > < span class = "lineno" > 189< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "classEule_1_1Quaternion.html#abcc01358aada56ea5f0db4da18aaf77d" > Quaternion< / a > (< a class = "code" href = "namespaceEule.html#ab1f7f26891b56b960ca6cca5cc1cc44e" > Vector4d< / a > (-v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > , -v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > , -v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > , v.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > ));< / div >
< div class = "line" > < a name = "l00190" > < / a > < span class = "lineno" > 190< / span >   }< / div >
< div class = "line" > < a name = "l00191" > < / a > < span class = "lineno" > 191< / span >   < / div >
< div class = "line" > < a name = "l00192" > < / a > < span class = "lineno" > < a class = "line" href = "classEule_1_1Quaternion.html#affb1a8ac42e356ee5efb304ca8df38ca" > 192< / a > < / span >   < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > < a class = "code" href = "classEule_1_1Quaternion.html#affb1a8ac42e356ee5efb304ca8df38ca" > Quaternion::UnitQuaternion< / a > ()< span class = "keyword" > const< / span > < / div >
< div class = "line" > < a name = "l00193" > < / a > < span class = "lineno" > 193< / span >   < span class = "keyword" > < / span > {< / div >
< div class = "line" > < a name = "l00194" > < / a > < span class = "lineno" > 194< / span >   < span class = "keywordflow" > return< / span > (*< span class = "keyword" > this< / span > ) * (1.0 / v.< a class = "code" href = "classEule_1_1Vector4.html#a35c6fccb7a02095b595575903b590dd2" > Magnitude< / a > ());< / div >
< div class = "line" > < a name = "l00195" > < / a > < span class = "lineno" > 195< / span >   }< / div >
< div class = "line" > < a name = "l00196" > < / a > < span class = "lineno" > 196< / span >   < / div >
< div class = "line" > < a name = "l00197" > < / a > < span class = "lineno" > < a class = "line" href = "classEule_1_1Quaternion.html#aaeb89218e886e605c6e2a87c9cb773a4" > 197< / a > < / span >   < a class = "code" href = "classEule_1_1Vector3.html" > Vector3d< / a > < a class = "code" href = "classEule_1_1Quaternion.html#aaeb89218e886e605c6e2a87c9cb773a4" > Quaternion::RotateVector< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classEule_1_1Vector3.html" > Vector3d< / a > & vec)< span class = "keyword" > const< / span > < / div >
< div class = "line" > < a name = "l00198" > < / a > < span class = "lineno" > 198< / span >   < span class = "keyword" > < / span > {< / div >
< div class = "line" > < a name = "l00199" > < / a > < span class = "lineno" > 199< / span >   < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > pure(< a class = "code" href = "namespaceEule.html#ab1f7f26891b56b960ca6cca5cc1cc44e" > Vector4d< / a > (vec.< a class = "code" href = "classEule_1_1Vector3.html#a3d7770a583354b1dfc2f6af1092adc1b" > x< / a > , vec.< a class = "code" href = "classEule_1_1Vector3.html#a716e038c7b599bc5c741dfc0a3c42146" > y< / a > , vec.< a class = "code" href = "classEule_1_1Vector3.html#a754b1a46c44a0fde99e670e174dba674" > z< / a > , 0));< / div >
< div class = "line" > < a name = "l00200" > < / a > < span class = "lineno" > 200< / span >   < / div >
< div class = "line" > < a name = "l00201" > < / a > < span class = "lineno" > 201< / span >   < span class = "comment" > //Quaternion f = Conjugate() * pure * (*this);< / span > < / div >
< div class = "line" > < a name = "l00202" > < / a > < span class = "lineno" > 202< / span >   < span class = "comment" > //Quaternion f = Inverse().Conjugate() * pure * (this-> Inverse());< / span > < / div >
< div class = "line" > < a name = "l00203" > < / a > < span class = "lineno" > 203< / span >   < / div >
< div class = "line" > < a name = "l00204" > < / a > < span class = "lineno" > 204< / span >   < / div >
< div class = "line" > < a name = "l00205" > < / a > < span class = "lineno" > 205< / span >   < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > f = < a class = "code" href = "classEule_1_1Quaternion.html#a704d63f0f2cd2d50fd61562e3c2eb576" > Inverse< / a > () * pure * (*this);< / div >
< div class = "line" > < a name = "l00206" > < / a > < span class = "lineno" > 206< / span >   < / div >
< div class = "line" > < a name = "l00207" > < / a > < span class = "lineno" > 207< / span >   < a class = "code" href = "classEule_1_1Vector3.html" > Vector3d< / a > toRet;< / div >
< div class = "line" > < a name = "l00208" > < / a > < span class = "lineno" > 208< / span >   toRet.< a class = "code" href = "classEule_1_1Vector3.html#a3d7770a583354b1dfc2f6af1092adc1b" > x< / a > = f.v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > ;< / div >
< div class = "line" > < a name = "l00209" > < / a > < span class = "lineno" > 209< / span >   toRet.< a class = "code" href = "classEule_1_1Vector3.html#a716e038c7b599bc5c741dfc0a3c42146" > y< / a > = f.v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > ;< / div >
< div class = "line" > < a name = "l00210" > < / a > < span class = "lineno" > 210< / span >   toRet.< a class = "code" href = "classEule_1_1Vector3.html#a754b1a46c44a0fde99e670e174dba674" > z< / a > = f.v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > ;< / div >
< div class = "line" > < a name = "l00211" > < / a > < span class = "lineno" > 211< / span >   < / div >
< div class = "line" > < a name = "l00212" > < / a > < span class = "lineno" > 212< / span >   < span class = "keywordflow" > return< / span > toRet;< / div >
< div class = "line" > < a name = "l00213" > < / a > < span class = "lineno" > 213< / span >   }< / div >
< div class = "line" > < a name = "l00214" > < / a > < span class = "lineno" > 214< / span >   < / div >
< div class = "line" > < a name = "l00215" > < / a > < span class = "lineno" > < a class = "line" href = "classEule_1_1Quaternion.html#a5a6349cb3e0a0c73df527e9ba907b0da" > 215< / a > < / span >   < a class = "code" href = "classEule_1_1Vector3.html" > Vector3d< / a > < a class = "code" href = "classEule_1_1Quaternion.html#a5a6349cb3e0a0c73df527e9ba907b0da" > Quaternion::ToEulerAngles< / a > ()< span class = "keyword" > const< / span > < / div >
< div class = "line" > < a name = "l00216" > < / a > < span class = "lineno" > 216< / span >   < span class = "keyword" > < / span > {< / div >
< div class = "line" > < a name = "l00217" > < / a > < span class = "lineno" > 217< / span >   < span class = "keywordflow" > if< / span > (!isCacheUpToDate_euler)< / div >
< div class = "line" > < a name = "l00218" > < / a > < span class = "lineno" > 218< / span >   {< / div >
< div class = "line" > < a name = "l00219" > < / a > < span class = "lineno" > 219< / span >   < a class = "code" href = "classEule_1_1Vector3.html" > Vector3d< / a > euler;< / div >
< div class = "line" > < a name = "l00220" > < / a > < span class = "lineno" > 220< / span >   < span class = "comment" > // roll (x-axis rotation)< / span > < / div >
< div class = "line" > < a name = "l00221" > < / a > < span class = "lineno" > 221< / span >   < span class = "keywordtype" > double< / span > sinr_cosp = 2.0 * (v.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > * v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > + v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > * v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > );< / div >
< div class = "line" > < a name = "l00222" > < / a > < span class = "lineno" > 222< / span >   < span class = "keywordtype" > double< / span > cosr_cosp = 1.0 - 2.0 * (v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > * v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > + v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > * v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > );< / div >
< div class = "line" > < a name = "l00223" > < / a > < span class = "lineno" > 223< / span >   euler.< a class = "code" href = "classEule_1_1Vector3.html#a3d7770a583354b1dfc2f6af1092adc1b" > x< / a > = std::atan2(sinr_cosp, cosr_cosp);< / div >
< div class = "line" > < a name = "l00224" > < / a > < span class = "lineno" > 224< / span >   < / div >
< div class = "line" > < a name = "l00225" > < / a > < span class = "lineno" > 225< / span >   < span class = "comment" > // pitch (y-axis rotation)< / span > < / div >
< div class = "line" > < a name = "l00226" > < / a > < span class = "lineno" > 226< / span >   < span class = "keywordtype" > double< / span > sinp = 2.0 * (v.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > * v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > - v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > * v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > );< / div >
< div class = "line" > < a name = "l00227" > < / a > < span class = "lineno" > 227< / span >   < span class = "keywordflow" > if< / span > (std::abs(sinp) > = 1)< / div >
2021-11-15 11:46:15 +01:00
< div class = "line" > < a name = "l00228" > < / a > < span class = "lineno" > 228< / span >   euler.< a class = "code" href = "classEule_1_1Vector3.html#a716e038c7b599bc5c741dfc0a3c42146" > y< / a > = std::copysign(< a class = "code" href = "Constants_8h.html#a299aabc5fc8285cbf99025330a3d0d0d" > PI< / a > / 2, sinp); < span class = "comment" > // use 90 degrees if out of range< / span > < / div >
2021-11-15 11:35:45 +01:00
< div class = "line" > < a name = "l00229" > < / a > < span class = "lineno" > 229< / span >   < span class = "keywordflow" > else< / span > < / div >
< div class = "line" > < a name = "l00230" > < / a > < span class = "lineno" > 230< / span >   euler.< a class = "code" href = "classEule_1_1Vector3.html#a716e038c7b599bc5c741dfc0a3c42146" > y< / a > = std::asin(sinp);< / div >
< div class = "line" > < a name = "l00231" > < / a > < span class = "lineno" > 231< / span >   < / div >
< div class = "line" > < a name = "l00232" > < / a > < span class = "lineno" > 232< / span >   < span class = "comment" > // yaw (z-axis rotation)< / span > < / div >
< div class = "line" > < a name = "l00233" > < / a > < span class = "lineno" > 233< / span >   < span class = "keywordtype" > double< / span > siny_cosp = 2.0 * (v.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > * v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > + v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > * v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > );< / div >
< div class = "line" > < a name = "l00234" > < / a > < span class = "lineno" > 234< / span >   < span class = "keywordtype" > double< / span > cosy_cosp = 1.0 - 2.0 * (v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > * v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > + v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > * v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > );< / div >
< div class = "line" > < a name = "l00235" > < / a > < span class = "lineno" > 235< / span >   euler.< a class = "code" href = "classEule_1_1Vector3.html#a754b1a46c44a0fde99e670e174dba674" > z< / a > = std::atan2(siny_cosp, cosy_cosp);< / div >
< div class = "line" > < a name = "l00236" > < / a > < span class = "lineno" > 236< / span >   < / div >
2021-11-15 11:46:15 +01:00
< div class = "line" > < a name = "l00237" > < / a > < span class = "lineno" > 237< / span >   euler *= < a class = "code" href = "Constants_8h.html#afa51234d581318384aacb84a195c3a2b" > Rad2Deg< / a > ;< / div >
2021-11-15 11:35:45 +01:00
< div class = "line" > < a name = "l00238" > < / a > < span class = "lineno" > 238< / span >   < / div >
< div class = "line" > < a name = "l00239" > < / a > < span class = "lineno" > 239< / span >   cache_euler = euler;< / div >
< div class = "line" > < a name = "l00240" > < / a > < span class = "lineno" > 240< / span >   isCacheUpToDate_matrix = < span class = "keyword" > true< / span > ;< / div >
< div class = "line" > < a name = "l00241" > < / a > < span class = "lineno" > 241< / span >   }< / div >
< div class = "line" > < a name = "l00242" > < / a > < span class = "lineno" > 242< / span >   < / div >
< div class = "line" > < a name = "l00243" > < / a > < span class = "lineno" > 243< / span >   < span class = "keywordflow" > return< / span > cache_euler;< / div >
< div class = "line" > < a name = "l00244" > < / a > < span class = "lineno" > 244< / span >   }< / div >
< div class = "line" > < a name = "l00245" > < / a > < span class = "lineno" > 245< / span >   < / div >
< div class = "line" > < a name = "l00246" > < / a > < span class = "lineno" > < a class = "line" href = "classEule_1_1Quaternion.html#aedb36036ee6a39fb97c5d2ba12b5d986" > 246< / a > < / span >   < a class = "code" href = "classEule_1_1Matrix4x4.html" > Matrix4x4< / a > < a class = "code" href = "classEule_1_1Quaternion.html#aedb36036ee6a39fb97c5d2ba12b5d986" > Quaternion::ToRotationMatrix< / a > ()< span class = "keyword" > const< / span > < / div >
< div class = "line" > < a name = "l00247" > < / a > < span class = "lineno" > 247< / span >   < span class = "keyword" > < / span > {< / div >
< div class = "line" > < a name = "l00248" > < / a > < span class = "lineno" > 248< / span >   < span class = "keywordflow" > if< / span > (!isCacheUpToDate_matrix)< / div >
< div class = "line" > < a name = "l00249" > < / a > < span class = "lineno" > 249< / span >   {< / div >
< div class = "line" > < a name = "l00250" > < / a > < span class = "lineno" > 250< / span >   < a class = "code" href = "classEule_1_1Matrix4x4.html" > Matrix4x4< / a > m;< / div >
< div class = "line" > < a name = "l00251" > < / a > < span class = "lineno" > 251< / span >   < / div >
< div class = "line" > < a name = "l00252" > < / a > < span class = "lineno" > 252< / span >   < span class = "keyword" > const< / span > < span class = "keywordtype" > double< / span > sqx = v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > * v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > ;< / div >
< div class = "line" > < a name = "l00253" > < / a > < span class = "lineno" > 253< / span >   < span class = "keyword" > const< / span > < span class = "keywordtype" > double< / span > sqy = v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > * v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > ;< / div >
< div class = "line" > < a name = "l00254" > < / a > < span class = "lineno" > 254< / span >   < span class = "keyword" > const< / span > < span class = "keywordtype" > double< / span > sqz = v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > * v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > ;< / div >
< div class = "line" > < a name = "l00255" > < / a > < span class = "lineno" > 255< / span >   < span class = "keyword" > const< / span > < span class = "keywordtype" > double< / span > sqw = v.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > * v.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > ;< / div >
< div class = "line" > < a name = "l00256" > < / a > < span class = "lineno" > 256< / span >   < span class = "keyword" > const< / span > < span class = "keywordtype" > double< / span > x = v.< a class = "code" href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > x< / a > ;< / div >
< div class = "line" > < a name = "l00257" > < / a > < span class = "lineno" > 257< / span >   < span class = "keyword" > const< / span > < span class = "keywordtype" > double< / span > y = v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > ;< / div >
< div class = "line" > < a name = "l00258" > < / a > < span class = "lineno" > 258< / span >   < span class = "keyword" > const< / span > < span class = "keywordtype" > double< / span > z = v.< a class = "code" href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > z< / a > ;< / div >
< div class = "line" > < a name = "l00259" > < / a > < span class = "lineno" > 259< / span >   < span class = "keyword" > const< / span > < span class = "keywordtype" > double< / span > w = v.< a class = "code" href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > w< / a > ;< / div >
< div class = "line" > < a name = "l00260" > < / a > < span class = "lineno" > 260< / span >   < / div >
< div class = "line" > < a name = "l00261" > < / a > < span class = "lineno" > 261< / span >   < span class = "comment" > // invs (inverse square length) is only required if quaternion is not already normalised< / span > < / div >
< div class = "line" > < a name = "l00262" > < / a > < span class = "lineno" > 262< / span >   < span class = "keywordtype" > double< / span > invs = 1.0 / (sqx + sqy + sqz + sqw);< / div >
< div class = "line" > < a name = "l00263" > < / a > < span class = "lineno" > 263< / span >   < / div >
< div class = "line" > < a name = "l00264" > < / a > < span class = "lineno" > 264< / span >   < span class = "comment" > // since sqw + sqx + sqy + sqz =1/invs*invs< / span > < / div >
< div class = "line" > < a name = "l00265" > < / a > < span class = "lineno" > 265< / span >   < / div >
< div class = "line" > < a name = "l00266" > < / a > < span class = "lineno" > 266< / span >   < span class = "comment" > // yaw (y)< / span > < / div >
< div class = "line" > < a name = "l00267" > < / a > < span class = "lineno" > 267< / span >   m.< a class = "code" href = "classEule_1_1Matrix4x4.html#a68920de2728741859aa7cb3d245aa2c3" > c< / a > = ((2 * x * z) - (2 * w * y)) * invs;< / div >
< div class = "line" > < a name = "l00268" > < / a > < span class = "lineno" > 268< / span >   m.< a class = "code" href = "classEule_1_1Matrix4x4.html#a47b0d5273289c602f1ab4d3b963fe267" > f< / a > = (1 - (2 * sqx) - (2 * sqz)) * invs;< / div >
< div class = "line" > < a name = "l00269" > < / a > < span class = "lineno" > 269< / span >   m.< a class = "code" href = "classEule_1_1Matrix4x4.html#afb1b52d2d395e1d4a099556fac3918dc" > i< / a > = ((2 * x * z) + (2 * w * y)) * invs;< / div >
< div class = "line" > < a name = "l00270" > < / a > < span class = "lineno" > 270< / span >   < / div >
< div class = "line" > < a name = "l00271" > < / a > < span class = "lineno" > 271< / span >   < span class = "comment" > // pitch (x)< / span > < / div >
< div class = "line" > < a name = "l00272" > < / a > < span class = "lineno" > 272< / span >   m.< a class = "code" href = "classEule_1_1Matrix4x4.html#ab3ff5bc09a2598faa76188d0cc31addb" > a< / a > = (1 - (2 * sqy) - (2 * sqz)) * invs;< / div >
< div class = "line" > < a name = "l00273" > < / a > < span class = "lineno" > 273< / span >   m.< a class = "code" href = "classEule_1_1Matrix4x4.html#a1519f79fbfd4f33a0718ffc030fb6706" > g< / a > = ((2 * y * z) + (2 * w * x)) * invs;< / div >
< div class = "line" > < a name = "l00274" > < / a > < span class = "lineno" > 274< / span >   m.< a class = "code" href = "classEule_1_1Matrix4x4.html#a6ad97bdfe3f070fd4d1d0ebc2ee1309a" > j< / a > = ((2 * y * z) - (2 * w * x)) * invs;< / div >
< div class = "line" > < a name = "l00275" > < / a > < span class = "lineno" > 275< / span >   < / div >
< div class = "line" > < a name = "l00276" > < / a > < span class = "lineno" > 276< / span >   < span class = "comment" > // roll (z)< / span > < / div >
< div class = "line" > < a name = "l00277" > < / a > < span class = "lineno" > 277< / span >   m.< a class = "code" href = "classEule_1_1Matrix4x4.html#a2258f9cce9558711c59ffcf140a39756" > b< / a > = ((2 * x * v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > ) + (2 * w * z)) * invs;< / div >
< div class = "line" > < a name = "l00278" > < / a > < span class = "lineno" > 278< / span >   m.< a class = "code" href = "classEule_1_1Matrix4x4.html#a19fb1d47aea5672da2fe1fc20500615a" > e< / a > = ((2 * x * v.< a class = "code" href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > y< / a > ) - (2 * w * z)) * invs;< / div >
< div class = "line" > < a name = "l00279" > < / a > < span class = "lineno" > 279< / span >   m.< a class = "code" href = "classEule_1_1Matrix4x4.html#af93a84acffc7d5282653b7b591633874" > k< / a > = (1 - (2 * sqx) - (2 * sqy)) * invs;< / div >
< div class = "line" > < a name = "l00280" > < / a > < span class = "lineno" > 280< / span >   < / div >
< div class = "line" > < a name = "l00281" > < / a > < span class = "lineno" > 281< / span >   m.< a class = "code" href = "classEule_1_1Matrix4x4.html#a3fdccd317c5ea363b91f6d8096b28bd7" > p< / a > = 1;< / div >
< div class = "line" > < a name = "l00282" > < / a > < span class = "lineno" > 282< / span >   < / div >
< div class = "line" > < a name = "l00283" > < / a > < span class = "lineno" > 283< / span >   cache_matrix = m;< / div >
< div class = "line" > < a name = "l00284" > < / a > < span class = "lineno" > 284< / span >   isCacheUpToDate_matrix = < span class = "keyword" > true< / span > ;< / div >
< div class = "line" > < a name = "l00285" > < / a > < span class = "lineno" > 285< / span >   }< / div >
< div class = "line" > < a name = "l00286" > < / a > < span class = "lineno" > 286< / span >   < / div >
< div class = "line" > < a name = "l00287" > < / a > < span class = "lineno" > 287< / span >   < span class = "keywordflow" > return< / span > cache_matrix;< / div >
< div class = "line" > < a name = "l00288" > < / a > < span class = "lineno" > 288< / span >   }< / div >
< div class = "line" > < a name = "l00289" > < / a > < span class = "lineno" > 289< / span >   < / div >
< div class = "line" > < a name = "l00290" > < / a > < span class = "lineno" > < a class = "line" href = "classEule_1_1Quaternion.html#aaa193aa23729338a64bbd16eacab56ec" > 290< / a > < / span >   < a class = "code" href = "classEule_1_1Vector4.html" > Vector4d< / a > < a class = "code" href = "classEule_1_1Quaternion.html#aaa193aa23729338a64bbd16eacab56ec" > Quaternion::GetRawValues< / a > ()< span class = "keyword" > const< / span > < / div >
< div class = "line" > < a name = "l00291" > < / a > < span class = "lineno" > 291< / span >   < span class = "keyword" > < / span > {< / div >
< div class = "line" > < a name = "l00292" > < / a > < span class = "lineno" > 292< / span >   < span class = "keywordflow" > return< / span > v;< / div >
< div class = "line" > < a name = "l00293" > < / a > < span class = "lineno" > 293< / span >   }< / div >
< div class = "line" > < a name = "l00294" > < / a > < span class = "lineno" > 294< / span >   < / div >
< div class = "line" > < a name = "l00295" > < / a > < span class = "lineno" > < a class = "line" href = "classEule_1_1Quaternion.html#a2c7d0c3521f0e6127ca4b5d5bdbf8329" > 295< / a > < / span >   < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > < a class = "code" href = "classEule_1_1Quaternion.html#a2c7d0c3521f0e6127ca4b5d5bdbf8329" > Quaternion::AngleBetween< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > & other)< span class = "keyword" > const< / span > < / div >
< div class = "line" > < a name = "l00296" > < / a > < span class = "lineno" > 296< / span >   < span class = "keyword" > < / span > {< / div >
< div class = "line" > < a name = "l00297" > < / a > < span class = "lineno" > 297< / span >   < span class = "keywordflow" > return< / span > other * < a class = "code" href = "classEule_1_1Quaternion.html#aa5333ab28dbe4d5ae15ab5dbc36b90ca" > Conjugate< / a > ();< / div >
< div class = "line" > < a name = "l00298" > < / a > < span class = "lineno" > 298< / span >   }< / div >
< div class = "line" > < a name = "l00299" > < / a > < span class = "lineno" > 299< / span >   < / div >
< div class = "line" > < a name = "l00300" > < / a > < span class = "lineno" > < a class = "line" href = "classEule_1_1Quaternion.html#a7046064a89615e16760f17f41b60a31d" > 300< / a > < / span >   < span class = "keywordtype" > void< / span > < a class = "code" href = "classEule_1_1Quaternion.html#a7046064a89615e16760f17f41b60a31d" > Quaternion::SetRawValues< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classEule_1_1Vector4.html" > Vector4d< / a > values)< / div >
< div class = "line" > < a name = "l00301" > < / a > < span class = "lineno" > 301< / span >   {< / div >
< div class = "line" > < a name = "l00302" > < / a > < span class = "lineno" > 302< / span >   InvalidateCache();< / div >
< div class = "line" > < a name = "l00303" > < / a > < span class = "lineno" > 303< / span >   < / div >
< div class = "line" > < a name = "l00304" > < / a > < span class = "lineno" > 304< / span >   v = values;< / div >
< div class = "line" > < a name = "l00305" > < / a > < span class = "lineno" > 305< / span >   < / div >
< div class = "line" > < a name = "l00306" > < / a > < span class = "lineno" > 306< / span >   < span class = "keywordflow" > return< / span > ;< / div >
< div class = "line" > < a name = "l00307" > < / a > < span class = "lineno" > 307< / span >   }< / div >
< div class = "line" > < a name = "l00308" > < / a > < span class = "lineno" > 308< / span >   < / div >
< div class = "line" > < a name = "l00309" > < / a > < span class = "lineno" > < a class = "line" href = "classEule_1_1Quaternion.html#a2c386181050f7745341a00f79e496e08" > 309< / a > < / span >   < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > < a class = "code" href = "classEule_1_1Quaternion.html#a2c386181050f7745341a00f79e496e08" > Quaternion::Lerp< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > & other, < span class = "keywordtype" > double< / span > t)< span class = "keyword" > const< / span > < / div >
< div class = "line" > < a name = "l00310" > < / a > < span class = "lineno" > 310< / span >   < span class = "keyword" > < / span > {< / div >
< div class = "line" > < a name = "l00311" > < / a > < span class = "lineno" > 311< / span >   < span class = "keywordflow" > return< / span > < a class = "code" href = "classEule_1_1Quaternion.html#abcc01358aada56ea5f0db4da18aaf77d" > Quaternion< / a > (v.< a class = "code" href = "classEule_1_1Vector4.html#ae5b7ed7132d76ffbde20f24330fd4f69" > Lerp< / a > (other.v, t)).UnitQuaternion();< / div >
< div class = "line" > < a name = "l00312" > < / a > < span class = "lineno" > 312< / span >   }< / div >
< div class = "line" > < a name = "l00313" > < / a > < span class = "lineno" > 313< / span >   < / div >
< div class = "line" > < a name = "l00314" > < / a > < span class = "lineno" > 314< / span >   < span class = "keywordtype" > void< / span > Quaternion::InvalidateCache()< / div >
< div class = "line" > < a name = "l00315" > < / a > < span class = "lineno" > 315< / span >   {< / div >
< div class = "line" > < a name = "l00316" > < / a > < span class = "lineno" > 316< / span >   isCacheUpToDate_euler = < span class = "keyword" > false< / span > ;< / div >
< div class = "line" > < a name = "l00317" > < / a > < span class = "lineno" > 317< / span >   isCacheUpToDate_matrix = < span class = "keyword" > false< / span > ;< / div >
< div class = "line" > < a name = "l00318" > < / a > < span class = "lineno" > 318< / span >   isCacheUpToDate_inverse = < span class = "keyword" > false< / span > ;< / div >
< div class = "line" > < a name = "l00319" > < / a > < span class = "lineno" > 319< / span >   < / div >
< div class = "line" > < a name = "l00320" > < / a > < span class = "lineno" > 320< / span >   < span class = "keywordflow" > return< / span > ;< / div >
< div class = "line" > < a name = "l00321" > < / a > < span class = "lineno" > 321< / span >   }< / div >
< div class = "line" > < a name = "l00322" > < / a > < span class = "lineno" > 322< / span >   < / div >
< div class = "line" > < a name = "l00323" > < / a > < span class = "lineno" > 323< / span >   < span class = "keyword" > namespace < / span > < a class = "code" href = "namespaceEule.html" > Eule< / a > < / div >
< div class = "line" > < a name = "l00324" > < / a > < span class = "lineno" > 324< / span >   {< / div >
< div class = "line" > < a name = "l00325" > < / a > < span class = "lineno" > < a class = "line" href = "namespaceEule.html#a632355bad553c40d9fd297c260c1d44b" > 325< / a > < / span >   std::ostream& < a class = "code" href = "namespaceEule.html#aa7ebcddcafa056556a6e17dcc968e7dd" > operator< < < / a > (std::ostream& os, < span class = "keyword" > const< / span > < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > & q)< / div >
< div class = "line" > < a name = "l00326" > < / a > < span class = "lineno" > 326< / span >   {< / div >
< div class = "line" > < a name = "l00327" > < / a > < span class = "lineno" > 327< / span >   os < < < span class = "stringliteral" > " [" < / span > < < q.v < < < span class = "stringliteral" > " ]" < / span > ;< / div >
< div class = "line" > < a name = "l00328" > < / a > < span class = "lineno" > 328< / span >   < span class = "keywordflow" > return< / span > os;< / div >
< div class = "line" > < a name = "l00329" > < / a > < span class = "lineno" > 329< / span >   }< / div >
< div class = "line" > < a name = "l00330" > < / a > < span class = "lineno" > 330< / span >   < / div >
< div class = "line" > < a name = "l00331" > < / a > < span class = "lineno" > < a class = "line" href = "namespaceEule.html#a5d5c597b5ae3b3143015316a4a60eacc" > 331< / a > < / span >   std::wostream& < a class = "code" href = "namespaceEule.html#aa7ebcddcafa056556a6e17dcc968e7dd" > operator< < < / a > (std::wostream& os, < span class = "keyword" > const< / span > < a class = "code" href = "classEule_1_1Quaternion.html" > Quaternion< / a > & q)< / div >
< div class = "line" > < a name = "l00332" > < / a > < span class = "lineno" > 332< / span >   {< / div >
< div class = "line" > < a name = "l00333" > < / a > < span class = "lineno" > 333< / span >   os < < L< span class = "stringliteral" > " [" < / span > < < q.v < < L< span class = "stringliteral" > " ]" < / span > ;< / div >
< div class = "line" > < a name = "l00334" > < / a > < span class = "lineno" > 334< / span >   < span class = "keywordflow" > return< / span > os;< / div >
< div class = "line" > < a name = "l00335" > < / a > < span class = "lineno" > 335< / span >   }< / div >
< div class = "line" > < a name = "l00336" > < / a > < span class = "lineno" > 336< / span >   }< / div >
< / div > <!-- fragment --> < / div > <!-- contents -->
< div class = "ttc" id = "aclassEule_1_1Quaternion_html_a23488d14e31db8cec75a0e8c6f38c70a" > < div class = "ttname" > < a href = "classEule_1_1Quaternion.html#a23488d14e31db8cec75a0e8c6f38c70a" > Eule::Quaternion::operator/< / a > < / div > < div class = "ttdeci" > Quaternion operator/(Quaternion & q) const< / div > < div class = "ttdoc" > Divides (applies)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Quaternion_8cpp_source.html#l00126" > Quaternion.cpp:126< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Matrix4x4_html_a6ad97bdfe3f070fd4d1d0ebc2ee1309a" > < div class = "ttname" > < a href = "classEule_1_1Matrix4x4.html#a6ad97bdfe3f070fd4d1d0ebc2ee1309a" > Eule::Matrix4x4::j< / a > < / div > < div class = "ttdeci" > double & j< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Matrix4x4_8h_source.html#l00137" > Matrix4x4.h:137< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Quaternion_html_aedb36036ee6a39fb97c5d2ba12b5d986" > < div class = "ttname" > < a href = "classEule_1_1Quaternion.html#aedb36036ee6a39fb97c5d2ba12b5d986" > Eule::Quaternion::ToRotationMatrix< / a > < / div > < div class = "ttdeci" > Matrix4x4 ToRotationMatrix() const< / div > < div class = "ttdoc" > Will return a rotation matrix representing this Quaternions rotation.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Quaternion_8cpp_source.html#l00246" > Quaternion.cpp:246< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Quaternion_html_aaa193aa23729338a64bbd16eacab56ec" > < div class = "ttname" > < a href = "classEule_1_1Quaternion.html#aaa193aa23729338a64bbd16eacab56ec" > Eule::Quaternion::GetRawValues< / a > < / div > < div class = "ttdeci" > Vector4d GetRawValues() const< / div > < div class = "ttdoc" > Will return the raw four-dimensional values.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Quaternion_8cpp_source.html#l00290" > Quaternion.cpp:290< / a > < / div > < / div >
2021-11-15 11:46:15 +01:00
< div class = "ttc" id = "aConstants_8h_html_a299aabc5fc8285cbf99025330a3d0d0d" > < div class = "ttname" > < a href = "Constants_8h.html#a299aabc5fc8285cbf99025330a3d0d0d" > PI< / a > < / div > < div class = "ttdeci" > static constexpr double PI< / div > < div class = "ttdoc" > Pi up to 50 decimal places.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Constants_8h_source.html#l00006" > Constants.h:6< / a > < / div > < / div >
2021-11-15 11:35:45 +01:00
< div class = "ttc" id = "aclassEule_1_1Matrix4x4_html_afb1b52d2d395e1d4a099556fac3918dc" > < div class = "ttname" > < a href = "classEule_1_1Matrix4x4.html#afb1b52d2d395e1d4a099556fac3918dc" > Eule::Matrix4x4::i< / a > < / div > < div class = "ttdeci" > double & i< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Matrix4x4_8h_source.html#l00136" > Matrix4x4.h:136< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Quaternion_html_a2c7d0c3521f0e6127ca4b5d5bdbf8329" > < div class = "ttname" > < a href = "classEule_1_1Quaternion.html#a2c7d0c3521f0e6127ca4b5d5bdbf8329" > Eule::Quaternion::AngleBetween< / a > < / div > < div class = "ttdeci" > Quaternion AngleBetween(const Quaternion & other) const< / div > < div class = "ttdoc" > Will return the value between two Quaternion's as another Quaternion.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Quaternion_8cpp_source.html#l00295" > Quaternion.cpp:295< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Vector3_html" > < div class = "ttname" > < a href = "classEule_1_1Vector3.html" > Eule::Vector3< double > < / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Quaternion_html_a2c386181050f7745341a00f79e496e08" > < div class = "ttname" > < a href = "classEule_1_1Quaternion.html#a2c386181050f7745341a00f79e496e08" > Eule::Quaternion::Lerp< / a > < / div > < div class = "ttdeci" > Quaternion Lerp(const Quaternion & other, double t) const< / div > < div class = "ttdoc" > Will return the lerp result between two quaternions.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Quaternion_8cpp_source.html#l00309" > Quaternion.cpp:309< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Vector4_html_a6abdc466a694e39b1bf5e71dd26e9fbf" > < div class = "ttname" > < a href = "classEule_1_1Vector4.html#a6abdc466a694e39b1bf5e71dd26e9fbf" > Eule::Vector4::x< / a > < / div > < div class = "ttdeci" > T x< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Vector4_8h_source.html#l00088" > Vector4.h:88< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Quaternion_html_affb1a8ac42e356ee5efb304ca8df38ca" > < div class = "ttname" > < a href = "classEule_1_1Quaternion.html#affb1a8ac42e356ee5efb304ca8df38ca" > Eule::Quaternion::UnitQuaternion< / a > < / div > < div class = "ttdeci" > Quaternion UnitQuaternion() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Quaternion_8cpp_source.html#l00192" > Quaternion.cpp:192< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Matrix4x4_html_a19fb1d47aea5672da2fe1fc20500615a" > < div class = "ttname" > < a href = "classEule_1_1Matrix4x4.html#a19fb1d47aea5672da2fe1fc20500615a" > Eule::Matrix4x4::e< / a > < / div > < div class = "ttdeci" > double & e< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Matrix4x4_8h_source.html#l00132" > Matrix4x4.h:132< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Vector4_html_acf70d20ed586c3e168f2664f643902f0" > < div class = "ttname" > < a href = "classEule_1_1Vector4.html#acf70d20ed586c3e168f2664f643902f0" > Eule::Vector4::z< / a > < / div > < div class = "ttdeci" > T z< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Vector4_8h_source.html#l00090" > Vector4.h:90< / a > < / div > < / div >
< div class = "ttc" id = "anamespaceEule_html_ab1f7f26891b56b960ca6cca5cc1cc44e" > < div class = "ttname" > < a href = "namespaceEule.html#ab1f7f26891b56b960ca6cca5cc1cc44e" > Eule::Vector4d< / a > < / div > < div class = "ttdeci" > Vector4< double > Vector4d< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Vector4_8h_source.html#l00107" > Vector4.h:107< / a > < / div > < / div >
< div class = "ttc" id = "aConstants_8h_html" > < div class = "ttname" > < a href = "Constants_8h.html" > Constants.h< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Matrix4x4_html_a47b0d5273289c602f1ab4d3b963fe267" > < div class = "ttname" > < a href = "classEule_1_1Matrix4x4.html#a47b0d5273289c602f1ab4d3b963fe267" > Eule::Matrix4x4::f< / a > < / div > < div class = "ttdeci" > double & f< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Matrix4x4_8h_source.html#l00133" > Matrix4x4.h:133< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Quaternion_html_a5a6349cb3e0a0c73df527e9ba907b0da" > < div class = "ttname" > < a href = "classEule_1_1Quaternion.html#a5a6349cb3e0a0c73df527e9ba907b0da" > Eule::Quaternion::ToEulerAngles< / a > < / div > < div class = "ttdeci" > Vector3d ToEulerAngles() const< / div > < div class = "ttdoc" > Will return euler angles representing this Quaternion's rotation.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Quaternion_8cpp_source.html#l00215" > Quaternion.cpp:215< / a > < / div > < / div >
2021-11-15 11:46:15 +01:00
< div class = "ttc" id = "aConstants_8h_html_a0688d82670a3ba9d40853859003c64df" > < div class = "ttname" > < a href = "Constants_8h.html#a0688d82670a3ba9d40853859003c64df" > Deg2Rad< / a > < / div > < div class = "ttdeci" > static constexpr double Deg2Rad< / div > < div class = "ttdoc" > Factor to convert degrees to radians.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Constants_8h_source.html#l00012" > Constants.h:12< / a > < / div > < / div >
2021-11-15 11:35:45 +01:00
< div class = "ttc" id = "aclassEule_1_1Matrix4x4_html_af93a84acffc7d5282653b7b591633874" > < div class = "ttname" > < a href = "classEule_1_1Matrix4x4.html#af93a84acffc7d5282653b7b591633874" > Eule::Matrix4x4::k< / a > < / div > < div class = "ttdeci" > double & k< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Matrix4x4_8h_source.html#l00138" > Matrix4x4.h:138< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Vector4_html_ae5b7ed7132d76ffbde20f24330fd4f69" > < div class = "ttname" > < a href = "classEule_1_1Vector4.html#ae5b7ed7132d76ffbde20f24330fd4f69" > Eule::Vector4::Lerp< / a > < / div > < div class = "ttdeci" > Vector4< double > Lerp(const Vector4< T > & other, double t) const< / div > < div class = "ttdoc" > Will return a lerp result between this and another vector.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Vector4_8cpp_source.html#l00287" > Vector4.cpp:287< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Quaternion_html_a9cf7fd3318ffdd50e6567c84d24c20e9" > < div class = "ttname" > < a href = "classEule_1_1Quaternion.html#a9cf7fd3318ffdd50e6567c84d24c20e9" > Eule::Quaternion::operator=< / a > < / div > < div class = "ttdeci" > Quaternion operator=(const Quaternion & q)< / div > < div class = "ttdoc" > Copies.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Quaternion_8cpp_source.html#l00102" > Quaternion.cpp:102< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Vector4_html_a4b2184f91a991264ddc3dae3beadf23e" > < div class = "ttname" > < a href = "classEule_1_1Vector4.html#a4b2184f91a991264ddc3dae3beadf23e" > Eule::Vector4::w< / a > < / div > < div class = "ttdeci" > T w< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Vector4_8h_source.html#l00091" > Vector4.h:91< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Vector3_html_a754b1a46c44a0fde99e670e174dba674" > < div class = "ttname" > < a href = "classEule_1_1Vector3.html#a754b1a46c44a0fde99e670e174dba674" > Eule::Vector3::z< / a > < / div > < div class = "ttdeci" > T z< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Vector3_8h_source.html#l00096" > Vector3.h:96< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Quaternion_html_a5f834c2ca469cd71edc8a23fdc3f56e8" > < div class = "ttname" > < a href = "classEule_1_1Quaternion.html#a5f834c2ca469cd71edc8a23fdc3f56e8" > Eule::Quaternion::~Quaternion< / a > < / div > < div class = "ttdeci" > ~Quaternion()< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Quaternion_8cpp_source.html#l00097" > Quaternion.cpp:97< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Quaternion_html_ab178e12364d87fb676d85695e491361f" > < div class = "ttname" > < a href = "classEule_1_1Quaternion.html#ab178e12364d87fb676d85695e491361f" > Eule::Quaternion::operator*< / a > < / div > < div class = "ttdeci" > Quaternion operator*(const Quaternion & q) const< / div > < div class = "ttdoc" > Multiplies (applies)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Quaternion_8cpp_source.html#l00111" > Quaternion.cpp:111< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Matrix4x4_html" > < div class = "ttname" > < a href = "classEule_1_1Matrix4x4.html" > Eule::Matrix4x4< / a > < / div > < div class = "ttdoc" > A matrix 4x4 class representing a 3d transformation.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Matrix4x4_8h_source.html#l00036" > Matrix4x4.h:36< / a > < / div > < / div >
< div class = "ttc" id = "aQuaternion_8h_html" > < div class = "ttname" > < a href = "Quaternion_8h.html" > Quaternion.h< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Quaternion_html_a8941e3b43aabd15e2471e57ebd49c8a7" > < div class = "ttname" > < a href = "classEule_1_1Quaternion.html#a8941e3b43aabd15e2471e57ebd49c8a7" > Eule::Quaternion::operator*=< / a > < / div > < div class = "ttdeci" > Quaternion & operator*=(const Quaternion & q)< / div > < div class = "ttdoc" > Also multiplies.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Quaternion_8cpp_source.html#l00131" > Quaternion.cpp:131< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Vector4_html_af49ea98d369420a07158d705eab60479" > < div class = "ttname" > < a href = "classEule_1_1Vector4.html#af49ea98d369420a07158d705eab60479" > Eule::Vector4::Similar< / a > < / div > < div class = "ttdeci" > bool Similar(const Vector4< T > & other, double epsilon=0.00001) const< / div > < div class = "ttdoc" > Will compare if two vectors are similar to a certain epsilon value.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Vector4_8cpp_source.html#l00162" > Vector4.cpp:162< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Matrix4x4_html_a2258f9cce9558711c59ffcf140a39756" > < div class = "ttname" > < a href = "classEule_1_1Matrix4x4.html#a2258f9cce9558711c59ffcf140a39756" > Eule::Matrix4x4::b< / a > < / div > < div class = "ttdeci" > double & b< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Matrix4x4_8h_source.html#l00129" > Matrix4x4.h:129< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Quaternion_html_a7046064a89615e16760f17f41b60a31d" > < div class = "ttname" > < a href = "classEule_1_1Quaternion.html#a7046064a89615e16760f17f41b60a31d" > Eule::Quaternion::SetRawValues< / a > < / div > < div class = "ttdeci" > void SetRawValues(const Vector4d values)< / div > < div class = "ttdoc" > Will set the raw four-dimensional values.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Quaternion_8cpp_source.html#l00300" > Quaternion.cpp:300< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Vector4_html_a35c6fccb7a02095b595575903b590dd2" > < div class = "ttname" > < a href = "classEule_1_1Vector4.html#a35c6fccb7a02095b595575903b590dd2" > Eule::Vector4::Magnitude< / a > < / div > < div class = "ttdeci" > double Magnitude() const< / div > < div class = "ttdoc" > Will compute the magnitude.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Vector4_8cpp_source.html#l00038" > Vector4.cpp:38< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Matrix4x4_html_a1519f79fbfd4f33a0718ffc030fb6706" > < div class = "ttname" > < a href = "classEule_1_1Matrix4x4.html#a1519f79fbfd4f33a0718ffc030fb6706" > Eule::Matrix4x4::g< / a > < / div > < div class = "ttdeci" > double & g< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Matrix4x4_8h_source.html#l00134" > Matrix4x4.h:134< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Vector3_html_a3d7770a583354b1dfc2f6af1092adc1b" > < div class = "ttname" > < a href = "classEule_1_1Vector3.html#a3d7770a583354b1dfc2f6af1092adc1b" > Eule::Vector3::x< / a > < / div > < div class = "ttdeci" > T x< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Vector3_8h_source.html#l00094" > Vector3.h:94< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Matrix4x4_html_a3fdccd317c5ea363b91f6d8096b28bd7" > < div class = "ttname" > < a href = "classEule_1_1Matrix4x4.html#a3fdccd317c5ea363b91f6d8096b28bd7" > Eule::Matrix4x4::p< / a > < / div > < div class = "ttdeci" > double & p< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Matrix4x4_8h_source.html#l00143" > Matrix4x4.h:143< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Quaternion_html_aaeb89218e886e605c6e2a87c9cb773a4" > < div class = "ttname" > < a href = "classEule_1_1Quaternion.html#aaeb89218e886e605c6e2a87c9cb773a4" > Eule::Quaternion::RotateVector< / a > < / div > < div class = "ttdeci" > Vector3d RotateVector(const Vector3d & vec) const< / div > < div class = "ttdoc" > Will rotate a vector by this quaternion.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Quaternion_8cpp_source.html#l00197" > Quaternion.cpp:197< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Vector4_html_a2cd0433c99303b8934993b2fd2aa1c6e" > < div class = "ttname" > < a href = "classEule_1_1Vector4.html#a2cd0433c99303b8934993b2fd2aa1c6e" > Eule::Vector4::SqrMagnitude< / a > < / div > < div class = "ttdeci" > double SqrMagnitude() const< / div > < div class = "ttdoc" > Will compute the square magnitude.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Vector4_8cpp_source.html#l00031" > Vector4.cpp:31< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Quaternion_html_abcc01358aada56ea5f0db4da18aaf77d" > < div class = "ttname" > < a href = "classEule_1_1Quaternion.html#abcc01358aada56ea5f0db4da18aaf77d" > Eule::Quaternion::Quaternion< / a > < / div > < div class = "ttdeci" > Quaternion()< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Quaternion_8cpp_source.html#l00011" > Quaternion.cpp:11< / a > < / div > < / div >
< div class = "ttc" id = "anamespaceEule_html_aa7ebcddcafa056556a6e17dcc968e7dd" > < div class = "ttname" > < a href = "namespaceEule.html#aa7ebcddcafa056556a6e17dcc968e7dd" > Eule::operator< < < / a > < / div > < div class = "ttdeci" > std::ostream & operator< < (std::ostream & os, const Matrix4x4 & m)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Matrix4x4_8cpp_source.html#l00620" > Matrix4x4.cpp:620< / a > < / div > < / div >
2021-11-15 11:46:15 +01:00
< div class = "ttc" id = "aConstants_8h_html_afa51234d581318384aacb84a195c3a2b" > < div class = "ttname" > < a href = "Constants_8h.html#afa51234d581318384aacb84a195c3a2b" > Rad2Deg< / a > < / div > < div class = "ttdeci" > static constexpr double Rad2Deg< / div > < div class = "ttdoc" > Factor to convert radians to degrees.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Constants_8h_source.html#l00015" > Constants.h:15< / a > < / div > < / div >
2021-11-15 11:35:45 +01:00
< div class = "ttc" id = "aclassEule_1_1Quaternion_html_aa5333ab28dbe4d5ae15ab5dbc36b90ca" > < div class = "ttname" > < a href = "classEule_1_1Quaternion.html#aa5333ab28dbe4d5ae15ab5dbc36b90ca" > Eule::Quaternion::Conjugate< / a > < / div > < div class = "ttdeci" > Quaternion Conjugate() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Quaternion_8cpp_source.html#l00187" > Quaternion.cpp:187< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Quaternion_html_a704d63f0f2cd2d50fd61562e3c2eb576" > < div class = "ttname" > < a href = "classEule_1_1Quaternion.html#a704d63f0f2cd2d50fd61562e3c2eb576" > Eule::Quaternion::Inverse< / a > < / div > < div class = "ttdeci" > Quaternion Inverse() const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Quaternion_8cpp_source.html#l00175" > Quaternion.cpp:175< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Quaternion_html_a516d4dcc7c6f13d8846070b72f588210" > < div class = "ttname" > < a href = "classEule_1_1Quaternion.html#a516d4dcc7c6f13d8846070b72f588210" > Eule::Quaternion::operator==< / a > < / div > < div class = "ttdeci" > bool operator==(const Quaternion & q) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Quaternion_8cpp_source.html#l00165" > Quaternion.cpp:165< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Matrix4x4_html_a68920de2728741859aa7cb3d245aa2c3" > < div class = "ttname" > < a href = "classEule_1_1Matrix4x4.html#a68920de2728741859aa7cb3d245aa2c3" > Eule::Matrix4x4::c< / a > < / div > < div class = "ttdeci" > double & c< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Matrix4x4_8h_source.html#l00130" > Matrix4x4.h:130< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Quaternion_html" > < div class = "ttname" > < a href = "classEule_1_1Quaternion.html" > Eule::Quaternion< / a > < / div > < div class = "ttdoc" > 3D rotation representation< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Quaternion_8h_source.html#l00010" > Quaternion.h:10< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Matrix4x4_html_ab3ff5bc09a2598faa76188d0cc31addb" > < div class = "ttname" > < a href = "classEule_1_1Matrix4x4.html#ab3ff5bc09a2598faa76188d0cc31addb" > Eule::Matrix4x4::a< / a > < / div > < div class = "ttdeci" > double & a< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Matrix4x4_8h_source.html#l00128" > Matrix4x4.h:128< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Vector4_html_a994773dc2da079a335f4b57153cf82c9" > < div class = "ttname" > < a href = "classEule_1_1Vector4.html#a994773dc2da079a335f4b57153cf82c9" > Eule::Vector4::y< / a > < / div > < div class = "ttdeci" > T y< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Vector4_8h_source.html#l00089" > Vector4.h:89< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Quaternion_html_a1a97201d7deb56f543d65be9741cd2bd" > < div class = "ttname" > < a href = "classEule_1_1Quaternion.html#a1a97201d7deb56f543d65be9741cd2bd" > Eule::Quaternion::operator!=< / a > < / div > < div class = "ttdeci" > bool operator!=(const Quaternion & q) const< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Quaternion_8cpp_source.html#l00170" > Quaternion.cpp:170< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Quaternion_html_aa071c90a64d21cbb8109366bf2449838" > < div class = "ttname" > < a href = "classEule_1_1Quaternion.html#aa071c90a64d21cbb8109366bf2449838" > Eule::Quaternion::operator/=< / a > < / div > < div class = "ttdeci" > Quaternion & operator/=(const Quaternion & q)< / div > < div class = "ttdoc" > Also divides.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Quaternion_8cpp_source.html#l00152" > Quaternion.cpp:152< / a > < / div > < / div >
< div class = "ttc" id = "anamespaceEule_html" > < div class = "ttname" > < a href = "namespaceEule.html" > Eule< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Collider_8h_source.html#l00004" > Collider.h:4< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Vector3_html_a716e038c7b599bc5c741dfc0a3c42146" > < div class = "ttname" > < a href = "classEule_1_1Vector3.html#a716e038c7b599bc5c741dfc0a3c42146" > Eule::Vector3::y< / a > < / div > < div class = "ttdeci" > T y< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "Vector3_8h_source.html#l00095" > Vector3.h:95< / a > < / div > < / div >
< div class = "ttc" id = "aclassEule_1_1Vector4_html" > < div class = "ttname" > < a href = "classEule_1_1Vector4.html" > Eule::Vector4< double > < / a > < / div > < / div >
<!-- start footer part -->
< hr class = "footer" / > < address class = "footer" > < small >
2021-11-15 11:46:15 +01:00
Generated on Mon Nov 15 2021 11:45:52 for Leonetienne/Eule by   < a href = "http://www.doxygen.org/index.html" >
2021-11-15 11:35:45 +01:00
< img class = "footer" src = "doxygen.png" alt = "doxygen" / >
< / a > 1.8.17
< / small > < / address >
< / body >
< / html >