gosu 0.7.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. data/COPYING.txt +29 -0
  2. data/Gosu/Async.hpp +48 -0
  3. data/Gosu/Audio.hpp +145 -0
  4. data/Gosu/AutoLink.hpp +16 -0
  5. data/Gosu/Bitmap.hpp +85 -0
  6. data/Gosu/ButtonsMac.hpp +114 -0
  7. data/Gosu/ButtonsWin.hpp +111 -0
  8. data/Gosu/ButtonsX.hpp +115 -0
  9. data/Gosu/Color.hpp +172 -0
  10. data/Gosu/Directories.hpp +36 -0
  11. data/Gosu/Font.hpp +59 -0
  12. data/Gosu/Fwd.hpp +31 -0
  13. data/Gosu/Gosu.hpp +26 -0
  14. data/Gosu/Graphics.hpp +86 -0
  15. data/Gosu/GraphicsBase.hpp +45 -0
  16. data/Gosu/IO.hpp +255 -0
  17. data/Gosu/Image.hpp +148 -0
  18. data/Gosu/ImageData.hpp +45 -0
  19. data/Gosu/Input.hpp +116 -0
  20. data/Gosu/Math.hpp +95 -0
  21. data/Gosu/Platform.hpp +61 -0
  22. data/Gosu/RotFlip.hpp +116 -0
  23. data/Gosu/Sockets.hpp +129 -0
  24. data/Gosu/Text.hpp +47 -0
  25. data/Gosu/TextInput.hpp +57 -0
  26. data/Gosu/Timing.hpp +16 -0
  27. data/Gosu/Utility.hpp +24 -0
  28. data/Gosu/WinUtility.hpp +76 -0
  29. data/Gosu/Window.hpp +84 -0
  30. data/GosuImpl/Async.cpp +37 -0
  31. data/GosuImpl/AudioFmod.cpp +417 -0
  32. data/GosuImpl/AudioSDL.cpp +255 -0
  33. data/GosuImpl/DirectoriesMac.mm +38 -0
  34. data/GosuImpl/DirectoriesUnix.cpp +48 -0
  35. data/GosuImpl/DirectoriesWin.cpp +42 -0
  36. data/GosuImpl/FileUnix.cpp +100 -0
  37. data/GosuImpl/FileWin.cpp +83 -0
  38. data/GosuImpl/Graphics/Bitmap.cpp +116 -0
  39. data/GosuImpl/Graphics/BitmapBMP.cpp +232 -0
  40. data/GosuImpl/Graphics/BitmapColorKey.cpp +39 -0
  41. data/GosuImpl/Graphics/BitmapPNG.cpp +276 -0
  42. data/GosuImpl/Graphics/BitmapUtils.cpp +67 -0
  43. data/GosuImpl/Graphics/BlockAllocator.cpp +127 -0
  44. data/GosuImpl/Graphics/BlockAllocator.hpp +34 -0
  45. data/GosuImpl/Graphics/Color.cpp +126 -0
  46. data/GosuImpl/Graphics/Common.hpp +21 -0
  47. data/GosuImpl/Graphics/DrawOp.hpp +154 -0
  48. data/GosuImpl/Graphics/Font.cpp +110 -0
  49. data/GosuImpl/Graphics/Graphics.cpp +295 -0
  50. data/GosuImpl/Graphics/Image.cpp +159 -0
  51. data/GosuImpl/Graphics/LargeImageData.cpp +115 -0
  52. data/GosuImpl/Graphics/LargeImageData.hpp +37 -0
  53. data/GosuImpl/Graphics/RotFlip.cpp +184 -0
  54. data/GosuImpl/Graphics/TexChunk.cpp +77 -0
  55. data/GosuImpl/Graphics/TexChunk.hpp +40 -0
  56. data/GosuImpl/Graphics/Text.cpp +223 -0
  57. data/GosuImpl/Graphics/TextMac.cpp +242 -0
  58. data/GosuImpl/Graphics/TextPangoFT.cpp +186 -0
  59. data/GosuImpl/Graphics/TextWin.cpp +172 -0
  60. data/GosuImpl/Graphics/Texture.cpp +104 -0
  61. data/GosuImpl/Graphics/Texture.hpp +34 -0
  62. data/GosuImpl/IO.cpp +48 -0
  63. data/GosuImpl/InputMac.mm +677 -0
  64. data/GosuImpl/InputWin.cpp +444 -0
  65. data/GosuImpl/InputX.cpp +158 -0
  66. data/GosuImpl/MacUtility.hpp +48 -0
  67. data/GosuImpl/Math.cpp +49 -0
  68. data/GosuImpl/RubyGosu.swg +474 -0
  69. data/GosuImpl/RubyGosuStub.mm +17 -0
  70. data/GosuImpl/RubyGosu_DllMain.cxx +30 -0
  71. data/GosuImpl/RubyGosu_wrap.cxx +8521 -0
  72. data/GosuImpl/RubyGosu_wrap.h +31 -0
  73. data/GosuImpl/Sockets/CommSocket.cpp +304 -0
  74. data/GosuImpl/Sockets/ListenerSocket.cpp +60 -0
  75. data/GosuImpl/Sockets/MessageSocket.cpp +136 -0
  76. data/GosuImpl/Sockets/Socket.cpp +145 -0
  77. data/GosuImpl/Sockets/Sockets.hpp +66 -0
  78. data/GosuImpl/TextInputMac.mm +207 -0
  79. data/GosuImpl/TextInputWin.cpp +197 -0
  80. data/GosuImpl/TextInputX.cpp +201 -0
  81. data/GosuImpl/TextTTFWin.cpp +247 -0
  82. data/GosuImpl/TimingUnix.cpp +17 -0
  83. data/GosuImpl/TimingWin.cpp +28 -0
  84. data/GosuImpl/Utility.cpp +140 -0
  85. data/GosuImpl/WinMain.cpp +69 -0
  86. data/GosuImpl/WinUtility.cpp +137 -0
  87. data/GosuImpl/WindowMac.mm +466 -0
  88. data/GosuImpl/WindowWin.cpp +447 -0
  89. data/GosuImpl/WindowX.cpp +392 -0
  90. data/GosuImpl/X11vroot.h +118 -0
  91. data/README.txt +13 -0
  92. data/Rakefile +178 -0
  93. data/examples/ChipmunkIntegration.rb +275 -0
  94. data/examples/CptnRuby.rb +231 -0
  95. data/examples/MoreChipmunkAndRMagick.rb +155 -0
  96. data/examples/OpenGLIntegration.rb +232 -0
  97. data/examples/RMagickIntegration.rb +449 -0
  98. data/examples/TextInput.cpp +170 -0
  99. data/examples/TextInput.rb +139 -0
  100. data/examples/Tutorial.cpp +215 -0
  101. data/examples/Tutorial.rb +137 -0
  102. data/examples/media/Beep.wav +0 -0
  103. data/examples/media/CptnRuby Gem.png +0 -0
  104. data/examples/media/CptnRuby Map.txt +25 -0
  105. data/examples/media/CptnRuby Tileset.png +0 -0
  106. data/examples/media/CptnRuby.png +0 -0
  107. data/examples/media/Cursor.png +0 -0
  108. data/examples/media/Earth.png +0 -0
  109. data/examples/media/Explosion.wav +0 -0
  110. data/examples/media/LargeStar.png +0 -0
  111. data/examples/media/Sky.jpg +0 -0
  112. data/examples/media/Smoke.png +0 -0
  113. data/examples/media/Soldier.png +0 -0
  114. data/examples/media/Space.png +0 -0
  115. data/examples/media/Star.png +0 -0
  116. data/examples/media/Starfighter.bmp +0 -0
  117. data/linux/Makefile.in +98 -0
  118. data/linux/configure +5658 -0
  119. data/linux/configure.ac +126 -0
  120. data/linux/extconf.rb +11 -0
  121. data/mac/English.lproj/InfoPlist.strings +0 -0
  122. data/mac/Gosu-Info.plist +26 -0
  123. data/mac/Gosu.xcodeproj/project.pbxproj +1194 -0
  124. data/mac/RubyGosu Template-Info.plist +26 -0
  125. data/mac/libboost_thread_1_34_1_universal.a +0 -0
  126. data/mac/libboost_thread_d_1_34_1_universal.a +0 -0
  127. data/mac/libfmod_universal.a +0 -0
  128. data/mac/libpng_universal.a +0 -0
  129. data/mac/libz_universal.a +0 -0
  130. data/reference/Async_8hpp-source.html +70 -0
  131. data/reference/Audio_8hpp-source.html +114 -0
  132. data/reference/Audio_8hpp.html +50 -0
  133. data/reference/AutoLink_8hpp-source.html +38 -0
  134. data/reference/AutoLink_8hpp.html +34 -0
  135. data/reference/Bitmap_8hpp-source.html +85 -0
  136. data/reference/Bitmap_8hpp.html +58 -0
  137. data/reference/ButtonsMac_8hpp-source.html +133 -0
  138. data/reference/ButtonsWin_8hpp-source.html +133 -0
  139. data/reference/ButtonsX_8hpp-source.html +134 -0
  140. data/reference/Color_8hpp-source.html +169 -0
  141. data/reference/Color_8hpp.html +85 -0
  142. data/reference/Directories_8hpp-source.html +42 -0
  143. data/reference/Directories_8hpp.html +46 -0
  144. data/reference/Font_8hpp-source.html +65 -0
  145. data/reference/Font_8hpp.html +41 -0
  146. data/reference/Fwd_8hpp-source.html +52 -0
  147. data/reference/Fwd_8hpp.html +37 -0
  148. data/reference/Gosu_8hpp-source.html +48 -0
  149. data/reference/Gosu_8hpp.html +34 -0
  150. data/reference/GraphicsBase_8hpp-source.html +57 -0
  151. data/reference/GraphicsBase_8hpp.html +56 -0
  152. data/reference/Graphics_8hpp-source.html +96 -0
  153. data/reference/Graphics_8hpp.html +53 -0
  154. data/reference/IO_8hpp-source.html +255 -0
  155. data/reference/IO_8hpp.html +74 -0
  156. data/reference/ImageData_8hpp-source.html +62 -0
  157. data/reference/ImageData_8hpp.html +43 -0
  158. data/reference/Image_8hpp-source.html +126 -0
  159. data/reference/Image_8hpp.html +48 -0
  160. data/reference/Input_8hpp-source.html +118 -0
  161. data/reference/Input_8hpp.html +50 -0
  162. data/reference/Math_8hpp-source.html +92 -0
  163. data/reference/Math_8hpp.html +74 -0
  164. data/reference/Platform_8hpp-source.html +83 -0
  165. data/reference/Platform_8hpp.html +73 -0
  166. data/reference/RotFlip_8hpp-source.html +138 -0
  167. data/reference/RotFlip_8hpp.html +77 -0
  168. data/reference/Sockets_8hpp-source.html +130 -0
  169. data/reference/Sockets_8hpp.html +66 -0
  170. data/reference/TextInput_8hpp-source.html +64 -0
  171. data/reference/TextInput_8hpp.html +41 -0
  172. data/reference/Text_8hpp-source.html +51 -0
  173. data/reference/Text_8hpp.html +46 -0
  174. data/reference/Timing_8hpp-source.html +36 -0
  175. data/reference/Timing_8hpp.html +42 -0
  176. data/reference/Utility_8hpp-source.html +44 -0
  177. data/reference/Utility_8hpp.html +48 -0
  178. data/reference/WinUtility_8hpp-source.html +79 -0
  179. data/reference/WinUtility_8hpp.html +64 -0
  180. data/reference/Window_8hpp-source.html +91 -0
  181. data/reference/Window_8hpp.html +41 -0
  182. data/reference/annotated.html +51 -0
  183. data/reference/classGosu_1_1Audio-members.html +34 -0
  184. data/reference/classGosu_1_1Audio.html +46 -0
  185. data/reference/classGosu_1_1Bitmap-members.html +44 -0
  186. data/reference/classGosu_1_1Bitmap.html +263 -0
  187. data/reference/classGosu_1_1Buffer-members.html +44 -0
  188. data/reference/classGosu_1_1Buffer.html +78 -0
  189. data/reference/classGosu_1_1Buffer.png +0 -0
  190. data/reference/classGosu_1_1Button-members.html +36 -0
  191. data/reference/classGosu_1_1Button.html +143 -0
  192. data/reference/classGosu_1_1Color-members.html +56 -0
  193. data/reference/classGosu_1_1Color.html +387 -0
  194. data/reference/classGosu_1_1File-members.html +41 -0
  195. data/reference/classGosu_1_1File.html +69 -0
  196. data/reference/classGosu_1_1File.png +0 -0
  197. data/reference/classGosu_1_1Font-members.html +39 -0
  198. data/reference/classGosu_1_1Font.html +309 -0
  199. data/reference/classGosu_1_1Graphics-members.html +50 -0
  200. data/reference/classGosu_1_1Graphics.html +234 -0
  201. data/reference/classGosu_1_1Image-members.html +45 -0
  202. data/reference/classGosu_1_1Image.html +518 -0
  203. data/reference/classGosu_1_1ImageData-members.html +37 -0
  204. data/reference/classGosu_1_1ImageData.html +60 -0
  205. data/reference/classGosu_1_1Input-members.html +44 -0
  206. data/reference/classGosu_1_1Input.html +223 -0
  207. data/reference/classGosu_1_1MessageSocket-members.html +40 -0
  208. data/reference/classGosu_1_1MessageSocket.html +233 -0
  209. data/reference/classGosu_1_1Resource-members.html +39 -0
  210. data/reference/classGosu_1_1Resource.html +116 -0
  211. data/reference/classGosu_1_1Resource.png +0 -0
  212. data/reference/classGosu_1_1Sample-members.html +37 -0
  213. data/reference/classGosu_1_1Sample.html +200 -0
  214. data/reference/classGosu_1_1SampleInstance-members.html +38 -0
  215. data/reference/classGosu_1_1SampleInstance.html +169 -0
  216. data/reference/classGosu_1_1Song-members.html +43 -0
  217. data/reference/classGosu_1_1Song.html +260 -0
  218. data/reference/classGosu_1_1TextInput-members.html +38 -0
  219. data/reference/classGosu_1_1TextInput.html +121 -0
  220. data/reference/classGosu_1_1Window-members.html +50 -0
  221. data/reference/classGosu_1_1Window.html +271 -0
  222. data/reference/doxyfile +233 -0
  223. data/reference/doxygen.css +433 -0
  224. data/reference/doxygen.png +0 -0
  225. data/reference/files.html +54 -0
  226. data/reference/functions.html +236 -0
  227. data/reference/functions_enum.html +45 -0
  228. data/reference/functions_func.html +227 -0
  229. data/reference/functions_vars.html +47 -0
  230. data/reference/hierarchy.html +53 -0
  231. data/reference/index.html +26 -0
  232. data/reference/namespaceGosu.html +2890 -0
  233. data/reference/namespaceGosu_1_1Colors.html +70 -0
  234. data/reference/namespaceGosu_1_1Win.html +275 -0
  235. data/reference/namespacemembers.html +216 -0
  236. data/reference/namespacemembers_enum.html +52 -0
  237. data/reference/namespacemembers_eval.html +54 -0
  238. data/reference/namespacemembers_func.html +185 -0
  239. data/reference/namespacemembers_type.html +46 -0
  240. data/reference/namespacemembers_vars.html +46 -0
  241. data/reference/namespaces.html +35 -0
  242. data/reference/tab_b.gif +0 -0
  243. data/reference/tab_l.gif +0 -0
  244. data/reference/tab_r.gif +0 -0
  245. data/reference/tabs.css +102 -0
  246. data/windows/Gosu.sln +29 -0
  247. data/windows/Gosu.vcproj +553 -0
  248. data/windows/RubyGosu.vcproj +138 -0
  249. metadata +305 -0
@@ -0,0 +1,50 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
+ <title>Gosu: Input.hpp File Reference</title>
4
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
5
+ <link href="tabs.css" rel="stylesheet" type="text/css">
6
+ </head><body>
7
+ <!-- Generated by Doxygen 1.5.5 -->
8
+ <div class="navigation" id="top">
9
+ <div class="tabs">
10
+ <ul>
11
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
12
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
13
+ <li><a href="annotated.html"><span>Classes</span></a></li>
14
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
15
+ </ul>
16
+ </div>
17
+ </div>
18
+ <div class="contents">
19
+ <h1>Input.hpp File Reference</h1>Interface of the Input class. <a href="#_details">More...</a>
20
+ <p>
21
+
22
+ <p>
23
+ <a href="Input_8hpp-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
24
+ <tr><td></td></tr>
25
+ <tr><td colspan="2"><br><h2>Namespaces</h2></td></tr>
26
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceGosu.html">Gosu</a></td></tr>
27
+
28
+ <tr><td colspan="2"><br><h2>Classes</h2></td></tr>
29
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGosu_1_1Button.html">Gosu::Button</a></td></tr>
30
+
31
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Very lightweight class that identifies a button (keyboard, mouse or other device). <a href="classGosu_1_1Button.html#_details">More...</a><br></td></tr>
32
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGosu_1_1Input.html">Gosu::Input</a></td></tr>
33
+
34
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Manages initialization and shutdown of the input system; only one <a class="el" href="classGosu_1_1Input.html" title="Manages initialization and shutdown of the input system; only one Input instance...">Input</a> instance can live per application. <a href="classGosu_1_1Input.html#_details">More...</a><br></td></tr>
35
+ <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
36
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceGosu.html#8abc916db977614382f04aef415c21c3">Gosu::operator==</a> (Button lhs, Button rhs)</td></tr>
37
+
38
+ <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d6ebc33043d3f495cf4bfbea2184e6d6"></a><!-- doxytag: member="Input.hpp::operator!=" ref="d6ebc33043d3f495cf4bfbea2184e6d6" args="(Button lhs, Button rhs)" -->
39
+ bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>Gosu::operator!=</b> (Button lhs, Button rhs)</td></tr>
40
+
41
+ </table>
42
+ <hr><a name="_details"></a><h2>Detailed Description</h2>
43
+ Interface of the Input class.
44
+ <p>
45
+ </div>
46
+ <hr size="1"><address style="text-align: right;"><small>Generated on Fri Sep 12 21:50:23 2008 for Gosu by&nbsp;
47
+ <a href="http://www.doxygen.org/index.html">
48
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
49
+ </body>
50
+ </html>
@@ -0,0 +1,92 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
+ <title>Gosu: Math.hpp Source File</title>
4
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
5
+ <link href="tabs.css" rel="stylesheet" type="text/css">
6
+ </head><body>
7
+ <!-- Generated by Doxygen 1.5.5 -->
8
+ <div class="navigation" id="top">
9
+ <div class="tabs">
10
+ <ul>
11
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
12
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
13
+ <li><a href="annotated.html"><span>Classes</span></a></li>
14
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
15
+ </ul>
16
+ </div>
17
+ <h1>Math.hpp</h1><a href="Math_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
18
+ <a name="l00002"></a>00002
19
+ <a name="l00003"></a>00003
20
+ <a name="l00004"></a>00004 <span class="preprocessor">#ifndef GOSU_MATH_HPP</span>
21
+ <a name="l00005"></a>00005 <span class="preprocessor"></span><span class="preprocessor">#define GOSU_MATH_HPP</span>
22
+ <a name="l00006"></a>00006 <span class="preprocessor"></span>
23
+ <a name="l00007"></a>00007 <span class="keyword">namespace </span>Gosu
24
+ <a name="l00008"></a>00008 {
25
+ <a name="l00010"></a><a class="code" href="namespaceGosu.html#cc7336a0eba36412dab0e991fb3faf01">00010</a> <span class="keyword">const</span> <span class="keywordtype">double</span> <a class="code" href="namespaceGosu.html#cc7336a0eba36412dab0e991fb3faf01" title="Pi.">pi</a> = 3.1415926536;
26
+ <a name="l00011"></a>00011
27
+ <a name="l00014"></a><a class="code" href="namespaceGosu.html#dc5f4941f3a17c6c5233d6c7a628cc68">00014</a> <span class="keyword">inline</span> <span class="keywordtype">long</span> <a class="code" href="namespaceGosu.html#dc5f4941f3a17c6c5233d6c7a628cc68" title="Truncates the fractional part of a real value.">trunc</a>(<span class="keywordtype">double</span> value)
28
+ <a name="l00015"></a>00015 {
29
+ <a name="l00016"></a>00016 <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">long</span><span class="keyword">&gt;</span>(value);
30
+ <a name="l00017"></a>00017 }
31
+ <a name="l00018"></a>00018
32
+ <a name="l00020"></a><a class="code" href="namespaceGosu.html#496868cf52cf159cf98a00888c4fbc1c">00020</a> <span class="keyword">inline</span> <span class="keywordtype">long</span> <a class="code" href="namespaceGosu.html#496868cf52cf159cf98a00888c4fbc1c" title="Rounds a real value towards the next integer.">round</a>(<span class="keywordtype">double</span> value)
33
+ <a name="l00021"></a>00021 {
34
+ <a name="l00022"></a>00022 <span class="keywordflow">if</span> (value &gt;= 0)
35
+ <a name="l00023"></a>00023 <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">long</span><span class="keyword">&gt;</span>(value + 0.5);
36
+ <a name="l00024"></a>00024 <span class="keywordflow">else</span>
37
+ <a name="l00025"></a>00025 <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">long</span><span class="keyword">&gt;</span>(value - 0.5);
38
+ <a name="l00026"></a>00026 }
39
+ <a name="l00027"></a>00027
40
+ <a name="l00030"></a>00030 <span class="keywordtype">double</span> <a class="code" href="namespaceGosu.html#6c855080566f7f1b1967c90805249dda" title="Returns a real value between min and max.">random</a>(<span class="keywordtype">double</span> min, <span class="keywordtype">double</span> max);
41
+ <a name="l00031"></a>00031
42
+ <a name="l00036"></a>00036 <span class="keywordtype">double</span> <a class="code" href="namespaceGosu.html#e61d02831aa7026e96f1e53a358609b2" title="Returns the horizontal distance between the origin and the point to which you would...">offsetX</a>(<span class="keywordtype">double</span> <a class="code" href="namespaceGosu.html#f7740dec821977a37ff26a90c2e85ac7" title="Returns the angle between two points in degrees, where 0.0 means upwards.">angle</a>, <span class="keywordtype">double</span> radius);
43
+ <a name="l00041"></a>00041 <span class="keywordtype">double</span> <a class="code" href="namespaceGosu.html#9e0845d8b2ed385cb4e8593e7a308a08" title="Returns the vertical distance between the origin and the point to which you would...">offsetY</a>(<span class="keywordtype">double</span> <a class="code" href="namespaceGosu.html#f7740dec821977a37ff26a90c2e85ac7" title="Returns the angle between two points in degrees, where 0.0 means upwards.">angle</a>, <span class="keywordtype">double</span> radius);
44
+ <a name="l00044"></a>00044 <span class="keywordtype">double</span> <a class="code" href="namespaceGosu.html#f7740dec821977a37ff26a90c2e85ac7" title="Returns the angle between two points in degrees, where 0.0 means upwards.">angle</a>(<span class="keywordtype">double</span> fromX, <span class="keywordtype">double</span> fromY, <span class="keywordtype">double</span> toX, <span class="keywordtype">double</span> toY,
45
+ <a name="l00045"></a>00045 <span class="keywordtype">double</span> def = 0);
46
+ <a name="l00047"></a>00047 <span class="keywordtype">double</span> <a class="code" href="namespaceGosu.html#36cfaba7c2038bfeabdd1672882704f4" title="Returns the smallest positive angle between two angles.">angleDiff</a>(<span class="keywordtype">double</span> angle1, <span class="keywordtype">double</span> angle2);
47
+ <a name="l00049"></a>00049 <span class="keywordtype">double</span> <a class="code" href="namespaceGosu.html#c6f147ab90f7e343dd9d70cc8bf3a91b" title="Normalizes an angle to fit into the range [0; 360[.">normalizeAngle</a>(<span class="keywordtype">double</span> <a class="code" href="namespaceGosu.html#f7740dec821977a37ff26a90c2e85ac7" title="Returns the angle between two points in degrees, where 0.0 means upwards.">angle</a>);
48
+ <a name="l00050"></a>00050
49
+ <a name="l00052"></a>00052 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
50
+ <a name="l00053"></a><a class="code" href="namespaceGosu.html#cac78b0775d1b551f4adf9ae76efb4cc">00053</a> T <a class="code" href="namespaceGosu.html#cac78b0775d1b551f4adf9ae76efb4cc" title="Returns value * value.">square</a>(T value)
51
+ <a name="l00054"></a>00054 {
52
+ <a name="l00055"></a>00055 <span class="keywordflow">return</span> value * value;
53
+ <a name="l00056"></a>00056 }
54
+ <a name="l00057"></a>00057
55
+ <a name="l00060"></a>00060 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
56
+ <a name="l00061"></a><a class="code" href="namespaceGosu.html#3359d78e0ca7fa5d163dce7b99f72e9f">00061</a> T <a class="code" href="namespaceGosu.html#3359d78e0ca7fa5d163dce7b99f72e9f" title="Returns min if value is smaller than min, max if value is larger than max and value...">clamp</a>(T value, T min, T max)
57
+ <a name="l00062"></a>00062 {
58
+ <a name="l00063"></a>00063 <span class="keywordflow">if</span> (value &lt; min)
59
+ <a name="l00064"></a>00064 <span class="keywordflow">return</span> min;
60
+ <a name="l00065"></a>00065 <span class="keywordflow">if</span> (value &gt; max)
61
+ <a name="l00066"></a>00066 <span class="keywordflow">return</span> max;
62
+ <a name="l00067"></a>00067 <span class="keywordflow">return</span> value;
63
+ <a name="l00068"></a>00068 }
64
+ <a name="l00069"></a>00069
65
+ <a name="l00070"></a>00070 <span class="comment">// Backward compatibility with 0.7.x</span>
66
+ <a name="l00071"></a>00071 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
67
+ <a name="l00072"></a>00072 T boundBy(T value, T min, T max)
68
+ <a name="l00073"></a>00073 {
69
+ <a name="l00074"></a>00074 <span class="keywordflow">return</span> <a class="code" href="namespaceGosu.html#3359d78e0ca7fa5d163dce7b99f72e9f" title="Returns min if value is smaller than min, max if value is larger than max and value...">clamp</a>(value, min, max);
70
+ <a name="l00075"></a>00075 }
71
+ <a name="l00076"></a>00076
72
+ <a name="l00078"></a><a class="code" href="namespaceGosu.html#58015f2ee3527184171d3d99176fd360">00078</a> <span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code" href="namespaceGosu.html#58015f2ee3527184171d3d99176fd360" title="Returns the square of the distance between two points.">distanceSqr</a>(<span class="keywordtype">double</span> x1, <span class="keywordtype">double</span> y1, <span class="keywordtype">double</span> x2, <span class="keywordtype">double</span> y2)
73
+ <a name="l00079"></a>00079 {
74
+ <a name="l00080"></a>00080 <span class="keywordflow">return</span> <a class="code" href="namespaceGosu.html#cac78b0775d1b551f4adf9ae76efb4cc" title="Returns value * value.">square</a>(x1 - x2) + <a class="code" href="namespaceGosu.html#cac78b0775d1b551f4adf9ae76efb4cc" title="Returns value * value.">square</a>(y1 - y2);
75
+ <a name="l00081"></a>00081 }
76
+ <a name="l00082"></a>00082
77
+ <a name="l00084"></a>00084 <span class="keywordtype">double</span> <a class="code" href="namespaceGosu.html#a06a29a8aefa1be625072b02e2d825bd" title="Returns the distance between two points.">distance</a>(<span class="keywordtype">double</span> x1, <span class="keywordtype">double</span> y1, <span class="keywordtype">double</span> x2, <span class="keywordtype">double</span> y2);
78
+ <a name="l00085"></a>00085
79
+ <a name="l00088"></a>00088 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
80
+ <a name="l00089"></a><a class="code" href="namespaceGosu.html#29515f6c9be056e9ca5f672dec154847">00089</a> T <a class="code" href="namespaceGosu.html#55c2cfa7575386d8eb6a8dc615e905ae" title="Interpolates linearly between two colors, with a given weight towards the second...">interpolate</a>(T a, T b, <span class="keywordtype">double</span> weight = 0.5)
81
+ <a name="l00090"></a>00090 {
82
+ <a name="l00091"></a>00091 <span class="keywordflow">return</span> a * (1.0 - weight) + b * weight;
83
+ <a name="l00092"></a>00092 }
84
+ <a name="l00093"></a>00093 }
85
+ <a name="l00094"></a>00094
86
+ <a name="l00095"></a>00095 <span class="preprocessor">#endif</span>
87
+ </pre></div></div>
88
+ <hr size="1"><address style="text-align: right;"><small>Generated on Fri Sep 12 21:50:23 2008 for Gosu by&nbsp;
89
+ <a href="http://www.doxygen.org/index.html">
90
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
91
+ </body>
92
+ </html>
@@ -0,0 +1,74 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
+ <title>Gosu: Math.hpp File Reference</title>
4
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
5
+ <link href="tabs.css" rel="stylesheet" type="text/css">
6
+ </head><body>
7
+ <!-- Generated by Doxygen 1.5.5 -->
8
+ <div class="navigation" id="top">
9
+ <div class="tabs">
10
+ <ul>
11
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
12
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
13
+ <li><a href="annotated.html"><span>Classes</span></a></li>
14
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
15
+ </ul>
16
+ </div>
17
+ </div>
18
+ <div class="contents">
19
+ <h1>Math.hpp File Reference</h1>Contains simple math functionality. <a href="#_details">More...</a>
20
+ <p>
21
+
22
+ <p>
23
+ <a href="Math_8hpp-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
24
+ <tr><td></td></tr>
25
+ <tr><td colspan="2"><br><h2>Namespaces</h2></td></tr>
26
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceGosu.html">Gosu</a></td></tr>
27
+
28
+ <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
29
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceGosu.html#dc5f4941f3a17c6c5233d6c7a628cc68">Gosu::trunc</a> (double value)</td></tr>
30
+
31
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceGosu.html#496868cf52cf159cf98a00888c4fbc1c">Gosu::round</a> (double value)</td></tr>
32
+
33
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceGosu.html#6c855080566f7f1b1967c90805249dda">Gosu::random</a> (double min, double max)</td></tr>
34
+
35
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceGosu.html#e61d02831aa7026e96f1e53a358609b2">Gosu::offsetX</a> (double angle, double radius)</td></tr>
36
+
37
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceGosu.html#9e0845d8b2ed385cb4e8593e7a308a08">Gosu::offsetY</a> (double angle, double radius)</td></tr>
38
+
39
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceGosu.html#f7740dec821977a37ff26a90c2e85ac7">Gosu::angle</a> (double fromX, double fromY, double toX, double toY, double def=0)</td></tr>
40
+
41
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceGosu.html#36cfaba7c2038bfeabdd1672882704f4">Gosu::angleDiff</a> (double angle1, double angle2)</td></tr>
42
+
43
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceGosu.html#c6f147ab90f7e343dd9d70cc8bf3a91b">Gosu::normalizeAngle</a> (double angle)</td></tr>
44
+
45
+ <tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename T&gt; </td></tr>
46
+ <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceGosu.html#cac78b0775d1b551f4adf9ae76efb4cc">Gosu::square</a> (T value)</td></tr>
47
+
48
+ <tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename T&gt; </td></tr>
49
+ <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceGosu.html#3359d78e0ca7fa5d163dce7b99f72e9f">Gosu::clamp</a> (T value, T min, T max)</td></tr>
50
+
51
+ <tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="5b35114c04a3f01d54c2e052d350b61f"></a><!-- doxytag: member="Math.hpp::boundBy" ref="5b35114c04a3f01d54c2e052d350b61f" args="(T value, T min, T max)" -->
52
+ template&lt;typename T&gt; </td></tr>
53
+ <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>Gosu::boundBy</b> (T value, T min, T max)</td></tr>
54
+
55
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceGosu.html#58015f2ee3527184171d3d99176fd360">Gosu::distanceSqr</a> (double x1, double y1, double x2, double y2)</td></tr>
56
+
57
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceGosu.html#a06a29a8aefa1be625072b02e2d825bd">Gosu::distance</a> (double x1, double y1, double x2, double y2)</td></tr>
58
+
59
+ <tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename T&gt; </td></tr>
60
+ <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceGosu.html#29515f6c9be056e9ca5f672dec154847">Gosu::interpolate</a> (T a, T b, double weight=0.5)</td></tr>
61
+
62
+ <tr><td colspan="2"><br><h2>Variables</h2></td></tr>
63
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">const double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceGosu.html#cc7336a0eba36412dab0e991fb3faf01">Gosu::pi</a> = 3.1415926536</td></tr>
64
+
65
+ </table>
66
+ <hr><a name="_details"></a><h2>Detailed Description</h2>
67
+ Contains simple math functionality.
68
+ <p>
69
+ </div>
70
+ <hr size="1"><address style="text-align: right;"><small>Generated on Fri Sep 12 21:50:23 2008 for Gosu by&nbsp;
71
+ <a href="http://www.doxygen.org/index.html">
72
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
73
+ </body>
74
+ </html>
@@ -0,0 +1,83 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
+ <title>Gosu: Platform.hpp Source File</title>
4
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
5
+ <link href="tabs.css" rel="stylesheet" type="text/css">
6
+ </head><body>
7
+ <!-- Generated by Doxygen 1.5.5 -->
8
+ <div class="navigation" id="top">
9
+ <div class="tabs">
10
+ <ul>
11
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
12
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
13
+ <li><a href="annotated.html"><span>Classes</span></a></li>
14
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
15
+ </ul>
16
+ </div>
17
+ <h1>Platform.hpp</h1><a href="Platform_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
18
+ <a name="l00002"></a>00002
19
+ <a name="l00003"></a>00003
20
+ <a name="l00004"></a>00004 <span class="preprocessor">#ifndef GOSU_PLATFORM_HPP</span>
21
+ <a name="l00005"></a>00005 <span class="preprocessor"></span><span class="preprocessor">#define GOSU_PLATFORM_HPP</span>
22
+ <a name="l00006"></a>00006 <span class="preprocessor"></span>
23
+ <a name="l00007"></a>00007 <span class="preprocessor">#ifdef __BIG_ENDIAN__</span>
24
+ <a name="l00008"></a>00008 <span class="preprocessor"></span><span class="preprocessor">#define IDENTITY_FUN bigToNative</span>
25
+ <a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define IDENTITY_FUN2 nativeToBig</span>
26
+ <a name="l00010"></a>00010 <span class="preprocessor"></span><span class="preprocessor">#define CONV_FUN littleToNative</span>
27
+ <a name="l00011"></a>00011 <span class="preprocessor"></span><span class="preprocessor">#define CONV_FUN2 nativeToLittle</span>
28
+ <a name="l00012"></a>00012 <span class="preprocessor"></span><span class="preprocessor">#else</span>
29
+ <a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor">#define IDENTITY_FUN littleToNative</span>
30
+ <a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor">#define IDENTITY_FUN2 nativeToLittle</span>
31
+ <a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#define CONV_FUN bigToNative</span>
32
+ <a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#define CONV_FUN2 nativeToBig</span>
33
+ <a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
34
+ <a name="l00018"></a>00018 <span class="preprocessor"></span>
35
+ <a name="l00019"></a>00019 <span class="preprocessor">#include &lt;algorithm&gt;</span>
36
+ <a name="l00020"></a>00020
37
+ <a name="l00021"></a>00021 <span class="keyword">namespace </span>Gosu
38
+ <a name="l00022"></a>00022 {
39
+ <a name="l00023"></a>00023 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; T IDENTITY_FUN(T t) { <span class="keywordflow">return</span> t; }
40
+ <a name="l00024"></a>00024 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; T IDENTITY_FUN2(T t) { <span class="keywordflow">return</span> t; }
41
+ <a name="l00025"></a>00025
42
+ <a name="l00026"></a>00026 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
43
+ <a name="l00027"></a>00027 T CONV_FUN(T t)
44
+ <a name="l00028"></a>00028 {
45
+ <a name="l00029"></a>00029 <span class="keywordtype">char</span>* begin = <span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(&amp;t);
46
+ <a name="l00030"></a>00030 std::reverse(begin, begin + <span class="keyword">sizeof</span> t);
47
+ <a name="l00031"></a>00031 <span class="keywordflow">return</span> t;
48
+ <a name="l00032"></a>00032 }
49
+ <a name="l00033"></a>00033
50
+ <a name="l00034"></a>00034 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; T CONV_FUN2(T t) { <span class="keywordflow">return</span> CONV_FUN(t); }
51
+ <a name="l00035"></a>00035 }
52
+ <a name="l00036"></a>00036
53
+ <a name="l00037"></a>00037 <span class="preprocessor">#undef IDENTITY_FUN</span>
54
+ <a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#undef IDENTITY_FUN2</span>
55
+ <a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#undef CONV_FUN</span>
56
+ <a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#undef CONV_FUN2</span>
57
+ <a name="l00041"></a>00041 <span class="preprocessor"></span>
58
+ <a name="l00042"></a>00042 <span class="preprocessor">#ifdef _MSC_VER</span>
59
+ <a name="l00043"></a>00043 <span class="preprocessor"></span><span class="preprocessor">#define GOSU_NORETURN __declspec(noreturn)</span>
60
+ <a name="l00044"></a>00044 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
61
+ <a name="l00045"></a>00045 <span class="preprocessor"></span>
62
+ <a name="l00046"></a>00046 <span class="preprocessor">#ifdef __GNUC__</span>
63
+ <a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#define GOSU_NORETURN __attribute__ ((noreturn))</span>
64
+ <a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
65
+ <a name="l00049"></a>00049 <span class="preprocessor"></span>
66
+ <a name="l00050"></a>00050 <span class="preprocessor">#ifdef WIN32</span>
67
+ <a name="l00051"></a>00051 <span class="preprocessor"></span><span class="preprocessor"># define GOSU_IS_WIN</span>
68
+ <a name="l00052"></a>00052 <span class="preprocessor"></span><span class="preprocessor">#else</span>
69
+ <a name="l00053"></a>00053 <span class="preprocessor"></span><span class="preprocessor"># define GOSU_IS_UNIX</span>
70
+ <a name="l00054"></a>00054 <span class="preprocessor"></span><span class="preprocessor"># if defined(__linux) || defined(__FreeBSD__)</span>
71
+ <a name="l00055"></a>00055 <span class="preprocessor"></span><span class="preprocessor"># define GOSU_IS_X</span>
72
+ <a name="l00056"></a>00056 <span class="preprocessor"></span><span class="preprocessor"># else</span>
73
+ <a name="l00057"></a>00057 <span class="preprocessor"></span><span class="preprocessor"># define GOSU_IS_MAC</span>
74
+ <a name="l00058"></a>00058 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
75
+ <a name="l00059"></a>00059 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
76
+ <a name="l00060"></a>00060 <span class="preprocessor"></span>
77
+ <a name="l00061"></a>00061 <span class="preprocessor">#endif</span>
78
+ </pre></div></div>
79
+ <hr size="1"><address style="text-align: right;"><small>Generated on Fri Sep 12 21:50:23 2008 for Gosu by&nbsp;
80
+ <a href="http://www.doxygen.org/index.html">
81
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
82
+ </body>
83
+ </html>
@@ -0,0 +1,73 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
+ <title>Gosu: Platform.hpp File Reference</title>
4
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
5
+ <link href="tabs.css" rel="stylesheet" type="text/css">
6
+ </head><body>
7
+ <!-- Generated by Doxygen 1.5.5 -->
8
+ <div class="navigation" id="top">
9
+ <div class="tabs">
10
+ <ul>
11
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
12
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
13
+ <li><a href="annotated.html"><span>Classes</span></a></li>
14
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
15
+ </ul>
16
+ </div>
17
+ </div>
18
+ <div class="contents">
19
+ <h1>Platform.hpp File Reference</h1>Macros and utility functions to facilitate programming on all of Gosu's supported platforms. <a href="#_details">More...</a>
20
+ <p>
21
+
22
+ <p>
23
+ <a href="Platform_8hpp-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
24
+ <tr><td></td></tr>
25
+ <tr><td colspan="2"><br><h2>Namespaces</h2></td></tr>
26
+ <tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceGosu.html">Gosu</a></td></tr>
27
+
28
+ <tr><td colspan="2"><br><h2>Defines</h2></td></tr>
29
+ <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="83e716dc517663f3e92113a65ac89f00"></a><!-- doxytag: member="Platform.hpp::IDENTITY_FUN" ref="83e716dc517663f3e92113a65ac89f00" args="" -->
30
+ #define&nbsp;</td><td class="memItemRight" valign="bottom"><b>IDENTITY_FUN</b>&nbsp;&nbsp;&nbsp;littleToNative</td></tr>
31
+
32
+ <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d825a041da05b9ead5967326d23d1adb"></a><!-- doxytag: member="Platform.hpp::IDENTITY_FUN2" ref="d825a041da05b9ead5967326d23d1adb" args="" -->
33
+ #define&nbsp;</td><td class="memItemRight" valign="bottom"><b>IDENTITY_FUN2</b>&nbsp;&nbsp;&nbsp;nativeToLittle</td></tr>
34
+
35
+ <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1cfd7bfc4d742a19627a9cf7d0888635"></a><!-- doxytag: member="Platform.hpp::CONV_FUN" ref="1cfd7bfc4d742a19627a9cf7d0888635" args="" -->
36
+ #define&nbsp;</td><td class="memItemRight" valign="bottom"><b>CONV_FUN</b>&nbsp;&nbsp;&nbsp;bigToNative</td></tr>
37
+
38
+ <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="efee8d4b97053f2b3f1e83e5ebbd2f27"></a><!-- doxytag: member="Platform.hpp::CONV_FUN2" ref="efee8d4b97053f2b3f1e83e5ebbd2f27" args="" -->
39
+ #define&nbsp;</td><td class="memItemRight" valign="bottom"><b>CONV_FUN2</b>&nbsp;&nbsp;&nbsp;nativeToBig</td></tr>
40
+
41
+ <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="affbc4e302a692e21642914e262b7e30"></a><!-- doxytag: member="Platform.hpp::GOSU_IS_UNIX" ref="affbc4e302a692e21642914e262b7e30" args="" -->
42
+ #define&nbsp;</td><td class="memItemRight" valign="bottom"><b>GOSU_IS_UNIX</b></td></tr>
43
+
44
+ <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1fa939cf2107f6a856c431806578aa1e"></a><!-- doxytag: member="Platform.hpp::GOSU_IS_MAC" ref="1fa939cf2107f6a856c431806578aa1e" args="" -->
45
+ #define&nbsp;</td><td class="memItemRight" valign="bottom"><b>GOSU_IS_MAC</b></td></tr>
46
+
47
+ <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
48
+ <tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="3ea757503a65f9fb3b8ba913c726585f"></a><!-- doxytag: member="Platform.hpp::IDENTITY_FUN" ref="3ea757503a65f9fb3b8ba913c726585f" args="(T t)" -->
49
+ template&lt;typename T&gt; </td></tr>
50
+ <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>Gosu::IDENTITY_FUN</b> (T t)</td></tr>
51
+
52
+ <tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="ab6a919c784cf33d6d9a64ce61110cd7"></a><!-- doxytag: member="Platform.hpp::IDENTITY_FUN2" ref="ab6a919c784cf33d6d9a64ce61110cd7" args="(T t)" -->
53
+ template&lt;typename T&gt; </td></tr>
54
+ <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>Gosu::IDENTITY_FUN2</b> (T t)</td></tr>
55
+
56
+ <tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="f161626629fdbc5bf78c55a016efc82d"></a><!-- doxytag: member="Platform.hpp::CONV_FUN" ref="f161626629fdbc5bf78c55a016efc82d" args="(T t)" -->
57
+ template&lt;typename T&gt; </td></tr>
58
+ <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>Gosu::CONV_FUN</b> (T t)</td></tr>
59
+
60
+ <tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="23fbca32f7bdea943a463509fd8ee26e"></a><!-- doxytag: member="Platform.hpp::CONV_FUN2" ref="23fbca32f7bdea943a463509fd8ee26e" args="(T t)" -->
61
+ template&lt;typename T&gt; </td></tr>
62
+ <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>Gosu::CONV_FUN2</b> (T t)</td></tr>
63
+
64
+ </table>
65
+ <hr><a name="_details"></a><h2>Detailed Description</h2>
66
+ Macros and utility functions to facilitate programming on all of Gosu's supported platforms.
67
+ <p>
68
+ </div>
69
+ <hr size="1"><address style="text-align: right;"><small>Generated on Fri Sep 12 21:50:23 2008 for Gosu by&nbsp;
70
+ <a href="http://www.doxygen.org/index.html">
71
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
72
+ </body>
73
+ </html>
@@ -0,0 +1,138 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
+ <title>Gosu: RotFlip.hpp Source File</title>
4
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
5
+ <link href="tabs.css" rel="stylesheet" type="text/css">
6
+ </head><body>
7
+ <!-- Generated by Doxygen 1.5.5 -->
8
+ <div class="navigation" id="top">
9
+ <div class="tabs">
10
+ <ul>
11
+ <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
12
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
13
+ <li><a href="annotated.html"><span>Classes</span></a></li>
14
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
15
+ </ul>
16
+ </div>
17
+ <h1>RotFlip.hpp</h1><a href="RotFlip_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
18
+ <a name="l00002"></a>00002
19
+ <a name="l00003"></a>00003
20
+ <a name="l00004"></a>00004 <span class="preprocessor">#ifndef GOSU_ROTFLIP_HPP</span>
21
+ <a name="l00005"></a>00005 <span class="preprocessor"></span><span class="preprocessor">#define GOSU_ROTFLIP_HPP</span>
22
+ <a name="l00006"></a>00006 <span class="preprocessor"></span>
23
+ <a name="l00007"></a>00007 <span class="keyword">namespace </span>Gosu
24
+ <a name="l00008"></a>00008 {
25
+ <a name="l00009"></a>00009 <span class="keyword">enum</span> RotFlipName
26
+ <a name="l00010"></a>00010 {
27
+ <a name="l00011"></a>00011 rfDefault,
28
+ <a name="l00012"></a>00012 rfRotate90,
29
+ <a name="l00013"></a>00013 rfRotate180,
30
+ <a name="l00014"></a>00014 rfRotate270,
31
+ <a name="l00015"></a>00015
32
+ <a name="l00016"></a>00016 rfFlipX,
33
+ <a name="l00017"></a>00017 rfRotate90FlipX,
34
+ <a name="l00018"></a>00018 rfRotate180FlipX,
35
+ <a name="l00019"></a>00019 rfRotate270FlipX,
36
+ <a name="l00020"></a>00020
37
+ <a name="l00021"></a>00021 rfFlipY = rfRotate180FlipX,
38
+ <a name="l00022"></a>00022 rfRotate90FlipY = rfRotate270FlipX,
39
+ <a name="l00023"></a>00023 rfRotate180FlipY = rfFlipX,
40
+ <a name="l00024"></a>00024 rfRotate270FlipY = rfRotate90FlipX,
41
+ <a name="l00025"></a>00025
42
+ <a name="l00026"></a>00026 rfFlipXRotate90 = rfRotate270FlipX,
43
+ <a name="l00027"></a>00027 rfFlipXRotate180 = rfRotate180FlipX,
44
+ <a name="l00028"></a>00028 rfFlipXRotate270 = rfRotate90FlipX,
45
+ <a name="l00029"></a>00029
46
+ <a name="l00030"></a>00030 rfFlipYRotate90 = rfRotate90FlipX,
47
+ <a name="l00031"></a>00031 rfFlipYRotate180 = rfFlipX,
48
+ <a name="l00032"></a>00032 rfFlipYRotate270 = rfRotate270FlipX
49
+ <a name="l00033"></a>00033 };
50
+ <a name="l00034"></a>00034
51
+ <a name="l00035"></a>00035 <span class="keyword">class </span>RotFlip
52
+ <a name="l00036"></a>00036 {
53
+ <a name="l00037"></a>00037 RotFlipName name_;
54
+ <a name="l00038"></a>00038
55
+ <a name="l00039"></a>00039 <span class="keyword">typedef</span> RotFlipName TransTable[8];
56
+ <a name="l00040"></a>00040 <span class="keyword">static</span> <span class="keyword">const</span> TransTable flipXTable, flipYTable, rotate90Table,
57
+ <a name="l00041"></a>00041 rotate180Table, rotate270Table;
58
+ <a name="l00042"></a>00042
59
+ <a name="l00043"></a>00043 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> CornerTable[8][4];
60
+ <a name="l00044"></a>00044 <span class="keyword">static</span> <span class="keyword">const</span> CornerTable mapCornerTable, realCornerTable;
61
+ <a name="l00045"></a>00045
62
+ <a name="l00046"></a>00046 <span class="keyword">public</span>:
63
+ <a name="l00047"></a>00047 RotFlip(RotFlipName name = rfDefault)
64
+ <a name="l00048"></a>00048 : name_(name)
65
+ <a name="l00049"></a>00049 {
66
+ <a name="l00050"></a>00050 }
67
+ <a name="l00051"></a>00051
68
+ <a name="l00052"></a>00052 RotFlipName name()<span class="keyword"> const</span>
69
+ <a name="l00053"></a>00053 <span class="keyword"> </span>{
70
+ <a name="l00054"></a>00054 <span class="keywordflow">return</span> name_;
71
+ <a name="l00055"></a>00055 }
72
+ <a name="l00056"></a>00056
73
+ <a name="l00057"></a>00057 <span class="keywordtype">void</span> flipX()
74
+ <a name="l00058"></a>00058 {
75
+ <a name="l00059"></a>00059 name_ = flipXTable[name_];
76
+ <a name="l00060"></a>00060 }
77
+ <a name="l00061"></a>00061
78
+ <a name="l00062"></a>00062 <span class="keywordtype">void</span> flipY()
79
+ <a name="l00063"></a>00063 {
80
+ <a name="l00064"></a>00064 name_ = flipYTable[name_];
81
+ <a name="l00065"></a>00065 }
82
+ <a name="l00066"></a>00066
83
+ <a name="l00067"></a>00067 <span class="keywordtype">void</span> rotate90()
84
+ <a name="l00068"></a>00068 {
85
+ <a name="l00069"></a>00069 name_ = rotate90Table[name_];
86
+ <a name="l00070"></a>00070 }
87
+ <a name="l00071"></a>00071
88
+ <a name="l00072"></a>00072 <span class="keywordtype">void</span> rotate180()
89
+ <a name="l00073"></a>00073 {
90
+ <a name="l00074"></a>00074 name_ = rotate180Table[name_];
91
+ <a name="l00075"></a>00075 }
92
+ <a name="l00076"></a>00076
93
+ <a name="l00077"></a>00077 <span class="keywordtype">void</span> rotate270()
94
+ <a name="l00078"></a>00078 {
95
+ <a name="l00079"></a>00079 name_ = rotate270Table[name_];
96
+ <a name="l00080"></a>00080 }
97
+ <a name="l00081"></a>00081
98
+ <a name="l00082"></a>00082 <span class="keywordtype">bool</span> flipped()<span class="keyword"> const</span>
99
+ <a name="l00083"></a>00083 <span class="keyword"> </span>{
100
+ <a name="l00084"></a>00084 <span class="keywordflow">return</span> name_ &gt;= rfFlipX;
101
+ <a name="l00085"></a>00085 }
102
+ <a name="l00086"></a>00086
103
+ <a name="l00087"></a>00087 <span class="keywordtype">bool</span> rotated()<span class="keyword"> const</span>
104
+ <a name="l00088"></a>00088 <span class="keyword"> </span>{
105
+ <a name="l00089"></a>00089 <span class="keywordflow">return</span> name_ % 2 == 1;
106
+ <a name="l00090"></a>00090 }
107
+ <a name="l00091"></a>00091
108
+ <a name="l00092"></a>00092 <span class="keywordtype">unsigned</span> mapCorner(<span class="keywordtype">unsigned</span> n)<span class="keyword"> const</span>
109
+ <a name="l00093"></a>00093 <span class="keyword"> </span>{
110
+ <a name="l00094"></a>00094 <span class="keywordflow">return</span> mapCornerTable[name_][n];
111
+ <a name="l00095"></a>00095 }
112
+ <a name="l00096"></a>00096
113
+ <a name="l00097"></a>00097 <span class="keywordtype">unsigned</span> realCorner(<span class="keywordtype">unsigned</span> n)<span class="keyword"> const</span>
114
+ <a name="l00098"></a>00098 <span class="keyword"> </span>{
115
+ <a name="l00099"></a>00099 <span class="keywordflow">return</span> realCornerTable[name_][n];
116
+ <a name="l00100"></a>00100 }
117
+ <a name="l00101"></a>00101 };
118
+ <a name="l00102"></a>00102
119
+ <a name="l00103"></a>00103 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(RotFlip a, RotFlip b)
120
+ <a name="l00104"></a>00104 {
121
+ <a name="l00105"></a>00105 <span class="keywordflow">return</span> a.name() == b.name();
122
+ <a name="l00106"></a>00106 }
123
+ <a name="l00107"></a>00107
124
+ <a name="l00108"></a>00108 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(RotFlip a, RotFlip b)
125
+ <a name="l00109"></a>00109 {
126
+ <a name="l00110"></a>00110 <span class="keywordflow">return</span> a.name() != b.name();
127
+ <a name="l00111"></a>00111 }
128
+ <a name="l00112"></a>00112
129
+ <a name="l00113"></a>00113 <span class="keywordtype">void</span> applyToPoint(RotFlip rotFlip, <span class="keywordtype">int</span>&amp; x, <span class="keywordtype">int</span>&amp; y, <span class="keywordtype">int</span> max);
130
+ <a name="l00114"></a>00114 }
131
+ <a name="l00115"></a>00115
132
+ <a name="l00116"></a>00116 <span class="preprocessor">#endif</span>
133
+ </pre></div></div>
134
+ <hr size="1"><address style="text-align: right;"><small>Generated on Fri Sep 12 21:50:23 2008 for Gosu by&nbsp;
135
+ <a href="http://www.doxygen.org/index.html">
136
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
137
+ </body>
138
+ </html>