a00250.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353
  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>GLM_GTX_bit: Extended bitwise operations</title>
  6. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  7. <link href="doxygen.css" rel="stylesheet" type="text/css"/>
  8. </head>
  9. <body>
  10. <!-- Generated by Doxygen 1.7.4 -->
  11. <div id="top">
  12. <div id="titlearea">
  13. <table cellspacing="0" cellpadding="0">
  14. <tbody>
  15. <tr style="height: 56px;">
  16. <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
  17. </tr>
  18. </tbody>
  19. </table>
  20. </div>
  21. <div id="navrow1" class="tabs">
  22. <ul class="tablist">
  23. <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  24. <li><a href="modules.html"><span>Modules</span></a></li>
  25. <li><a href="namespaces.html"><span>Namespaces</span></a></li>
  26. <li><a href="annotated.html"><span>Classes</span></a></li>
  27. <li><a href="files.html"><span>Files</span></a></li>
  28. </ul>
  29. </div>
  30. </div>
  31. <div class="header">
  32. <div class="summary">
  33. <a href="#func-members">Functions</a> </div>
  34. <div class="headertitle">
  35. <div class="title">GLM_GTX_bit: Extended bitwise operations</div> </div>
  36. <div class="ingroups"><a class="el" href="a00248.html">GTX Extensions (Experimental)</a></div></div>
  37. <div class="contents">
  38. <p>Allow to perform bit operations on integer values.
  39. <a href="#details">More...</a></p>
  40. <table class="memberdecls">
  41. <tr><td colspan="2"><h2><a name="func-members"></a>
  42. Functions</h2></td></tr>
  43. <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
  44. <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga2f145f264c334caba22e6949e015d208">bitRevert</a> (genType const &amp;value)</td></tr>
  45. <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
  46. <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#gaa8de15434b73178fd1d2ea7ee16b59bd">bitRotateLeft</a> (genType const &amp;In, std::size_t Shift)</td></tr>
  47. <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
  48. <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#gaeec0d4179d7a092056e2201fff385ef6">bitRotateRight</a> (genType const &amp;In, std::size_t Shift)</td></tr>
  49. <tr><td class="memTemplParams" colspan="2">template&lt;typename genIUType , typename sizeType &gt; </td></tr>
  50. <tr><td class="memTemplItemLeft" align="right" valign="top">genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga244734bb54e4648970c38b032258035a">extractField</a> (genIUType const &amp;v, sizeType const &amp;first, sizeType const &amp;count)</td></tr>
  51. <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
  52. <tr><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga55e17a1e9347ca10d206f62ffe294608">highestBit</a> (genType const &amp;value)</td></tr>
  53. <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
  54. <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga2e2ba1398ef471e40e6a07cbab9a75fe">highestBitValue</a> (genType const &amp;value)</td></tr>
  55. <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
  56. <tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#gadddfcaa01efe60218e52323707331415">isPowerOfTwo</a> (genType const &amp;value)</td></tr>
  57. <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
  58. <tr><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#gace8029d9e9090f2aaa0248e320b3f24c">lowestBit</a> (genType const &amp;value)</td></tr>
  59. <tr><td class="memTemplParams" colspan="2">template&lt;typename genIType &gt; </td></tr>
  60. <tr><td class="memTemplItemLeft" align="right" valign="top">genIType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga31dbf05c851060984e107afb39dde5fe">mask</a> (genIType const &amp;count)</td></tr>
  61. <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
  62. <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga0a1683dffc58011a161c0b3cb867c93c">powerOfTwoAbove</a> (genType const &amp;value)</td></tr>
  63. <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
  64. <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga9adeb3bc22e67933665600e0dc2e1f8d">powerOfTwoBelow</a> (genType const &amp;value)</td></tr>
  65. <tr><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
  66. <tr><td class="memTemplItemLeft" align="right" valign="top">genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00250.html#ga12d57451c94950bafe2e1fb57346f082">powerOfTwoNearest</a> (genType const &amp;value)</td></tr>
  67. </table>
  68. <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
  69. <p>Allow to perform bit operations on integer values. </p>
  70. <p>&lt;<a class="el" href="a00027_source.html">glm/gtx/bit.hpp</a>&gt; need to be included to use these functionalities. </p>
  71. <hr/><h2>Function Documentation</h2>
  72. <a class="anchor" id="ga2f145f264c334caba22e6949e015d208"></a><!-- doxytag: member="glm::gtx::bit::bitRevert" ref="ga2f145f264c334caba22e6949e015d208" args="(genType const &amp;value)" -->
  73. <div class="memitem">
  74. <div class="memproto">
  75. <table class="memname">
  76. <tr>
  77. <td class="memname">genType glm::gtx::bit::bitRevert </td>
  78. <td>(</td>
  79. <td class="paramtype">genType const &amp;&#160;</td>
  80. <td class="paramname"><em>value</em></td><td>)</td>
  81. <td></td>
  82. </tr>
  83. </table>
  84. </div>
  85. <div class="memdoc">
  86. <p>Revert all bits of any integer based type. </p>
  87. <p>From GLM_GTX_bit extension. </p>
  88. </div>
  89. </div>
  90. <a class="anchor" id="gaa8de15434b73178fd1d2ea7ee16b59bd"></a><!-- doxytag: member="glm::gtx::bit::bitRotateLeft" ref="gaa8de15434b73178fd1d2ea7ee16b59bd" args="(genType const &amp;In, std::size_t Shift)" -->
  91. <div class="memitem">
  92. <div class="memproto">
  93. <table class="memname">
  94. <tr>
  95. <td class="memname">genType glm::gtx::bit::bitRotateLeft </td>
  96. <td>(</td>
  97. <td class="paramtype">genType const &amp;&#160;</td>
  98. <td class="paramname"><em>In</em>, </td>
  99. </tr>
  100. <tr>
  101. <td class="paramkey"></td>
  102. <td></td>
  103. <td class="paramtype">std::size_t&#160;</td>
  104. <td class="paramname"><em>Shift</em>&#160;</td>
  105. </tr>
  106. <tr>
  107. <td></td>
  108. <td>)</td>
  109. <td></td><td></td>
  110. </tr>
  111. </table>
  112. </div>
  113. <div class="memdoc">
  114. <p>Rotate all bits to the left. </p>
  115. <p>From GLM_GTX_bit extension. </p>
  116. </div>
  117. </div>
  118. <a class="anchor" id="gaeec0d4179d7a092056e2201fff385ef6"></a><!-- doxytag: member="glm::gtx::bit::bitRotateRight" ref="gaeec0d4179d7a092056e2201fff385ef6" args="(genType const &amp;In, std::size_t Shift)" -->
  119. <div class="memitem">
  120. <div class="memproto">
  121. <table class="memname">
  122. <tr>
  123. <td class="memname">genType glm::gtx::bit::bitRotateRight </td>
  124. <td>(</td>
  125. <td class="paramtype">genType const &amp;&#160;</td>
  126. <td class="paramname"><em>In</em>, </td>
  127. </tr>
  128. <tr>
  129. <td class="paramkey"></td>
  130. <td></td>
  131. <td class="paramtype">std::size_t&#160;</td>
  132. <td class="paramname"><em>Shift</em>&#160;</td>
  133. </tr>
  134. <tr>
  135. <td></td>
  136. <td>)</td>
  137. <td></td><td></td>
  138. </tr>
  139. </table>
  140. </div>
  141. <div class="memdoc">
  142. <p>Rotate all bits to the right. </p>
  143. <p>From GLM_GTX_bit extension. </p>
  144. </div>
  145. </div>
  146. <a class="anchor" id="ga244734bb54e4648970c38b032258035a"></a><!-- doxytag: member="glm::gtx::bit::extractField" ref="ga244734bb54e4648970c38b032258035a" args="(genIUType const &amp;v, sizeType const &amp;first, sizeType const &amp;count)" -->
  147. <div class="memitem">
  148. <div class="memproto">
  149. <table class="memname">
  150. <tr>
  151. <td class="memname">genIUType glm::gtx::bit::extractField </td>
  152. <td>(</td>
  153. <td class="paramtype">genIUType const &amp;&#160;</td>
  154. <td class="paramname"><em>v</em>, </td>
  155. </tr>
  156. <tr>
  157. <td class="paramkey"></td>
  158. <td></td>
  159. <td class="paramtype">sizeType const &amp;&#160;</td>
  160. <td class="paramname"><em>first</em>, </td>
  161. </tr>
  162. <tr>
  163. <td class="paramkey"></td>
  164. <td></td>
  165. <td class="paramtype">sizeType const &amp;&#160;</td>
  166. <td class="paramname"><em>count</em>&#160;</td>
  167. </tr>
  168. <tr>
  169. <td></td>
  170. <td>)</td>
  171. <td></td><td></td>
  172. </tr>
  173. </table>
  174. </div>
  175. <div class="memdoc">
  176. <p>Component wise extraction of bit fields. </p>
  177. <p>genType and genIType could be a scalar or a vector. From GLM_GTX_bit extension. </p>
  178. </div>
  179. </div>
  180. <a class="anchor" id="ga55e17a1e9347ca10d206f62ffe294608"></a><!-- doxytag: member="glm::gtx::bit::highestBit" ref="ga55e17a1e9347ca10d206f62ffe294608" args="(genType const &amp;value)" -->
  181. <div class="memitem">
  182. <div class="memproto">
  183. <table class="memname">
  184. <tr>
  185. <td class="memname">int glm::gtx::bit::highestBit </td>
  186. <td>(</td>
  187. <td class="paramtype">genType const &amp;&#160;</td>
  188. <td class="paramname"><em>value</em></td><td>)</td>
  189. <td></td>
  190. </tr>
  191. </table>
  192. </div>
  193. <div class="memdoc">
  194. <p>Find the highest bit set to 1 in a integer variable. </p>
  195. <p>From GLM_GTX_bit extension. </p>
  196. </div>
  197. </div>
  198. <a class="anchor" id="ga2e2ba1398ef471e40e6a07cbab9a75fe"></a><!-- doxytag: member="glm::gtx::bit::highestBitValue" ref="ga2e2ba1398ef471e40e6a07cbab9a75fe" args="(genType const &amp;value)" -->
  199. <div class="memitem">
  200. <div class="memproto">
  201. <table class="memname">
  202. <tr>
  203. <td class="memname">genType glm::gtx::bit::highestBitValue </td>
  204. <td>(</td>
  205. <td class="paramtype">genType const &amp;&#160;</td>
  206. <td class="paramname"><em>value</em></td><td>)</td>
  207. <td></td>
  208. </tr>
  209. </table>
  210. </div>
  211. <div class="memdoc">
  212. <p>Find the highest bit set to 1 in a integer variable and return its value. </p>
  213. <p>From GLM_GTX_bit extension. </p>
  214. </div>
  215. </div>
  216. <a class="anchor" id="gadddfcaa01efe60218e52323707331415"></a><!-- doxytag: member="glm::gtx::bit::isPowerOfTwo" ref="gadddfcaa01efe60218e52323707331415" args="(genType const &amp;value)" -->
  217. <div class="memitem">
  218. <div class="memproto">
  219. <table class="memname">
  220. <tr>
  221. <td class="memname">bool glm::gtx::bit::isPowerOfTwo </td>
  222. <td>(</td>
  223. <td class="paramtype">genType const &amp;&#160;</td>
  224. <td class="paramname"><em>value</em></td><td>)</td>
  225. <td></td>
  226. </tr>
  227. </table>
  228. </div>
  229. <div class="memdoc">
  230. <p>Return true if the value is a power of two number. </p>
  231. <p>From GLM_GTX_bit extension. </p>
  232. </div>
  233. </div>
  234. <a class="anchor" id="gace8029d9e9090f2aaa0248e320b3f24c"></a><!-- doxytag: member="glm::gtx::bit::lowestBit" ref="gace8029d9e9090f2aaa0248e320b3f24c" args="(genType const &amp;value)" -->
  235. <div class="memitem">
  236. <div class="memproto">
  237. <table class="memname">
  238. <tr>
  239. <td class="memname">int glm::gtx::bit::lowestBit </td>
  240. <td>(</td>
  241. <td class="paramtype">genType const &amp;&#160;</td>
  242. <td class="paramname"><em>value</em></td><td>)</td>
  243. <td></td>
  244. </tr>
  245. </table>
  246. </div>
  247. <div class="memdoc">
  248. <p>Find the lowest bit set to 1 in a integer variable. </p>
  249. <p>From GLM_GTX_bit extension. </p>
  250. </div>
  251. </div>
  252. <a class="anchor" id="ga31dbf05c851060984e107afb39dde5fe"></a><!-- doxytag: member="glm::gtx::bit::mask" ref="ga31dbf05c851060984e107afb39dde5fe" args="(genIType const &amp;count)" -->
  253. <div class="memitem">
  254. <div class="memproto">
  255. <table class="memname">
  256. <tr>
  257. <td class="memname">genIType glm::gtx::bit::mask </td>
  258. <td>(</td>
  259. <td class="paramtype">genIType const &amp;&#160;</td>
  260. <td class="paramname"><em>count</em></td><td>)</td>
  261. <td></td>
  262. </tr>
  263. </table>
  264. </div>
  265. <div class="memdoc">
  266. <p>Build a mask of 'count' bits From GLM_GTX_bit extension. </p>
  267. </div>
  268. </div>
  269. <a class="anchor" id="ga0a1683dffc58011a161c0b3cb867c93c"></a><!-- doxytag: member="glm::gtx::bit::powerOfTwoAbove" ref="ga0a1683dffc58011a161c0b3cb867c93c" args="(genType const &amp;value)" -->
  270. <div class="memitem">
  271. <div class="memproto">
  272. <table class="memname">
  273. <tr>
  274. <td class="memname">genType glm::gtx::bit::powerOfTwoAbove </td>
  275. <td>(</td>
  276. <td class="paramtype">genType const &amp;&#160;</td>
  277. <td class="paramname"><em>value</em></td><td>)</td>
  278. <td></td>
  279. </tr>
  280. </table>
  281. </div>
  282. <div class="memdoc">
  283. <p>Return the power of two number which value is just higher the input value. </p>
  284. <p>From GLM_GTX_bit extension. </p>
  285. </div>
  286. </div>
  287. <a class="anchor" id="ga9adeb3bc22e67933665600e0dc2e1f8d"></a><!-- doxytag: member="glm::gtx::bit::powerOfTwoBelow" ref="ga9adeb3bc22e67933665600e0dc2e1f8d" args="(genType const &amp;value)" -->
  288. <div class="memitem">
  289. <div class="memproto">
  290. <table class="memname">
  291. <tr>
  292. <td class="memname">genType glm::gtx::bit::powerOfTwoBelow </td>
  293. <td>(</td>
  294. <td class="paramtype">genType const &amp;&#160;</td>
  295. <td class="paramname"><em>value</em></td><td>)</td>
  296. <td></td>
  297. </tr>
  298. </table>
  299. </div>
  300. <div class="memdoc">
  301. <p>Return the power of two number which value is just lower the input value. </p>
  302. <p>From GLM_GTX_bit extension. </p>
  303. </div>
  304. </div>
  305. <a class="anchor" id="ga12d57451c94950bafe2e1fb57346f082"></a><!-- doxytag: member="glm::gtx::bit::powerOfTwoNearest" ref="ga12d57451c94950bafe2e1fb57346f082" args="(genType const &amp;value)" -->
  306. <div class="memitem">
  307. <div class="memproto">
  308. <table class="memname">
  309. <tr>
  310. <td class="memname">genType glm::gtx::bit::powerOfTwoNearest </td>
  311. <td>(</td>
  312. <td class="paramtype">genType const &amp;&#160;</td>
  313. <td class="paramname"><em>value</em></td><td>)</td>
  314. <td></td>
  315. </tr>
  316. </table>
  317. </div>
  318. <div class="memdoc">
  319. <p>Return the power of two number which value is the closet to the input value. </p>
  320. <p>From GLM_GTX_bit extension. </p>
  321. </div>
  322. </div>
  323. </div>
  324. <hr class="footer"/><address class="footer"><small>Generated by&#160;
  325. <a href="http://www.doxygen.org/index.html">
  326. <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
  327. </body>
  328. </html>