PageRenderTime 54ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 1ms

/doc/html/_matrix4_8h_source.html

https://bitbucket.org/Britefury/britefury-math-library
HTML | 1458 lines | 1437 code | 18 blank | 3 comment | 0 complexity | acd174eb77cb067abbb18f72267ed5ac MD5 | raw file
Possible License(s): BSD-3-Clause

Large files files are truncated, but you can click here to view the full file

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <title>Britefury Math Library: src/Math/Matrix4.h Source File</title>
  6. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  7. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  8. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  9. <script type="text/javascript" src="jquery.js"></script>
  10. <script type="text/javascript" src="search/search.js"></script>
  11. <script type="text/javascript">
  12. $(document).ready(function() { searchBox.OnSelectItem(0); });
  13. </script>
  14. </head>
  15. <body>
  16. <div id="top"><!-- do not remove this div! -->
  17. <div id="titlearea">
  18. <table cellspacing="0" cellpadding="0">
  19. <tbody>
  20. <tr style="height: 56px;">
  21. <td style="padding-left: 0.5em;">
  22. <div id="projectname">Britefury Math Library
  23. </div>
  24. </td>
  25. </tr>
  26. </tbody>
  27. </table>
  28. </div>
  29. <!-- Generated by Doxygen 1.7.5.1 -->
  30. <script type="text/javascript">
  31. var searchBox = new SearchBox("searchBox", "search",false,'Search');
  32. </script>
  33. <div id="navrow1" class="tabs">
  34. <ul class="tablist">
  35. <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  36. <li><a href="annotated.html"><span>Classes</span></a></li>
  37. <li class="current"><a href="files.html"><span>Files</span></a></li>
  38. <li>
  39. <div id="MSearchBox" class="MSearchBoxInactive">
  40. <span class="left">
  41. <img id="MSearchSelect" src="search/mag_sel.png"
  42. onmouseover="return searchBox.OnSearchSelectShow()"
  43. onmouseout="return searchBox.OnSearchSelectHide()"
  44. alt=""/>
  45. <input type="text" id="MSearchField" value="Search" accesskey="S"
  46. onfocus="searchBox.OnSearchFieldFocus(true)"
  47. onblur="searchBox.OnSearchFieldFocus(false)"
  48. onkeyup="searchBox.OnSearchFieldChange(event)"/>
  49. </span><span class="right">
  50. <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  51. </span>
  52. </div>
  53. </li>
  54. </ul>
  55. </div>
  56. <div id="navrow2" class="tabs2">
  57. <ul class="tablist">
  58. <li><a href="files.html"><span>File&#160;List</span></a></li>
  59. <li><a href="globals.html"><span>File&#160;Members</span></a></li>
  60. </ul>
  61. </div>
  62. <div class="header">
  63. <div class="headertitle">
  64. <div class="title">src/Math/Matrix4.h</div> </div>
  65. </div>
  66. <div class="contents">
  67. <a href="_matrix4_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//##************************</span>
  68. <a name="l00002"></a>00002 <span class="comment">//##* This source code is licensed under the terms and conditions of the BSD license,</span>
  69. <a name="l00003"></a>00003 <span class="comment">//##* the full text of which can be found in the file named &#39;License.txt&#39; that</span>
  70. <a name="l00004"></a>00004 <span class="comment">//##* accompanies this code. (C) copyright Geoffrey French 1999-2010.</span>
  71. <a name="l00005"></a>00005 <span class="comment">//##************************</span>
  72. <a name="l00006"></a>00006 <span class="comment">/* by: Geoffrey French</span>
  73. <a name="l00007"></a>00007 <span class="comment"> last revision: 14/Nov/2002</span>
  74. <a name="l00008"></a>00008 <span class="comment"> title: 4x4 transformation matrix class with mathematical operations.</span>
  75. <a name="l00009"></a>00009 <span class="comment"></span>
  76. <a name="l00010"></a>00010 <span class="comment"> Implemented as follows:</span>
  77. <a name="l00011"></a>00011 <span class="comment"></span>
  78. <a name="l00012"></a>00012 <span class="comment"> use the macros iMA, iMB,.... iMP to access the members by letter</span>
  79. <a name="l00013"></a>00013 <span class="comment"> use the macros iMyx where x and y are numbers in the range 0..3 to access the</span>
  80. <a name="l00014"></a>00014 <span class="comment"> members where x and y are the coordinates of the matrix member</span>
  81. <a name="l00015"></a>00015 <span class="comment">*/</span>
  82. <a name="l00016"></a>00016 <span class="preprocessor">#ifndef MATRIX4_H__</span>
  83. <a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor">#define MATRIX4_H__</span>
  84. <a name="l00018"></a>00018 <span class="preprocessor"></span>
  85. <a name="l00019"></a>00019 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
  86. <a name="l00020"></a>00020
  87. <a name="l00021"></a>00021 <span class="preprocessor">#include &lt;<a class="code" href="radians_8h.html">Math/radians.h</a>&gt;</span>
  88. <a name="l00022"></a>00022
  89. <a name="l00023"></a>00023 <span class="preprocessor">#include &lt;<a class="code" href="_vector2_8h.html">Math/Vector2.h</a>&gt;</span>
  90. <a name="l00024"></a>00024 <span class="preprocessor">#include &lt;<a class="code" href="_vector3_8h.html">Math/Vector3.h</a>&gt;</span>
  91. <a name="l00025"></a>00025 <span class="preprocessor">#include &lt;<a class="code" href="_point2_8h.html">Math/Point2.h</a>&gt;</span>
  92. <a name="l00026"></a>00026 <span class="preprocessor">#include &lt;<a class="code" href="_point3_8h.html">Math/Point3.h</a>&gt;</span>
  93. <a name="l00027"></a>00027 <span class="preprocessor">#include &lt;<a class="code" href="_point4_8h.html">Math/Point4.h</a>&gt;</span>
  94. <a name="l00028"></a>00028 <span class="preprocessor">#include &lt;<a class="code" href="_plane_8h.html">Math/Plane.h</a>&gt;</span>
  95. <a name="l00029"></a>00029 <span class="preprocessor">#include &lt;<a class="code" href="_euler_rotation_8h.html">Math/EulerRotation.h</a>&gt;</span>
  96. <a name="l00030"></a>00030 <span class="preprocessor">#include &lt;<a class="code" href="_quaternion_8h.html">Math/Quaternion.h</a>&gt;</span>
  97. <a name="l00031"></a>00031 <span class="preprocessor">#include &lt;<a class="code" href="_segment3_8h.html">Math/Segment3.h</a>&gt;</span>
  98. <a name="l00032"></a>00032 <span class="preprocessor">#include &lt;<a class="code" href="_segment2_8h.html">Math/Segment2.h</a>&gt;</span>
  99. <a name="l00033"></a>00033 <span class="preprocessor">#include &lt;<a class="code" href="_triangle2_8h.html">Math/Triangle2.h</a>&gt;</span>
  100. <a name="l00034"></a>00034 <span class="preprocessor">#include &lt;<a class="code" href="_triangle3_8h.html">Math/Triangle3.h</a>&gt;</span>
  101. <a name="l00035"></a>00035 <span class="preprocessor">#include &lt;<a class="code" href="epsilon_8h.html">Math/epsilon.h</a>&gt;</span>
  102. <a name="l00036"></a>00036
  103. <a name="l00037"></a>00037
  104. <a name="l00038"></a>00038
  105. <a name="l00039"></a>00039 <span class="comment">//declaration of Vector3 operator*(const Vector3 &amp;v, const Matrix4 &amp;m)</span>
  106. <a name="l00040"></a>00040 <span class="comment">//needed in Matrix4::transformUnit()</span>
  107. <a name="l00041"></a>00041 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Real&gt; <span class="keyword">class </span><a class="code" href="class_matrix4.html">Matrix4</a>;
  108. <a name="l00042"></a>00042 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Real&gt; <span class="keyword">inline</span> <a class="code" href="class_vector3.html">Vector3&lt;Real&gt;</a> <a class="code" href="_matrix4_8h.html#a1297d29e0a3df70f644f376c83e9ebcd">operator*</a>(<span class="keyword">const</span> <a class="code" href="class_vector3.html">Vector3&lt;Real&gt;</a> &amp;v, <span class="keyword">const</span> <a class="code" href="class_matrix4.html">Matrix4&lt;Real&gt;</a> &amp;m);
  109. <a name="l00043"></a>00043
  110. <a name="l00044"></a>00044
  111. <a name="l00086"></a><a class="code" href="class_matrix4.html">00086</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Real&gt; <span class="keyword">class </span><a class="code" href="class_matrix4.html">Matrix4</a>
  112. <a name="l00087"></a>00087 {
  113. <a name="l00088"></a>00088 <span class="keyword">public</span>:
  114. <a name="l00089"></a>00089 <span class="keyword">union</span>
  115. <a name="l00090"></a>00090 {
  116. <a name="l00091"></a><a class="code" href="class_matrix4.html#a4b456ca8031e6ea32d44f7a49ec57f3e">00091</a> Real <a class="code" href="class_matrix4.html#a4b456ca8031e6ea32d44f7a49ec57f3e">d</a>[16]; <span class="comment">//16 (4x4) floats</span>
  117. <a name="l00092"></a>00092
  118. <a name="l00093"></a>00093 <span class="keyword">struct</span>
  119. <a name="l00094"></a>00094 {
  120. <a name="l00095"></a><a class="code" href="class_matrix4.html#a7cc28ea065915abaab3f0ab292e59af7">00095</a> Real <a class="code" href="class_matrix4.html#aa554982de848cd1d935350cf60b4d835">iMA</a>, <a class="code" href="class_matrix4.html#ad1c9c9dbbb4aa24d59c2a84580c35add">iME</a>, <a class="code" href="class_matrix4.html#a21bd76eb25edd8cad5612f40e23b028b">iMI</a>, <a class="code" href="class_matrix4.html#a7cc28ea065915abaab3f0ab292e59af7">iMM</a>;
  121. <a name="l00096"></a><a class="code" href="class_matrix4.html#a70e188ea648953cb3cc516c9510880e2">00096</a> Real <a class="code" href="class_matrix4.html#aeb32b3cfa0c165daca3ee35ef104cc22">iMB</a>, <a class="code" href="class_matrix4.html#a38d958297711f965ee99dfb1b30db85e">iMF</a>, <a class="code" href="class_matrix4.html#a69ceb4b6a45f1b70247eeb7e0b3f5ee0">iMJ</a>, <a class="code" href="class_matrix4.html#a70e188ea648953cb3cc516c9510880e2">iMN</a>;
  122. <a name="l00097"></a><a class="code" href="class_matrix4.html#aa9dbc58b3ae50a26174481e9d3505e72">00097</a> Real <a class="code" href="class_matrix4.html#a79bff5212ef85df93328acd8ec9ff62a">iMC</a>, <a class="code" href="class_matrix4.html#a58ee570bc94572cdc7fe5b9d10263ea9">iMG</a>, <a class="code" href="class_matrix4.html#a80838d6eeb1bb05f8ee6a6d7115f30c4">iMK</a>, <a class="code" href="class_matrix4.html#aa9dbc58b3ae50a26174481e9d3505e72">iMO</a>;
  123. <a name="l00098"></a><a class="code" href="class_matrix4.html#ad3f07b2fd344562774e4490950f4253e">00098</a> Real <a class="code" href="class_matrix4.html#a9ef675fbdeaa9afefb54469077ccc846">iMD</a>, <a class="code" href="class_matrix4.html#abd61bdac3d0cab04d382bd970b51e658">iMH</a>, <a class="code" href="class_matrix4.html#a0ac12d4f268bbcc73899b2fa04c4638b">iML</a>, <a class="code" href="class_matrix4.html#ad3f07b2fd344562774e4490950f4253e">iMP</a>;
  124. <a name="l00099"></a>00099 };
  125. <a name="l00100"></a>00100
  126. <a name="l00101"></a>00101 <span class="keyword">struct</span>
  127. <a name="l00102"></a>00102 {
  128. <a name="l00103"></a><a class="code" href="class_matrix4.html#a66fefd8bf8ee98d0dbc02ea1eb59f65a">00103</a> Real <a class="code" href="class_matrix4.html#a76d756154741216ac2f73fb9e9f89006">iM00</a>, <a class="code" href="class_matrix4.html#aed0bbe3e9e436ceeaeebbbd93c697a63">iM10</a>, <a class="code" href="class_matrix4.html#a93acc31d5e459f2928ff2135274bcd30">iM20</a>, <a class="code" href="class_matrix4.html#a66fefd8bf8ee98d0dbc02ea1eb59f65a">iM30</a>;
  129. <a name="l00104"></a><a class="code" href="class_matrix4.html#a4df8a6008c153fe28f6e161b36719481">00104</a> Real <a class="code" href="class_matrix4.html#a03cea929e9aeb7f8472ecd057f883393">iM01</a>, <a class="code" href="class_matrix4.html#a1c9b84f47f6ed1bb795c9a25e1ebab40">iM11</a>, <a class="code" href="class_matrix4.html#afdb999b0012aa5f02104f77342a4e113">iM21</a>, <a class="code" href="class_matrix4.html#a4df8a6008c153fe28f6e161b36719481">iM31</a>;
  130. <a name="l00105"></a><a class="code" href="class_matrix4.html#a14be19ff0ceef2ed5920b67dd8e6f255">00105</a> Real <a class="code" href="class_matrix4.html#a258ee1d48fe0d0124d8234834df25a38">iM02</a>, <a class="code" href="class_matrix4.html#a8afc47330561af81f1edca7f1aab5362">iM12</a>, <a class="code" href="class_matrix4.html#a20639ce0e5de5f6ddb0b1efed8218c23">iM22</a>, <a class="code" href="class_matrix4.html#a14be19ff0ceef2ed5920b67dd8e6f255">iM32</a>;
  131. <a name="l00106"></a><a class="code" href="class_matrix4.html#a093715aa61dc2c4b482aeb73b3839bfa">00106</a> Real <a class="code" href="class_matrix4.html#a67e3eb6e2754a9ef6619153b87416f98">iM03</a>, <a class="code" href="class_matrix4.html#a5bd1b74ba207b157a99d09af2b5ccef5">iM13</a>, <a class="code" href="class_matrix4.html#a39bc3d9a332e3d69375ec53c10553c52">iM23</a>, <a class="code" href="class_matrix4.html#a093715aa61dc2c4b482aeb73b3839bfa">iM33</a>;
  132. <a name="l00107"></a>00107 };
  133. <a name="l00108"></a>00108 };
  134. <a name="l00109"></a>00109
  135. <a name="l00110"></a>00110
  136. <a name="l00111"></a>00111
  137. <a name="l00115"></a><a class="code" href="class_matrix4.html#aaada5087a8dbf2fea0053e12ba617a36">00115</a> <span class="keyword">inline</span> <a class="code" href="class_matrix4.html#aaada5087a8dbf2fea0053e12ba617a36">Matrix4</a>()
  138. <a name="l00116"></a>00116 {
  139. <a name="l00117"></a>00117 <a class="code" href="class_matrix4.html#a76d756154741216ac2f73fb9e9f89006">iM00</a> = (Real)1.0; <a class="code" href="class_matrix4.html#a03cea929e9aeb7f8472ecd057f883393">iM01</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a258ee1d48fe0d0124d8234834df25a38">iM02</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a67e3eb6e2754a9ef6619153b87416f98">iM03</a> = (Real)0.0;
  140. <a name="l00118"></a>00118 <a class="code" href="class_matrix4.html#aed0bbe3e9e436ceeaeebbbd93c697a63">iM10</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a1c9b84f47f6ed1bb795c9a25e1ebab40">iM11</a> = (Real)1.0; <a class="code" href="class_matrix4.html#a8afc47330561af81f1edca7f1aab5362">iM12</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a5bd1b74ba207b157a99d09af2b5ccef5">iM13</a> = (Real)0.0;
  141. <a name="l00119"></a>00119 <a class="code" href="class_matrix4.html#a93acc31d5e459f2928ff2135274bcd30">iM20</a> = (Real)0.0; <a class="code" href="class_matrix4.html#afdb999b0012aa5f02104f77342a4e113">iM21</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a20639ce0e5de5f6ddb0b1efed8218c23">iM22</a> = (Real)1.0; <a class="code" href="class_matrix4.html#a39bc3d9a332e3d69375ec53c10553c52">iM23</a> = (Real)0.0;
  142. <a name="l00120"></a>00120 <a class="code" href="class_matrix4.html#a66fefd8bf8ee98d0dbc02ea1eb59f65a">iM30</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a4df8a6008c153fe28f6e161b36719481">iM31</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a14be19ff0ceef2ed5920b67dd8e6f255">iM32</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a093715aa61dc2c4b482aeb73b3839bfa">iM33</a> = (Real)1.0;
  143. <a name="l00121"></a>00121 }
  144. <a name="l00122"></a>00122
  145. <a name="l00126"></a><a class="code" href="class_matrix4.html#a8c53ff621ebe756fb5fad129c497ccac">00126</a> <span class="keyword">inline</span> <a class="code" href="class_matrix4.html#aaada5087a8dbf2fea0053e12ba617a36">Matrix4</a>(Real m00, Real m01, Real m02, Real m03,
  146. <a name="l00127"></a>00127 Real m10, Real m11, Real m12, Real m13,
  147. <a name="l00128"></a>00128 Real m20, Real m21, Real m22, Real m23,
  148. <a name="l00129"></a>00129 Real m30, Real m31, Real m32, Real m33)
  149. <a name="l00130"></a>00130 {
  150. <a name="l00131"></a>00131 <a class="code" href="class_matrix4.html#a76d756154741216ac2f73fb9e9f89006">iM00</a> = m00; <a class="code" href="class_matrix4.html#a03cea929e9aeb7f8472ecd057f883393">iM01</a> = m01; <a class="code" href="class_matrix4.html#a258ee1d48fe0d0124d8234834df25a38">iM02</a> = m02; <a class="code" href="class_matrix4.html#a67e3eb6e2754a9ef6619153b87416f98">iM03</a> = m03;
  151. <a name="l00132"></a>00132 <a class="code" href="class_matrix4.html#aed0bbe3e9e436ceeaeebbbd93c697a63">iM10</a> = m10; <a class="code" href="class_matrix4.html#a1c9b84f47f6ed1bb795c9a25e1ebab40">iM11</a> = m11; <a class="code" href="class_matrix4.html#a8afc47330561af81f1edca7f1aab5362">iM12</a> = m12; <a class="code" href="class_matrix4.html#a5bd1b74ba207b157a99d09af2b5ccef5">iM13</a> = m13;
  152. <a name="l00133"></a>00133 <a class="code" href="class_matrix4.html#a93acc31d5e459f2928ff2135274bcd30">iM20</a> = m20; <a class="code" href="class_matrix4.html#afdb999b0012aa5f02104f77342a4e113">iM21</a> = m21; <a class="code" href="class_matrix4.html#a20639ce0e5de5f6ddb0b1efed8218c23">iM22</a> = m22; <a class="code" href="class_matrix4.html#a39bc3d9a332e3d69375ec53c10553c52">iM23</a> = m23;
  153. <a name="l00134"></a>00134 <a class="code" href="class_matrix4.html#a66fefd8bf8ee98d0dbc02ea1eb59f65a">iM30</a> = m30; <a class="code" href="class_matrix4.html#a4df8a6008c153fe28f6e161b36719481">iM31</a> = m31; <a class="code" href="class_matrix4.html#a14be19ff0ceef2ed5920b67dd8e6f255">iM32</a> = m32; <a class="code" href="class_matrix4.html#a093715aa61dc2c4b482aeb73b3839bfa">iM33</a> = m33;
  154. <a name="l00135"></a>00135 }
  155. <a name="l00136"></a>00136
  156. <a name="l00153"></a><a class="code" href="class_matrix4.html#aa36b735cd66c467167f11e17a30112b3">00153</a> <span class="keyword">inline</span> <a class="code" href="class_matrix4.html#aaada5087a8dbf2fea0053e12ba617a36">Matrix4</a>(<span class="keyword">const</span> <a class="code" href="class_vector3.html">Vector3&lt;Real&gt;</a> &amp;i, <span class="keyword">const</span> <a class="code" href="class_vector3.html">Vector3&lt;Real&gt;</a> &amp;j, <span class="keyword">const</span> <a class="code" href="class_vector3.html">Vector3&lt;Real&gt;</a> &amp;k)
  157. <a name="l00154"></a>00154 {
  158. <a name="l00155"></a>00155 <a class="code" href="class_matrix4.html#a76d756154741216ac2f73fb9e9f89006">iM00</a> = i.<a class="code" href="class_vector3.html#a7a092c6418ef803c8aab7a79eec9d13b">x</a>; <a class="code" href="class_matrix4.html#a03cea929e9aeb7f8472ecd057f883393">iM01</a> = j.<a class="code" href="class_vector3.html#a7a092c6418ef803c8aab7a79eec9d13b">x</a>; <a class="code" href="class_matrix4.html#a258ee1d48fe0d0124d8234834df25a38">iM02</a> = k.<a class="code" href="class_vector3.html#a7a092c6418ef803c8aab7a79eec9d13b">x</a>; <a class="code" href="class_matrix4.html#a67e3eb6e2754a9ef6619153b87416f98">iM03</a> = (Real)0.0;
  159. <a name="l00156"></a>00156 <a class="code" href="class_matrix4.html#aed0bbe3e9e436ceeaeebbbd93c697a63">iM10</a> = i.<a class="code" href="class_vector3.html#acb7d53b283a9ef20c0d21efd72749c7a">y</a>; <a class="code" href="class_matrix4.html#a1c9b84f47f6ed1bb795c9a25e1ebab40">iM11</a> = j.<a class="code" href="class_vector3.html#acb7d53b283a9ef20c0d21efd72749c7a">y</a>; <a class="code" href="class_matrix4.html#a8afc47330561af81f1edca7f1aab5362">iM12</a> = k.<a class="code" href="class_vector3.html#acb7d53b283a9ef20c0d21efd72749c7a">y</a>; <a class="code" href="class_matrix4.html#a5bd1b74ba207b157a99d09af2b5ccef5">iM13</a> = (Real)0.0;
  160. <a name="l00157"></a>00157 <a class="code" href="class_matrix4.html#a93acc31d5e459f2928ff2135274bcd30">iM20</a> = i.<a class="code" href="class_vector3.html#afe8f021bf6c0a27618a740bce2eec9c2">z</a>; <a class="code" href="class_matrix4.html#afdb999b0012aa5f02104f77342a4e113">iM21</a> = j.<a class="code" href="class_vector3.html#afe8f021bf6c0a27618a740bce2eec9c2">z</a>; <a class="code" href="class_matrix4.html#a20639ce0e5de5f6ddb0b1efed8218c23">iM22</a> = k.<a class="code" href="class_vector3.html#afe8f021bf6c0a27618a740bce2eec9c2">z</a>; <a class="code" href="class_matrix4.html#a39bc3d9a332e3d69375ec53c10553c52">iM23</a> = (Real)0.0;
  161. <a name="l00158"></a>00158 <a class="code" href="class_matrix4.html#a66fefd8bf8ee98d0dbc02ea1eb59f65a">iM30</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a4df8a6008c153fe28f6e161b36719481">iM31</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a14be19ff0ceef2ed5920b67dd8e6f255">iM32</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a093715aa61dc2c4b482aeb73b3839bfa">iM33</a> = (Real)1.0;
  162. <a name="l00159"></a>00159 }
  163. <a name="l00160"></a>00160
  164. <a name="l00178"></a><a class="code" href="class_matrix4.html#a38582ff5813210523a8640952fed8586">00178</a> <span class="keyword">inline</span> <a class="code" href="class_matrix4.html#aaada5087a8dbf2fea0053e12ba617a36">Matrix4</a>(<span class="keyword">const</span> <a class="code" href="class_vector3.html">Vector3&lt;Real&gt;</a> &amp;i, <span class="keyword">const</span> <a class="code" href="class_vector3.html">Vector3&lt;Real&gt;</a> &amp;j, <span class="keyword">const</span> <a class="code" href="class_vector3.html">Vector3&lt;Real&gt;</a> &amp;k, <span class="keyword">const</span> <a class="code" href="class_vector3.html">Vector3&lt;Real&gt;</a> &amp;translation)
  165. <a name="l00179"></a>00179 {
  166. <a name="l00180"></a>00180 <a class="code" href="class_matrix4.html#a76d756154741216ac2f73fb9e9f89006">iM00</a> = i.<a class="code" href="class_vector3.html#a7a092c6418ef803c8aab7a79eec9d13b">x</a>; <a class="code" href="class_matrix4.html#a03cea929e9aeb7f8472ecd057f883393">iM01</a> = j.<a class="code" href="class_vector3.html#a7a092c6418ef803c8aab7a79eec9d13b">x</a>; <a class="code" href="class_matrix4.html#a258ee1d48fe0d0124d8234834df25a38">iM02</a> = k.<a class="code" href="class_vector3.html#a7a092c6418ef803c8aab7a79eec9d13b">x</a>; <a class="code" href="class_matrix4.html#a67e3eb6e2754a9ef6619153b87416f98">iM03</a> = translation.<a class="code" href="class_vector3.html#a7a092c6418ef803c8aab7a79eec9d13b">x</a>;
  167. <a name="l00181"></a>00181 <a class="code" href="class_matrix4.html#aed0bbe3e9e436ceeaeebbbd93c697a63">iM10</a> = i.<a class="code" href="class_vector3.html#acb7d53b283a9ef20c0d21efd72749c7a">y</a>; <a class="code" href="class_matrix4.html#a1c9b84f47f6ed1bb795c9a25e1ebab40">iM11</a> = j.<a class="code" href="class_vector3.html#acb7d53b283a9ef20c0d21efd72749c7a">y</a>; <a class="code" href="class_matrix4.html#a8afc47330561af81f1edca7f1aab5362">iM12</a> = k.<a class="code" href="class_vector3.html#acb7d53b283a9ef20c0d21efd72749c7a">y</a>; <a class="code" href="class_matrix4.html#a5bd1b74ba207b157a99d09af2b5ccef5">iM13</a> = translation.<a class="code" href="class_vector3.html#acb7d53b283a9ef20c0d21efd72749c7a">y</a>;
  168. <a name="l00182"></a>00182 <a class="code" href="class_matrix4.html#a93acc31d5e459f2928ff2135274bcd30">iM20</a> = i.<a class="code" href="class_vector3.html#afe8f021bf6c0a27618a740bce2eec9c2">z</a>; <a class="code" href="class_matrix4.html#afdb999b0012aa5f02104f77342a4e113">iM21</a> = j.<a class="code" href="class_vector3.html#afe8f021bf6c0a27618a740bce2eec9c2">z</a>; <a class="code" href="class_matrix4.html#a20639ce0e5de5f6ddb0b1efed8218c23">iM22</a> = k.<a class="code" href="class_vector3.html#afe8f021bf6c0a27618a740bce2eec9c2">z</a>; <a class="code" href="class_matrix4.html#a39bc3d9a332e3d69375ec53c10553c52">iM23</a> = translation.<a class="code" href="class_vector3.html#afe8f021bf6c0a27618a740bce2eec9c2">z</a>
  169. <a name="l00183"></a>00183 <a class="code" href="class_matrix4.html#a66fefd8bf8ee98d0dbc02ea1eb59f65a">iM30</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a4df8a6008c153fe28f6e161b36719481">iM31</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a14be19ff0ceef2ed5920b67dd8e6f255">iM32</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a093715aa61dc2c4b482aeb73b3839bfa">iM33</a> = (Real)1.0;
  170. <a name="l00184"></a>00184 }
  171. <a name="l00185"></a>00185
  172. <a name="l00203"></a><a class="code" href="class_matrix4.html#a5c71c5bce7ace743a66544816d650174">00203</a> <span class="keyword">inline</span> <a class="code" href="class_matrix4.html#aaada5087a8dbf2fea0053e12ba617a36">Matrix4</a>(<span class="keyword">const</span> <a class="code" href="class_point3.html">Point3&lt;Real&gt;</a> &amp;o, <span class="keyword">const</span> <a class="code" href="class_vector3.html">Vector3&lt;Real&gt;</a> &amp;i, <span class="keyword">const</span> <a class="code" href="class_vector3.html">Vector3&lt;Real&gt;</a> &amp;j, <span class="keyword">const</span> <a class="code" href="class_vector3.html">Vector3&lt;Real&gt;</a> &amp;k)
  173. <a name="l00204"></a>00204 {
  174. <a name="l00205"></a>00205 <a class="code" href="class_matrix4.html#a76d756154741216ac2f73fb9e9f89006">iM00</a> = i.<a class="code" href="class_vector3.html#a7a092c6418ef803c8aab7a79eec9d13b">x</a>; <a class="code" href="class_matrix4.html#a03cea929e9aeb7f8472ecd057f883393">iM01</a> = j.<a class="code" href="class_vector3.html#a7a092c6418ef803c8aab7a79eec9d13b">x</a>; <a class="code" href="class_matrix4.html#a258ee1d48fe0d0124d8234834df25a38">iM02</a> = k.<a class="code" href="class_vector3.html#a7a092c6418ef803c8aab7a79eec9d13b">x</a>; <a class="code" href="class_matrix4.html#a67e3eb6e2754a9ef6619153b87416f98">iM03</a> = o.<a class="code" href="class_point3.html#ac8955e61b82c40e2b7601813decc1ab4">x</a>;
  175. <a name="l00206"></a>00206 <a class="code" href="class_matrix4.html#aed0bbe3e9e436ceeaeebbbd93c697a63">iM10</a> = i.<a class="code" href="class_vector3.html#acb7d53b283a9ef20c0d21efd72749c7a">y</a>; <a class="code" href="class_matrix4.html#a1c9b84f47f6ed1bb795c9a25e1ebab40">iM11</a> = j.<a class="code" href="class_vector3.html#acb7d53b283a9ef20c0d21efd72749c7a">y</a>; <a class="code" href="class_matrix4.html#a8afc47330561af81f1edca7f1aab5362">iM12</a> = k.<a class="code" href="class_vector3.html#acb7d53b283a9ef20c0d21efd72749c7a">y</a>; <a class="code" href="class_matrix4.html#a5bd1b74ba207b157a99d09af2b5ccef5">iM13</a> = o.<a class="code" href="class_point3.html#a0279229843c1d7e3949003a8234189b6">y</a>;
  176. <a name="l00207"></a>00207 <a class="code" href="class_matrix4.html#a93acc31d5e459f2928ff2135274bcd30">iM20</a> = i.<a class="code" href="class_vector3.html#afe8f021bf6c0a27618a740bce2eec9c2">z</a>; <a class="code" href="class_matrix4.html#afdb999b0012aa5f02104f77342a4e113">iM21</a> = j.<a class="code" href="class_vector3.html#afe8f021bf6c0a27618a740bce2eec9c2">z</a>; <a class="code" href="class_matrix4.html#a20639ce0e5de5f6ddb0b1efed8218c23">iM22</a> = k.<a class="code" href="class_vector3.html#afe8f021bf6c0a27618a740bce2eec9c2">z</a>; <a class="code" href="class_matrix4.html#a39bc3d9a332e3d69375ec53c10553c52">iM23</a> = o.<a class="code" href="class_point3.html#a39a2d6679cdd785c360f552c7ae52d6e">z</a>
  177. <a name="l00208"></a>00208 <a class="code" href="class_matrix4.html#a66fefd8bf8ee98d0dbc02ea1eb59f65a">iM30</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a4df8a6008c153fe28f6e161b36719481">iM31</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a14be19ff0ceef2ed5920b67dd8e6f255">iM32</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a093715aa61dc2c4b482aeb73b3839bfa">iM33</a> = (Real)1.0;
  178. <a name="l00209"></a>00209 }
  179. <a name="l00210"></a>00210
  180. <a name="l00234"></a><a class="code" href="class_matrix4.html#aad258e609e36d60d1c3fe9245816ecf1">00234</a> <span class="keyword">inline</span> <a class="code" href="class_matrix4.html#aaada5087a8dbf2fea0053e12ba617a36">Matrix4</a>(<span class="keyword">const</span> <a class="code" href="class_point3.html">Point3&lt;Real&gt;</a> &amp;o, <span class="keyword">const</span> <a class="code" href="class_point3.html">Point3&lt;Real&gt;</a> &amp;oi, <span class="keyword">const</span> <a class="code" href="class_point3.html">Point3&lt;Real&gt;</a> &amp;oj, <span class="keyword">const</span> <a class="code" href="class_point3.html">Point3&lt;Real&gt;</a> &amp;ok)
  181. <a name="l00235"></a>00235 {
  182. <a name="l00236"></a>00236 <a class="code" href="class_vector3.html">Vector3&lt;Real&gt;</a> i = oi - o;
  183. <a name="l00237"></a>00237 <a class="code" href="class_vector3.html">Vector3&lt;Real&gt;</a> j = oj - o;
  184. <a name="l00238"></a>00238 <a class="code" href="class_vector3.html">Vector3&lt;Real&gt;</a> k = ok - o;
  185. <a name="l00239"></a>00239 <a class="code" href="class_matrix4.html#a76d756154741216ac2f73fb9e9f89006">iM00</a> = i.<a class="code" href="class_vector3.html#a7a092c6418ef803c8aab7a79eec9d13b">x</a>; <a class="code" href="class_matrix4.html#a03cea929e9aeb7f8472ecd057f883393">iM01</a> = j.<a class="code" href="class_vector3.html#a7a092c6418ef803c8aab7a79eec9d13b">x</a>; <a class="code" href="class_matrix4.html#a258ee1d48fe0d0124d8234834df25a38">iM02</a> = k.<a class="code" href="class_vector3.html#a7a092c6418ef803c8aab7a79eec9d13b">x</a>; <a class="code" href="class_matrix4.html#a67e3eb6e2754a9ef6619153b87416f98">iM03</a> = o.x;
  186. <a name="l00240"></a>00240 <a class="code" href="class_matrix4.html#aed0bbe3e9e436ceeaeebbbd93c697a63">iM10</a> = i.<a class="code" href="class_vector3.html#acb7d53b283a9ef20c0d21efd72749c7a">y</a>; <a class="code" href="class_matrix4.html#a1c9b84f47f6ed1bb795c9a25e1ebab40">iM11</a> = j.<a class="code" href="class_vector3.html#acb7d53b283a9ef20c0d21efd72749c7a">y</a>; <a class="code" href="class_matrix4.html#a8afc47330561af81f1edca7f1aab5362">iM12</a> = k.<a class="code" href="class_vector3.html#acb7d53b283a9ef20c0d21efd72749c7a">y</a>; <a class="code" href="class_matrix4.html#a5bd1b74ba207b157a99d09af2b5ccef5">iM13</a> = o.y;
  187. <a name="l00241"></a>00241 <a class="code" href="class_matrix4.html#a93acc31d5e459f2928ff2135274bcd30">iM20</a> = i.<a class="code" href="class_vector3.html#afe8f021bf6c0a27618a740bce2eec9c2">z</a>; <a class="code" href="class_matrix4.html#afdb999b0012aa5f02104f77342a4e113">iM21</a> = j.<a class="code" href="class_vector3.html#afe8f021bf6c0a27618a740bce2eec9c2">z</a>; <a class="code" href="class_matrix4.html#a20639ce0e5de5f6ddb0b1efed8218c23">iM22</a> = k.<a class="code" href="class_vector3.html#afe8f021bf6c0a27618a740bce2eec9c2">z</a>; <a class="code" href="class_matrix4.html#a39bc3d9a332e3d69375ec53c10553c52">iM23</a> = o.z
  188. <a name="l00242"></a>00242 <a class="code" href="class_matrix4.html#a66fefd8bf8ee98d0dbc02ea1eb59f65a">iM30</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a4df8a6008c153fe28f6e161b36719481">iM31</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a14be19ff0ceef2ed5920b67dd8e6f255">iM32</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a093715aa61dc2c4b482aeb73b3839bfa">iM33</a> = (Real)1.0;
  189. <a name="l00243"></a>00243 }
  190. <a name="l00244"></a>00244
  191. <a name="l00260"></a><a class="code" href="class_matrix4.html#a8d8df9f6453d2513cd619e17fc37916c">00260</a> <span class="keyword">inline</span> <a class="code" href="class_matrix4.html#aaada5087a8dbf2fea0053e12ba617a36">Matrix4</a>(<span class="keyword">const</span> <a class="code" href="class_vector2.html">Vector2&lt;Real&gt;</a> &amp;i, <span class="keyword">const</span> <a class="code" href="class_vector2.html">Vector2&lt;Real&gt;</a> &amp;j)
  192. <a name="l00261"></a>00261 {
  193. <a name="l00262"></a>00262 <a class="code" href="class_matrix4.html#a76d756154741216ac2f73fb9e9f89006">iM00</a> = i.<a class="code" href="class_vector2.html#a88ff786e41deb0417a4a5395e3faa2c5">x</a>; <a class="code" href="class_matrix4.html#a03cea929e9aeb7f8472ecd057f883393">iM01</a> = j.<a class="code" href="class_vector2.html#a88ff786e41deb0417a4a5395e3faa2c5">x</a>; <a class="code" href="class_matrix4.html#a258ee1d48fe0d0124d8234834df25a38">iM02</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a67e3eb6e2754a9ef6619153b87416f98">iM03</a> = (Real)0.0;
  194. <a name="l00263"></a>00263 <a class="code" href="class_matrix4.html#aed0bbe3e9e436ceeaeebbbd93c697a63">iM10</a> = i.<a class="code" href="class_vector2.html#ae75ee05f767de42f759a5bf2578d2ef6">y</a>; <a class="code" href="class_matrix4.html#a1c9b84f47f6ed1bb795c9a25e1ebab40">iM11</a> = j.<a class="code" href="class_vector2.html#ae75ee05f767de42f759a5bf2578d2ef6">y</a>; <a class="code" href="class_matrix4.html#a8afc47330561af81f1edca7f1aab5362">iM12</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a5bd1b74ba207b157a99d09af2b5ccef5">iM13</a> = (Real)0.0;
  195. <a name="l00264"></a>00264 <a class="code" href="class_matrix4.html#a93acc31d5e459f2928ff2135274bcd30">iM20</a> = (Real)0.0; <a class="code" href="class_matrix4.html#afdb999b0012aa5f02104f77342a4e113">iM21</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a20639ce0e5de5f6ddb0b1efed8218c23">iM22</a> = (Real)1.0; <a class="code" href="class_matrix4.html#a39bc3d9a332e3d69375ec53c10553c52">iM23</a> = (Real)0.0;
  196. <a name="l00265"></a>00265 <a class="code" href="class_matrix4.html#a66fefd8bf8ee98d0dbc02ea1eb59f65a">iM30</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a4df8a6008c153fe28f6e161b36719481">iM31</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a14be19ff0ceef2ed5920b67dd8e6f255">iM32</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a093715aa61dc2c4b482aeb73b3839bfa">iM33</a> = (Real)1.0;
  197. <a name="l00266"></a>00266 }
  198. <a name="l00267"></a>00267
  199. <a name="l00284"></a><a class="code" href="class_matrix4.html#a5f0f38e73bed77d8a4876c8bd81db21f">00284</a> <span class="keyword">inline</span> <a class="code" href="class_matrix4.html#aaada5087a8dbf2fea0053e12ba617a36">Matrix4</a>(<span class="keyword">const</span> <a class="code" href="class_vector2.html">Vector2&lt;Real&gt;</a> &amp;i, <span class="keyword">const</span> <a class="code" href="class_vector2.html">Vector2&lt;Real&gt;</a> &amp;j, <span class="keyword">const</span> <a class="code" href="class_vector2.html">Vector2&lt;Real&gt;</a> &amp;translation)
  200. <a name="l00285"></a>00285 {
  201. <a name="l00286"></a>00286 <a class="code" href="class_matrix4.html#a76d756154741216ac2f73fb9e9f89006">iM00</a> = i.<a class="code" href="class_vector2.html#a88ff786e41deb0417a4a5395e3faa2c5">x</a>; <a class="code" href="class_matrix4.html#a03cea929e9aeb7f8472ecd057f883393">iM01</a> = j.<a class="code" href="class_vector2.html#a88ff786e41deb0417a4a5395e3faa2c5">x</a>; <a class="code" href="class_matrix4.html#a258ee1d48fe0d0124d8234834df25a38">iM02</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a67e3eb6e2754a9ef6619153b87416f98">iM03</a> = translation.<a class="code" href="class_vector2.html#a88ff786e41deb0417a4a5395e3faa2c5">x</a>;
  202. <a name="l00287"></a>00287 <a class="code" href="class_matrix4.html#aed0bbe3e9e436ceeaeebbbd93c697a63">iM10</a> = i.<a class="code" href="class_vector2.html#ae75ee05f767de42f759a5bf2578d2ef6">y</a>; <a class="code" href="class_matrix4.html#a1c9b84f47f6ed1bb795c9a25e1ebab40">iM11</a> = j.<a class="code" href="class_vector2.html#ae75ee05f767de42f759a5bf2578d2ef6">y</a>; <a class="code" href="class_matrix4.html#a8afc47330561af81f1edca7f1aab5362">iM12</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a5bd1b74ba207b157a99d09af2b5ccef5">iM13</a> = translation.<a class="code" href="class_vector2.html#ae75ee05f767de42f759a5bf2578d2ef6">y</a>;
  203. <a name="l00288"></a>00288 <a class="code" href="class_matrix4.html#a93acc31d5e459f2928ff2135274bcd30">iM20</a> = (Real)0.0; <a class="code" href="class_matrix4.html#afdb999b0012aa5f02104f77342a4e113">iM21</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a20639ce0e5de5f6ddb0b1efed8218c23">iM22</a> = (Real)1.0; <a class="code" href="class_matrix4.html#a39bc3d9a332e3d69375ec53c10553c52">iM23</a> = (Real)0.0;
  204. <a name="l00289"></a>00289 <a class="code" href="class_matrix4.html#a66fefd8bf8ee98d0dbc02ea1eb59f65a">iM30</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a4df8a6008c153fe28f6e161b36719481">iM31</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a14be19ff0ceef2ed5920b67dd8e6f255">iM32</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a093715aa61dc2c4b482aeb73b3839bfa">iM33</a> = (Real)1.0;
  205. <a name="l00290"></a>00290 }
  206. <a name="l00291"></a>00291
  207. <a name="l00308"></a><a class="code" href="class_matrix4.html#a410c330790a99400b35aaae1d2810a76">00308</a> <span class="keyword">inline</span> <a class="code" href="class_matrix4.html#aaada5087a8dbf2fea0053e12ba617a36">Matrix4</a>(<span class="keyword">const</span> <a class="code" href="class_point2.html">Point2&lt;Real&gt;</a> &amp;o, <span class="keyword">const</span> <a class="code" href="class_vector2.html">Vector2&lt;Real&gt;</a> &amp;i, <span class="keyword">const</span> <a class="code" href="class_vector2.html">Vector2&lt;Real&gt;</a> &amp;j)
  208. <a name="l00309"></a>00309 {
  209. <a name="l00310"></a>00310 <a class="code" href="class_matrix4.html#a76d756154741216ac2f73fb9e9f89006">iM00</a> = i.<a class="code" href="class_vector2.html#a88ff786e41deb0417a4a5395e3faa2c5">x</a>; <a class="code" href="class_matrix4.html#a03cea929e9aeb7f8472ecd057f883393">iM01</a> = j.<a class="code" href="class_vector2.html#a88ff786e41deb0417a4a5395e3faa2c5">x</a>; <a class="code" href="class_matrix4.html#a258ee1d48fe0d0124d8234834df25a38">iM02</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a67e3eb6e2754a9ef6619153b87416f98">iM03</a> = o.<a class="code" href="class_point2.html#ab813862c1eb59b34df82412a09d73b8b">x</a>;
  210. <a name="l00311"></a>00311 <a class="code" href="class_matrix4.html#aed0bbe3e9e436ceeaeebbbd93c697a63">iM10</a> = i.<a class="code" href="class_vector2.html#ae75ee05f767de42f759a5bf2578d2ef6">y</a>; <a class="code" href="class_matrix4.html#a1c9b84f47f6ed1bb795c9a25e1ebab40">iM11</a> = j.<a class="code" href="class_vector2.html#ae75ee05f767de42f759a5bf2578d2ef6">y</a>; <a class="code" href="class_matrix4.html#a8afc47330561af81f1edca7f1aab5362">iM12</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a5bd1b74ba207b157a99d09af2b5ccef5">iM13</a> = o.<a class="code" href="class_point2.html#af6eb4f44dcbf864ef2f92dcaa5203983">y</a>;
  211. <a name="l00312"></a>00312 <a class="code" href="class_matrix4.html#a93acc31d5e459f2928ff2135274bcd30">iM20</a> = (Real)0.0; <a class="code" href="class_matrix4.html#afdb999b0012aa5f02104f77342a4e113">iM21</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a20639ce0e5de5f6ddb0b1efed8218c23">iM22</a> = (Real)1.0; <a class="code" href="class_matrix4.html#a39bc3d9a332e3d69375ec53c10553c52">iM23</a> = (Real)0.0;
  212. <a name="l00313"></a>00313 <a class="code" href="class_matrix4.html#a66fefd8bf8ee98d0dbc02ea1eb59f65a">iM30</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a4df8a6008c153fe28f6e161b36719481">iM31</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a14be19ff0ceef2ed5920b67dd8e6f255">iM32</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a093715aa61dc2c4b482aeb73b3839bfa">iM33</a> = (Real)1.0;
  213. <a name="l00314"></a>00314 }
  214. <a name="l00315"></a>00315
  215. <a name="l00337"></a><a class="code" href="class_matrix4.html#a2b7fdb8a218fee4cc3338e02988e9c8d">00337</a> <span class="keyword">inline</span> <a class="code" href="class_matrix4.html#aaada5087a8dbf2fea0053e12ba617a36">Matrix4</a>(<span class="keyword">const</span> <a class="code" href="class_point2.html">Point2&lt;Real&gt;</a> &amp;o, <span class="keyword">const</span> <a class="code" href="class_point2.html">Point2&lt;Real&gt;</a> &amp;oi, <span class="keyword">const</span> <a class="code" href="class_point2.html">Point2&lt;Real&gt;</a> &amp;oj)
  216. <a name="l00338"></a>00338 {
  217. <a name="l00339"></a>00339 <a class="code" href="class_vector2.html">Vector2&lt;Real&gt;</a> i = oi - o;
  218. <a name="l00340"></a>00340 <a class="code" href="class_vector2.html">Vector2&lt;Real&gt;</a> j = oj - o;
  219. <a name="l00341"></a>00341 <a class="code" href="class_matrix4.html#a76d756154741216ac2f73fb9e9f89006">iM00</a> = i.<a class="code" href="class_vector2.html#a88ff786e41deb0417a4a5395e3faa2c5">x</a>; <a class="code" href="class_matrix4.html#a03cea929e9aeb7f8472ecd057f883393">iM01</a> = j.<a class="code" href="class_vector2.html#a88ff786e41deb0417a4a5395e3faa2c5">x</a>; <a class="code" href="class_matrix4.html#a258ee1d48fe0d0124d8234834df25a38">iM02</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a67e3eb6e2754a9ef6619153b87416f98">iM03</a> = (Real)o.x;
  220. <a name="l00342"></a>00342 <a class="code" href="class_matrix4.html#aed0bbe3e9e436ceeaeebbbd93c697a63">iM10</a> = i.<a class="code" href="class_vector2.html#ae75ee05f767de42f759a5bf2578d2ef6">y</a>; <a class="code" href="class_matrix4.html#a1c9b84f47f6ed1bb795c9a25e1ebab40">iM11</a> = j.<a class="code" href="class_vector2.html#ae75ee05f767de42f759a5bf2578d2ef6">y</a>; <a class="code" href="class_matrix4.html#a8afc47330561af81f1edca7f1aab5362">iM12</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a5bd1b74ba207b157a99d09af2b5ccef5">iM13</a> = (Real)o.y;
  221. <a name="l00343"></a>00343 <a class="code" href="class_matrix4.html#a93acc31d5e459f2928ff2135274bcd30">iM20</a> = (Real)0.0; <a class="code" href="class_matrix4.html#afdb999b0012aa5f02104f77342a4e113">iM21</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a20639ce0e5de5f6ddb0b1efed8218c23">iM22</a> = (Real)1.0; <a class="code" href="class_matrix4.html#a39bc3d9a332e3d69375ec53c10553c52">iM23</a> = (Real)0.0;
  222. <a name="l00344"></a>00344 <a class="code" href="class_matrix4.html#a66fefd8bf8ee98d0dbc02ea1eb59f65a">iM30</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a4df8a6008c153fe28f6e161b36719481">iM31</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a14be19ff0ceef2ed5920b67dd8e6f255">iM32</a> = (Real)0.0; <a class="code" href="class_matrix4.html#a093715aa61dc2c4b482aeb73b3839bfa">iM33</a> = (Real)1.0;
  223. <a name="l00345"></a>00345 }
  224. <a name="l00346"></a>00346
  225. <a name="l00347"></a>00347
  226. <a name="l00348"></a>00348
  227. <a name="l00349"></a>00349
  228. <a name="l00353"></a><a class="code" href="class_matrix4.html#a564d92ec47baa5e4dbd60b2893584725">00353</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="class_matrix4.html#a564d92ec47baa5e4dbd60b2893584725">read</a>(FILE *f)
  229. <a name="l00354"></a>00354 {
  230. <a name="l00355"></a>00355 fread( <a class="code" href="class_matrix4.html#a4b456ca8031e6ea32d44f7a49ec57f3e">d</a>, <span class="keyword">sizeof</span>(Real), 16, f );
  231. <a name="l00356"></a>00356 }
  232. <a name="l00357"></a>00357
  233. <a name="l00361"></a><a class="code" href="class_matrix4.html#aded31197cac8768e67189af920f4d269">00361</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="class_matrix4.html#aded31197cac8768e67189af920f4d269">write</a>(FILE *f)<span class="keyword"> const</span>
  234. <a name="l00362"></a>00362 <span class="keyword"> </span>{
  235. <a name="l00363"></a>00363 fwrite( <a class="code" href="class_matrix4.html#a4b456ca8031e6ea32d44f7a49ec57f3e">d</a>, <span class="keyword">sizeof</span>(Real), 16, f );
  236. <a name="l00364"></a>00364 }
  237. <a name="l00365"></a>00365
  238. <a name="l00366"></a>00366
  239. <a name="l00367"></a>00367
  240. <a name="l00368"></a>00368
  241. <a name="l00372"></a><a class="code" href="class_matrix4.html#a68348c00b6e31e627fb4c2045325a876">00372</a> <span class="keyword">inline</span> Real &amp; <a class="code" href="class_matrix4.html#a68348c00b6e31e627fb4c2045325a876">at</a>(<span class="keywordtype">int</span> i, <span class="keywordtype">int</span> j)
  242. <a name="l00373"></a>00373 {
  243. <a name="l00374"></a>00374 <span class="keywordflow">return</span> <a class="code" href="class_matrix4.html#a4b456ca8031e6ea32d44f7a49ec57f3e">d</a>[ i*4 + j ];
  244. <a name="l00375"></a>00375 }
  245. <a name="l00376"></a>00376
  246. <a name="l00380"></a><a class="code" href="class_matrix4.html#a93eb12147ed9c3ccf2991bc6e78852dd">00380</a> <span class="keyword">inline</span> <span class="keyword">const</span> Real &amp; <a class="code" href="class_matrix4.html#a68348c00b6e31e627fb4c2045325a876">at</a>(<span class="keywordtype">int</span> i, <span class="keywordtype">int</span> j)<span class="keyword"> const</span>
  247. <a name="l00381"></a>00381 <span class="keyword"> </span>{
  248. <a name="l00382"></a>00382 <span class="keywordflow">return</span> <a class="code" href="class_matrix4.html#a4b456ca8031e6ea32d44f7a49ec57f3e">d</a>[ i*4 + j ];
  249. <a name="l00383"></a>00383 }
  250. <a name="l00384"></a>00384
  251. <a name="l00385"></a>00385
  252. <a name="l00389"></a><a class="code" href="class_matrix4.html#a886ef26496586ea09a0917e1c7a41085">00389</a> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="class_matrix4.html#a886ef26496586ea09a0917e1c7a41085">operator==</a>(<span class="keyword">const</span> <a class="code" href="class_matrix4.html">Matrix4&lt;Real&gt;</a> &amp;m)
  253. <a name="l00390"></a>00390 {
  254. <a name="l00391"></a>00391 <span class="keywordflow">return</span> <a class="code" href="class_matrix4.html#a76d756154741216ac2f73fb9e9f89006">iM00</a> == m.<a class="code" href="class_matrix4.html#a76d756154741216ac2f73fb9e9f89006">iM00</a> &amp;&amp; <a class="code" href="class_matrix4.html#a03cea929e9aeb7f8472ecd057f883393">iM01</a> == m.<a class="code" href="class_matrix4.html#a03cea929e9aeb7f8472ecd057f883393">iM01</a> &amp;&amp; <a class="code" href="class_matrix4.html#a258ee1d48fe0d0124d8234834df25a38">iM02</a> == m.<a class="code" href="class_matrix4.html#a258ee1d48fe0d0124d8234834df25a38">iM02</a> &amp;&amp; <a class="code" href="class_matrix4.html#a67e3eb6e2754a9ef6619153b87416f98">iM03</a> == m.<a class="code" href="class_matrix4.html#a67e3eb6e2754a9ef6619153b87416f98">iM03</a> &amp;&amp;
  255. <a name="l00392"></a>00392 <a class="code" href="class_matrix4.html#aed0bbe3e9e436ceeaeebbbd93c697a63">iM10</a> == m.<a class="code" href="class_matrix4.html#aed0bbe3e9e436ceeaeebbbd93c697a63">iM10</a> &amp;&amp; <a class="code" href="class_matrix4.html#a1c9b84f47f6ed1bb795c9a25e1ebab40">iM11</a> == m.<a class="code" href="class_matrix4.html#a1c9b84f47f6ed1bb795c9a25e1ebab40">iM11</a> &amp;&amp; <a class="code" href="class_matrix4.html#a8afc47330561af81f1edca7f1aab5362">iM12</a> == m.<a class="code" href="class_matrix4.html#a8afc47330561af81f1edca7f1aab5362">iM12</a> &amp;&amp; <a class="code" href="class_matrix4.html#a5bd1b74ba207b157a99d09af2b5ccef5">iM13</a> == m.<a class="code" href="class_matrix4.html#a5bd1b74ba207b157a99d09af2b5ccef5">iM13</a> &amp;&amp;
  256. <a name="l00393"></a>00393 <a class="code" href="class_matrix4.html#a93acc31d5e459f2928ff2135274bcd30">iM20</a> == m.<a class="code" href="class_matrix4.html#a93acc31d5e459f2928ff2135274bcd30">iM20</a> &amp;&amp; <a class="code" href="class_matrix4.html#afdb999b0012aa5f02104f77342a4e113">iM21</a> == m.<a class="code" href="class_matrix4.html#afdb999b0012aa5f02104f77342a4e113">iM21</a> &amp;&amp; <a class="code" href="class_matrix4.html#a20639ce0e5de5f6ddb0b1efed8218c23">iM22</a> == m.<a class="code" href="class_matrix4.html#a20639ce0e5de5f6ddb0b1efed8218c23">iM22</a> &amp;&amp; <a class="code" href="class_matrix4.html#a39bc3d9a332e3d69375ec53c10553c52">iM23</a> == m.<a class="code" href="class_matrix4.html#a39bc3d9a332e3d69375ec53c10553c52">iM23</a> &amp;&amp;
  257. <a name="l00394"></a>00394 <a class="code" href="class_matrix4.html#a66fefd8bf8ee98d0dbc02ea1eb59f65a">iM30</a> == m.<a class="code" href="class_matrix4.html#a66fefd8bf8ee98d0dbc02ea1eb59f65a">iM30</a> &amp;&amp; <a class="code" href="class_matrix4.html#a4df8a6008c153fe28f6e161b36719481">iM31</a> == m.<a class="code" href="class_matrix4.html#a4df8a6008c153fe28f6e161b36719481">iM31</a> &amp;&amp; <a class="code" href="class_matrix4.html#a14be19ff0ceef2ed5920b67dd8e6…

Large files files are truncated, but you can click here to view the full file