ogre.rb 0.1-i686-linux

Sign up to get free protection for your applications and to get access to all the features.
Files changed (430) hide show
  1. data/README +79 -0
  2. data/Rakefile +288 -0
  3. data/doc_src/ogre.rb +246 -0
  4. data/doc_src/ois.rb +67 -0
  5. data/lib/application.rb +146 -0
  6. data/lib/application_frame_listener.rb +302 -0
  7. data/lib/application_loading_bar.rb +115 -0
  8. data/lib/constants.rb +51 -0
  9. data/lib/method_fixes.rb +42 -0
  10. data/lib/ogre.so +0 -0
  11. data/lib/ruby_ois.so +0 -0
  12. data/ogre.rb +25 -0
  13. data/platform.rb +23 -0
  14. data/samples/Ogre.log +261 -0
  15. data/samples/bsp.rb +76 -0
  16. data/samples/cg.dll +0 -0
  17. data/samples/grass.rb +325 -0
  18. data/samples/js3250.dll +0 -0
  19. data/samples/lighting.rb +138 -0
  20. data/samples/media/materials/programs/Grass.cg +30 -0
  21. data/samples/media/materials/programs/OffsetMapping.cg +97 -0
  22. data/samples/media/materials/programs/OffsetMapping.hlsl +135 -0
  23. data/samples/media/materials/programs/OffsetMappingFp.glsl +69 -0
  24. data/samples/media/materials/programs/OffsetMappingVp.glsl +54 -0
  25. data/samples/media/materials/programs/OffsetMapping_specular.asm +44 -0
  26. data/samples/media/materials/scripts/CloudySky.material +17 -0
  27. data/samples/media/materials/scripts/CubeMapping.material +34 -0
  28. data/samples/media/materials/scripts/Flare.material +17 -0
  29. data/samples/media/materials/scripts/Grass.material +63 -0
  30. data/samples/media/materials/scripts/Knot.material +14 -0
  31. data/samples/media/materials/scripts/MorningSkyBox.material +17 -0
  32. data/samples/media/materials/scripts/Offset.material +124 -0
  33. data/samples/media/materials/scripts/Ogre.material +119 -0
  34. data/samples/media/materials/scripts/RZR-002.material +15 -0
  35. data/samples/media/materials/scripts/Razor.material +14 -0
  36. data/samples/media/materials/scripts/Ribbon.material +19 -0
  37. data/samples/media/materials/scripts/RustySteel.material +14 -0
  38. data/samples/media/materials/scripts/SpaceSkyBox.material +17 -0
  39. data/samples/media/materials/scripts/SpaceSkyPlane.material +17 -0
  40. data/samples/media/materials/scripts/TextureEffects.material +15 -0
  41. data/samples/media/materials/scripts/dragon.material +42 -0
  42. data/samples/media/materials/scripts/smoke.material +18 -0
  43. data/samples/media/materials/textures/GreenSkin.jpg +0 -0
  44. data/samples/media/materials/textures/MtlPlat2.jpg +0 -0
  45. data/samples/media/materials/textures/RZR-002.png +0 -0
  46. data/samples/media/materials/textures/RustedMetal.jpg +0 -0
  47. data/samples/media/materials/textures/RustySteel.jpg +0 -0
  48. data/samples/media/materials/textures/Water02.jpg +0 -0
  49. data/samples/media/materials/textures/WeirdEye.png +0 -0
  50. data/samples/media/materials/textures/clouds.jpg +0 -0
  51. data/samples/media/materials/textures/cursor.png +0 -0
  52. data/samples/media/materials/textures/dirt01.jpg +0 -0
  53. data/samples/media/materials/textures/flare.png +0 -0
  54. data/samples/media/materials/textures/gras_02.png +0 -0
  55. data/samples/media/materials/textures/grass_1024.jpg +0 -0
  56. data/samples/media/materials/textures/ogreborder.png +0 -0
  57. data/samples/media/materials/textures/ogreborderUp.png +0 -0
  58. data/samples/media/materials/textures/ribbonband.png +0 -0
  59. data/samples/media/materials/textures/rockwall.tga +0 -0
  60. data/samples/media/materials/textures/rockwall_NH.tga +0 -0
  61. data/samples/media/materials/textures/smoke.png +0 -0
  62. data/samples/media/materials/textures/smokecolors.png +0 -0
  63. data/samples/media/materials/textures/spacesky.jpg +0 -0
  64. data/samples/media/materials/textures/spheremap.png +0 -0
  65. data/samples/media/materials/textures/texmap2.jpg +0 -0
  66. data/samples/media/models/RZR-002.mesh +0 -0
  67. data/samples/media/models/geosphere4500.mesh +0 -0
  68. data/samples/media/models/geosphere8000.mesh +0 -0
  69. data/samples/media/models/knot.mesh +0 -0
  70. data/samples/media/models/ogrehead.mesh +0 -0
  71. data/samples/media/models/razor.mesh +0 -0
  72. data/samples/media/models/sphere.mesh +0 -0
  73. data/samples/media/overlays/CubeMapping.overlay +139 -0
  74. data/samples/media/packs/OgreCore.zip +0 -0
  75. data/samples/media/packs/chiropteraDM.pk3 +0 -0
  76. data/samples/media/packs/chiropteraDM.txt +99 -0
  77. data/samples/media/packs/cubemap.zip +0 -0
  78. data/samples/media/packs/cubemapsJS.zip +0 -0
  79. data/samples/media/packs/dragon.zip +0 -0
  80. data/samples/media/packs/skybox.zip +0 -0
  81. data/samples/media/particles/smoke.particle +43 -0
  82. data/samples/media.cfg +22 -0
  83. data/samples/navi/Media/NaviDemo.material +60 -0
  84. data/samples/navi/Media/OgreCore.zip +0 -0
  85. data/samples/navi/Media/cerulean.jpg +0 -0
  86. data/samples/navi/Media/clouds.jpg +0 -0
  87. data/samples/navi/Media/controlsNaviMask.png +0 -0
  88. data/samples/navi/Media/grass.jpg +0 -0
  89. data/samples/navi/Media/knot.mesh +0 -0
  90. data/samples/navi/Media/testNaviMask.png +0 -0
  91. data/samples/navi/NaviLocal/Navi.js +136 -0
  92. data/samples/navi/NaviLocal/buttonBg.jpg +0 -0
  93. data/samples/navi/NaviLocal/controls.html +303 -0
  94. data/samples/navi/NaviLocal/knobBg.jpg +0 -0
  95. data/samples/navi/NaviLocal/moo.dropdownmenu.js +87 -0
  96. data/samples/navi/NaviLocal/mootools.v1.1.js +6964 -0
  97. data/samples/navi/NaviLocal/naviLogo.html +32 -0
  98. data/samples/navi/NaviLocal/naviLogo.png +0 -0
  99. data/samples/navi/NaviLocal/pageBg.jpg +0 -0
  100. data/samples/navi/NaviLocal/sliderBg.jpg +0 -0
  101. data/samples/navi/NaviLocal/test.html +5 -0
  102. data/samples/navi/NaviLocal/welcome.html +36 -0
  103. data/samples/navi/NaviLocal/welcome.png +0 -0
  104. data/samples/navi/chrome/chromelist.txt +597 -0
  105. data/samples/navi/chrome/classic.jar +0 -0
  106. data/samples/navi/chrome/classic.manifest +4 -0
  107. data/samples/navi/chrome/comm.jar +0 -0
  108. data/samples/navi/chrome/comm.manifest +2 -0
  109. data/samples/navi/chrome/en-US.jar +0 -0
  110. data/samples/navi/chrome/en-US.manifest +9 -0
  111. data/samples/navi/chrome/toolkit.jar +0 -0
  112. data/samples/navi/chrome/toolkit.manifest +6 -0
  113. data/samples/navi/components/FeedProcessor.js +1825 -0
  114. data/samples/navi/components/alerts.xpt +0 -0
  115. data/samples/navi/components/appshell.xpt +0 -0
  116. data/samples/navi/components/appstartup.xpt +0 -0
  117. data/samples/navi/components/auth.dll +0 -0
  118. data/samples/navi/components/autocomplete.xpt +0 -0
  119. data/samples/navi/components/autoconfig.dll +0 -0
  120. data/samples/navi/components/autoconfig.xpt +0 -0
  121. data/samples/navi/components/caps.xpt +0 -0
  122. data/samples/navi/components/chardet.xpt +0 -0
  123. data/samples/navi/components/chrome.xpt +0 -0
  124. data/samples/navi/components/commandhandler.xpt +0 -0
  125. data/samples/navi/components/commandlines.xpt +0 -0
  126. data/samples/navi/components/composer.xpt +0 -0
  127. data/samples/navi/components/compreg.dat +1474 -0
  128. data/samples/navi/components/content_base.xpt +0 -0
  129. data/samples/navi/components/content_html.xpt +0 -0
  130. data/samples/navi/components/content_htmldoc.xpt +0 -0
  131. data/samples/navi/components/content_xmldoc.xpt +0 -0
  132. data/samples/navi/components/content_xslt.xpt +0 -0
  133. data/samples/navi/components/content_xtf.xpt +0 -0
  134. data/samples/navi/components/directory.xpt +0 -0
  135. data/samples/navi/components/docshell_base.xpt +0 -0
  136. data/samples/navi/components/dom.xpt +0 -0
  137. data/samples/navi/components/dom_base.xpt +0 -0
  138. data/samples/navi/components/dom_canvas.xpt +0 -0
  139. data/samples/navi/components/dom_core.xpt +0 -0
  140. data/samples/navi/components/dom_css.xpt +0 -0
  141. data/samples/navi/components/dom_events.xpt +0 -0
  142. data/samples/navi/components/dom_html.xpt +0 -0
  143. data/samples/navi/components/dom_loadsave.xpt +0 -0
  144. data/samples/navi/components/dom_range.xpt +0 -0
  145. data/samples/navi/components/dom_sidebar.xpt +0 -0
  146. data/samples/navi/components/dom_storage.xpt +0 -0
  147. data/samples/navi/components/dom_stylesheets.xpt +0 -0
  148. data/samples/navi/components/dom_svg.xpt +0 -0
  149. data/samples/navi/components/dom_traversal.xpt +0 -0
  150. data/samples/navi/components/dom_views.xpt +0 -0
  151. data/samples/navi/components/dom_xbl.xpt +0 -0
  152. data/samples/navi/components/dom_xpath.xpt +0 -0
  153. data/samples/navi/components/dom_xul.xpt +0 -0
  154. data/samples/navi/components/downloads.xpt +0 -0
  155. data/samples/navi/components/editor.xpt +0 -0
  156. data/samples/navi/components/embed_base.xpt +0 -0
  157. data/samples/navi/components/extensions.xpt +0 -0
  158. data/samples/navi/components/exthandler.xpt +0 -0
  159. data/samples/navi/components/fastfind.xpt +0 -0
  160. data/samples/navi/components/feeds.xpt +0 -0
  161. data/samples/navi/components/find.xpt +0 -0
  162. data/samples/navi/components/gfx.xpt +0 -0
  163. data/samples/navi/components/gksvgrenderer.xpt +0 -0
  164. data/samples/navi/components/history.xpt +0 -0
  165. data/samples/navi/components/htmlparser.xpt +0 -0
  166. data/samples/navi/components/imglib2.xpt +0 -0
  167. data/samples/navi/components/inspector.xpt +0 -0
  168. data/samples/navi/components/intl.xpt +0 -0
  169. data/samples/navi/components/intlcmpt.xpt +0 -0
  170. data/samples/navi/components/jar.xpt +0 -0
  171. data/samples/navi/components/jsconsole-clhandler.js +170 -0
  172. data/samples/navi/components/jsconsole.xpt +0 -0
  173. data/samples/navi/components/jsdservice.xpt +0 -0
  174. data/samples/navi/components/layout_base.xpt +0 -0
  175. data/samples/navi/components/layout_printing.xpt +0 -0
  176. data/samples/navi/components/layout_xul.xpt +0 -0
  177. data/samples/navi/components/layout_xul_tree.xpt +0 -0
  178. data/samples/navi/components/locale.xpt +0 -0
  179. data/samples/navi/components/lwbrk.xpt +0 -0
  180. data/samples/navi/components/mimetype.xpt +0 -0
  181. data/samples/navi/components/mozbrwsr.xpt +0 -0
  182. data/samples/navi/components/mozfind.xpt +0 -0
  183. data/samples/navi/components/necko.xpt +0 -0
  184. data/samples/navi/components/necko_about.xpt +0 -0
  185. data/samples/navi/components/necko_cache.xpt +0 -0
  186. data/samples/navi/components/necko_cookie.xpt +0 -0
  187. data/samples/navi/components/necko_data.xpt +0 -0
  188. data/samples/navi/components/necko_dns.xpt +0 -0
  189. data/samples/navi/components/necko_file.xpt +0 -0
  190. data/samples/navi/components/necko_ftp.xpt +0 -0
  191. data/samples/navi/components/necko_http.xpt +0 -0
  192. data/samples/navi/components/necko_res.xpt +0 -0
  193. data/samples/navi/components/necko_socket.xpt +0 -0
  194. data/samples/navi/components/necko_strconv.xpt +0 -0
  195. data/samples/navi/components/necko_viewsource.xpt +0 -0
  196. data/samples/navi/components/nsCloseAllWindows.js +143 -0
  197. data/samples/navi/components/nsDefaultCLH.js +231 -0
  198. data/samples/navi/components/nsDictionary.js +148 -0
  199. data/samples/navi/components/nsExtensionManager.js +8497 -0
  200. data/samples/navi/components/nsHelperAppDlg.js +990 -0
  201. data/samples/navi/components/nsInterfaceInfoToIDL.js +590 -0
  202. data/samples/navi/components/nsKillAll.js +200 -0
  203. data/samples/navi/components/nsPostUpdateWin.js +711 -0
  204. data/samples/navi/components/nsProgressDialog.js +949 -0
  205. data/samples/navi/components/nsProxyAutoConfig.js +396 -0
  206. data/samples/navi/components/nsResetPref.js +175 -0
  207. data/samples/navi/components/nsURLFormatter.js +179 -0
  208. data/samples/navi/components/nsUpdateService.js +3074 -0
  209. data/samples/navi/components/nsXULAppInstall.js +301 -0
  210. data/samples/navi/components/nsXmlRpcClient.js +1038 -0
  211. data/samples/navi/components/oji.xpt +0 -0
  212. data/samples/navi/components/passwordmgr.xpt +0 -0
  213. data/samples/navi/components/pipboot.xpt +0 -0
  214. data/samples/navi/components/pipnss.xpt +0 -0
  215. data/samples/navi/components/plugin.xpt +0 -0
  216. data/samples/navi/components/pref.xpt +0 -0
  217. data/samples/navi/components/prefetch.xpt +0 -0
  218. data/samples/navi/components/profile.xpt +0 -0
  219. data/samples/navi/components/progressDlg.xpt +0 -0
  220. data/samples/navi/components/proxyObject.xpt +0 -0
  221. data/samples/navi/components/rdf.xpt +0 -0
  222. data/samples/navi/components/satchel.xpt +0 -0
  223. data/samples/navi/components/saxparser.xpt +0 -0
  224. data/samples/navi/components/shistory.xpt +0 -0
  225. data/samples/navi/components/storage.xpt +0 -0
  226. data/samples/navi/components/toolkitprofile.xpt +0 -0
  227. data/samples/navi/components/transformiix.dll +0 -0
  228. data/samples/navi/components/txmgr.xpt +0 -0
  229. data/samples/navi/components/txtsvc.xpt +0 -0
  230. data/samples/navi/components/uconv.xpt +0 -0
  231. data/samples/navi/components/unicharutil.xpt +0 -0
  232. data/samples/navi/components/universalchardet.dll +0 -0
  233. data/samples/navi/components/update.xpt +0 -0
  234. data/samples/navi/components/uriloader.xpt +0 -0
  235. data/samples/navi/components/urlformatter.xpt +0 -0
  236. data/samples/navi/components/webBrowser_core.xpt +0 -0
  237. data/samples/navi/components/webbrowserpersist.xpt +0 -0
  238. data/samples/navi/components/webshell_idls.xpt +0 -0
  239. data/samples/navi/components/websrvcs.dll +0 -0
  240. data/samples/navi/components/websrvcs.xpt +0 -0
  241. data/samples/navi/components/widget.xpt +0 -0
  242. data/samples/navi/components/windowds.xpt +0 -0
  243. data/samples/navi/components/windowwatcher.xpt +0 -0
  244. data/samples/navi/components/xml-rpc.xpt +0 -0
  245. data/samples/navi/components/xmlextras.dll +0 -0
  246. data/samples/navi/components/xpcom_base.xpt +0 -0
  247. data/samples/navi/components/xpcom_components.xpt +0 -0
  248. data/samples/navi/components/xpcom_ds.xpt +0 -0
  249. data/samples/navi/components/xpcom_io.xpt +0 -0
  250. data/samples/navi/components/xpcom_obsolete.xpt +0 -0
  251. data/samples/navi/components/xpcom_thread.xpt +0 -0
  252. data/samples/navi/components/xpcom_xpti.xpt +0 -0
  253. data/samples/navi/components/xpconnect.xpt +0 -0
  254. data/samples/navi/components/xpinstall.xpt +0 -0
  255. data/samples/navi/components/xpti.dat +1424 -0
  256. data/samples/navi/components/xulapp.xpt +0 -0
  257. data/samples/navi/components/xulapp_setup.xpt +0 -0
  258. data/samples/navi/components/xuldoc.xpt +0 -0
  259. data/samples/navi/components/xulrunner.xpt +0 -0
  260. data/samples/navi/components/xultmpl.xpt +0 -0
  261. data/samples/navi/components/xulutil.dll +0 -0
  262. data/samples/navi/controlsNaviMask.png +0 -0
  263. data/samples/navi/greprefs/all.js +1344 -0
  264. data/samples/navi/greprefs/security-prefs.js +69 -0
  265. data/samples/navi/greprefs/xpinstall.js +2 -0
  266. data/samples/navi/navi_demo.rb +207 -0
  267. data/samples/navi/plugins/NPSWF32.dll +0 -0
  268. data/samples/navi/plugins/flashplayer.xpt +0 -0
  269. data/samples/navi/plugins/npnul32.dll +0 -0
  270. data/samples/navi/plugins.cfg +10 -0
  271. data/samples/navi/res/EditorOverride.css +359 -0
  272. data/samples/navi/res/Thumbs.db +0 -0
  273. data/samples/navi/res/arrow.gif +0 -0
  274. data/samples/navi/res/arrowd.gif +0 -0
  275. data/samples/navi/res/bloatcycle.html +40 -0
  276. data/samples/navi/res/broken-image.gif +0 -0
  277. data/samples/navi/res/charsetData.properties +199 -0
  278. data/samples/navi/res/charsetalias.properties +517 -0
  279. data/samples/navi/res/cmessage.txt +1 -0
  280. data/samples/navi/res/dtd/xhtml11.dtd +300 -0
  281. data/samples/navi/res/entityTables/html40Latin1.properties +146 -0
  282. data/samples/navi/res/entityTables/html40Special.properties +69 -0
  283. data/samples/navi/res/entityTables/html40Symbols.properties +164 -0
  284. data/samples/navi/res/entityTables/htmlEntityVersions.properties +50 -0
  285. data/samples/navi/res/entityTables/transliterate.properties +2367 -0
  286. data/samples/navi/res/fonts/fontEncoding.properties +127 -0
  287. data/samples/navi/res/fonts/fontNameMap.properties +134 -0
  288. data/samples/navi/res/forms.css +531 -0
  289. data/samples/navi/res/grabber.gif +0 -0
  290. data/samples/navi/res/hiddenWindow.html +1 -0
  291. data/samples/navi/res/html/Thumbs.db +0 -0
  292. data/samples/navi/res/html/gopher-audio.gif +0 -0
  293. data/samples/navi/res/html/gopher-binary.gif +0 -0
  294. data/samples/navi/res/html/gopher-find.gif +0 -0
  295. data/samples/navi/res/html/gopher-image.gif +0 -0
  296. data/samples/navi/res/html/gopher-menu.gif +0 -0
  297. data/samples/navi/res/html/gopher-movie.gif +0 -0
  298. data/samples/navi/res/html/gopher-sound.gif +0 -0
  299. data/samples/navi/res/html/gopher-telnet.gif +0 -0
  300. data/samples/navi/res/html/gopher-text.gif +0 -0
  301. data/samples/navi/res/html/gopher-unknown.gif +0 -0
  302. data/samples/navi/res/html.css +478 -0
  303. data/samples/navi/res/langGroups.properties +236 -0
  304. data/samples/navi/res/language.properties +259 -0
  305. data/samples/navi/res/loading-image.gif +0 -0
  306. data/samples/navi/res/quirk.css +282 -0
  307. data/samples/navi/res/samples/Anieyes.gif +0 -0
  308. data/samples/navi/res/samples/Thumbs.db +0 -0
  309. data/samples/navi/res/samples/aform.css +69 -0
  310. data/samples/navi/res/samples/beeptest.html +18 -0
  311. data/samples/navi/res/samples/bform.css +45 -0
  312. data/samples/navi/res/samples/bg.jpg +0 -0
  313. data/samples/navi/res/samples/cform.css +40 -0
  314. data/samples/navi/res/samples/checkboxTest.xul +47 -0
  315. data/samples/navi/res/samples/demoform.css +97 -0
  316. data/samples/navi/res/samples/find.html +97 -0
  317. data/samples/navi/res/samples/gear1.gif +0 -0
  318. data/samples/navi/res/samples/image_props.html +58 -0
  319. data/samples/navi/res/samples/mozform.css +256 -0
  320. data/samples/navi/res/samples/printsetup.html +175 -0
  321. data/samples/navi/res/samples/raptor.jpg +0 -0
  322. data/samples/navi/res/samples/rock_gra.gif +0 -0
  323. data/samples/navi/res/samples/scrollbarTest1.xul +66 -0
  324. data/samples/navi/res/samples/scrollbarTest2.xul +19 -0
  325. data/samples/navi/res/samples/sliderTest1.xul +14 -0
  326. data/samples/navi/res/samples/soundtest.html +20 -0
  327. data/samples/navi/res/samples/test.wav +0 -0
  328. data/samples/navi/res/samples/test0.html +220 -0
  329. data/samples/navi/res/samples/test1.html +84 -0
  330. data/samples/navi/res/samples/test10.html +16 -0
  331. data/samples/navi/res/samples/test11.html +42 -0
  332. data/samples/navi/res/samples/test12.html +79 -0
  333. data/samples/navi/res/samples/test13.html +126 -0
  334. data/samples/navi/res/samples/test14.html +5 -0
  335. data/samples/navi/res/samples/test15.html +5 -0
  336. data/samples/navi/res/samples/test16.html +124 -0
  337. data/samples/navi/res/samples/test2.html +41 -0
  338. data/samples/navi/res/samples/test3.html +126 -0
  339. data/samples/navi/res/samples/test4.html +335 -0
  340. data/samples/navi/res/samples/test5.html +199 -0
  341. data/samples/navi/res/samples/test6.html +335 -0
  342. data/samples/navi/res/samples/test7.html +11 -0
  343. data/samples/navi/res/samples/test8-1.html +66 -0
  344. data/samples/navi/res/samples/test8.html +662 -0
  345. data/samples/navi/res/samples/test8dom.html +64 -0
  346. data/samples/navi/res/samples/test8sca.html +308 -0
  347. data/samples/navi/res/samples/test8siz.html +224 -0
  348. data/samples/navi/res/samples/test8tab.html +9 -0
  349. data/samples/navi/res/samples/test9.html +12 -0
  350. data/samples/navi/res/samples/test9a.html +39 -0
  351. data/samples/navi/res/samples/test9b.html +16 -0
  352. data/samples/navi/res/samples/test_ed.html +5 -0
  353. data/samples/navi/res/samples/test_form.html +34 -0
  354. data/samples/navi/res/samples/test_gfx.html +75 -0
  355. data/samples/navi/res/samples/test_lbox.html +100 -0
  356. data/samples/navi/res/samples/test_pr.html +87 -0
  357. data/samples/navi/res/samples/test_weight.html +45 -0
  358. data/samples/navi/res/samples/toolbarTest1.xul +51 -0
  359. data/samples/navi/res/samples/treeTest1.css +62 -0
  360. data/samples/navi/res/samples/treeTest1.xul +110 -0
  361. data/samples/navi/res/samples/xulTest.css +130 -0
  362. data/samples/navi/res/svg.css +64 -0
  363. data/samples/navi/res/table-add-column-after-active.gif +0 -0
  364. data/samples/navi/res/table-add-column-after-hover.gif +0 -0
  365. data/samples/navi/res/table-add-column-after.gif +0 -0
  366. data/samples/navi/res/table-add-column-before-active.gif +0 -0
  367. data/samples/navi/res/table-add-column-before-hover.gif +0 -0
  368. data/samples/navi/res/table-add-column-before.gif +0 -0
  369. data/samples/navi/res/table-add-row-after-active.gif +0 -0
  370. data/samples/navi/res/table-add-row-after-hover.gif +0 -0
  371. data/samples/navi/res/table-add-row-after.gif +0 -0
  372. data/samples/navi/res/table-add-row-before-active.gif +0 -0
  373. data/samples/navi/res/table-add-row-before-hover.gif +0 -0
  374. data/samples/navi/res/table-add-row-before.gif +0 -0
  375. data/samples/navi/res/table-remove-column-active.gif +0 -0
  376. data/samples/navi/res/table-remove-column-hover.gif +0 -0
  377. data/samples/navi/res/table-remove-column.gif +0 -0
  378. data/samples/navi/res/table-remove-row-active.gif +0 -0
  379. data/samples/navi/res/table-remove-row-hover.gif +0 -0
  380. data/samples/navi/res/table-remove-row.gif +0 -0
  381. data/samples/navi/res/throbber/Thumbs.db +0 -0
  382. data/samples/navi/res/throbber/anim.gif +0 -0
  383. data/samples/navi/res/throbber/anims00.gif +0 -0
  384. data/samples/navi/res/throbber/anims01.gif +0 -0
  385. data/samples/navi/res/throbber/anims02.gif +0 -0
  386. data/samples/navi/res/throbber/anims03.gif +0 -0
  387. data/samples/navi/res/throbber/anims04.gif +0 -0
  388. data/samples/navi/res/throbber/anims05.gif +0 -0
  389. data/samples/navi/res/throbber/anims06.gif +0 -0
  390. data/samples/navi/res/throbber/anims07.gif +0 -0
  391. data/samples/navi/res/throbber/anims08.gif +0 -0
  392. data/samples/navi/res/throbber/anims09.gif +0 -0
  393. data/samples/navi/res/throbber/anims10.gif +0 -0
  394. data/samples/navi/res/throbber/anims11.gif +0 -0
  395. data/samples/navi/res/throbber/anims12.gif +0 -0
  396. data/samples/navi/res/throbber/anims13.gif +0 -0
  397. data/samples/navi/res/throbber/anims14.gif +0 -0
  398. data/samples/navi/res/throbber/anims15.gif +0 -0
  399. data/samples/navi/res/throbber/anims16.gif +0 -0
  400. data/samples/navi/res/throbber/anims17.gif +0 -0
  401. data/samples/navi/res/throbber/anims18.gif +0 -0
  402. data/samples/navi/res/throbber/anims19.gif +0 -0
  403. data/samples/navi/res/throbber/anims20.gif +0 -0
  404. data/samples/navi/res/throbber/anims21.gif +0 -0
  405. data/samples/navi/res/throbber/anims22.gif +0 -0
  406. data/samples/navi/res/throbber/anims23.gif +0 -0
  407. data/samples/navi/res/throbber/anims24.gif +0 -0
  408. data/samples/navi/res/throbber/anims25.gif +0 -0
  409. data/samples/navi/res/throbber/anims26.gif +0 -0
  410. data/samples/navi/res/throbber/anims27.gif +0 -0
  411. data/samples/navi/res/throbber/anims28.gif +0 -0
  412. data/samples/navi/res/throbber/anims29.gif +0 -0
  413. data/samples/navi/res/ua.css +235 -0
  414. data/samples/navi/res/viewer.properties +1 -0
  415. data/samples/navi/res/viewsource.css +118 -0
  416. data/samples/navi/res/wincharset.properties +55 -0
  417. data/samples/navi/resources.cfg +14 -0
  418. data/samples/navi/testNaviMask.png +0 -0
  419. data/samples/ogre.cfg +8 -0
  420. data/samples/plugins.cfg +11 -0
  421. data/samples/quake3settings.cfg +2 -0
  422. data/samples/render_run_log.5796 +891 -0
  423. data/samples/render_to_texture.rb +161 -0
  424. data/samples/resources.cfg +16 -0
  425. data/samples/sky_box.rb +107 -0
  426. data/samples/sky_dome.rb +86 -0
  427. data/samples/sky_plane.rb +27 -0
  428. data/samples/smoke.rb +23 -0
  429. data/samples/work/cube_mapping.rb +686 -0
  430. metadata +500 -0
@@ -0,0 +1,146 @@
1
+ $:.push('..')
2
+
3
+ require 'ogre'
4
+ require 'application_frame_listener'
5
+
6
+ module Ogre
7
+
8
+ # Application is a Ruby port of ExampleApplication. It is written so that there's nothing new
9
+ # to learn here, but you do have to watch out for Ruby version of names
10
+ # (createScene vs create_scene).
11
+ #
12
+ # All you need to do is define your own createScene. An example Application subclass (sky_plane.rb):
13
+ #
14
+ # require 'ogre'
15
+ # include Ogre
16
+ #
17
+ # class SkyPlaneApplication < Application
18
+ #
19
+ # def create_scene
20
+ # scene_manager.set_ambient_light(ColourValue.new(0.5, 0.5, 0.5))
21
+ #
22
+ # plane = Plane.new
23
+ # plane.d = 5000
24
+ # plane.normal = -Vector3.UNIT_Y
25
+ # scene_manager.set_sky_plane(true, plane, "SpaceSkyPlane", 10000, 3)
26
+ #
27
+ # light = scene_manager.create_light("MainLight")
28
+ # light.set_position(20, 80, 50)
29
+ #
30
+ # dragon = scene_manager.create_entity("dragon", "dragon.mesh")
31
+ # scene_manager.root_scene_node.attach_object(dragon)
32
+ # end
33
+ # end
34
+ #
35
+ # app = SkyPlaneApplication.new
36
+ # app.go
37
+ #
38
+ # Any of the protected methods in this class are free for overriding.
39
+ class Application
40
+
41
+ attr_accessor :root, :frame_listener, :window, :scene_manager, :camera
42
+
43
+ def initialize
44
+ @frame_listener = nil
45
+ @root = nil
46
+ end
47
+
48
+ # This starts off everything.
49
+ def go
50
+ return unless setup
51
+
52
+ @root.start_rendering
53
+
54
+ destroy_scene
55
+
56
+ @frame_listener.shutdown
57
+ end
58
+
59
+ protected
60
+
61
+ def setup
62
+ @root = Root.new("plugins.cfg", "ogre.cfg", "Ogre.log")
63
+
64
+ setup_resources
65
+
66
+ return unless configure
67
+
68
+ choose_scene_manager
69
+ create_camera
70
+ create_viewports
71
+
72
+ TextureManager.instance.set_default_num_mipmaps 5
73
+
74
+ create_resource_listener
75
+ load_resources
76
+ create_scene
77
+ create_frame_listener
78
+ true
79
+ end
80
+
81
+ # Shows the configuration dialog and initializes our
82
+ # render window
83
+ def configure
84
+ return false unless @root.show_config_dialog
85
+ @window = @root.initialise(true)
86
+ true
87
+ end
88
+
89
+ def choose_scene_manager
90
+ @scene_manager = @root.create_scene_manager(ST_GENERIC, "ExampleSMInstance")
91
+ end
92
+
93
+ def create_camera
94
+ @camera = @scene_manager.create_camera("PlayerCam")
95
+
96
+ @camera.set_position(0, 0, 500)
97
+ # Look along the -Z axis
98
+ @camera.look_at(Vector3.new(0, 0, -300))
99
+ @camera.set_near_clip_distance 5
100
+ end
101
+
102
+ def create_frame_listener
103
+ @frame_listener = ApplicationFrameListener.new(@root, @window, @camera)
104
+ @frame_listener.show_debug_overlay(true)
105
+ end
106
+
107
+ def create_scene
108
+ raise "Please redefine #create_scene in your application"
109
+ end
110
+
111
+ def destroy_scene
112
+ end
113
+
114
+ def create_viewports
115
+ vp = @window.add_viewport(@camera)
116
+ vp.set_background_colour ColourValue.new(0,0,0)
117
+
118
+ @camera.set_aspect_ratio( (vp.get_actual_width * 1.0) / (vp.get_actual_height * 1.0) )
119
+ end
120
+
121
+ def setup_resources
122
+ section = "General"
123
+ File.open("resources.cfg", "r") do |config_file|
124
+ config_file.each do |line|
125
+ line.chomp!
126
+ next if line =~ /^#/ || line.empty?
127
+ if line =~ /^\[(.+?)\]/
128
+ section = $1
129
+ next
130
+ end
131
+
132
+ key, value = line.split("=")
133
+ ResourceGroupManager.instance.add_resource_location(value, key, section)
134
+ end
135
+ end
136
+ end
137
+
138
+ def create_resource_listener
139
+ end
140
+
141
+ def load_resources
142
+ ResourceGroupManager.instance.initialise_all_resource_groups
143
+ end
144
+
145
+ end
146
+ end
@@ -0,0 +1,302 @@
1
+ module Ogre
2
+ # Define a listener for certain window events, such as resizing, closing,
3
+ # and changes of focus
4
+ #
5
+ # Currently not used
6
+ #
7
+ class ApplicationWindowListener < WindowEventListenerProxy #:nodoc:
8
+ def initialize(input_manager, window, keyboard, mouse, joy_stick)
9
+ super(window)
10
+ @input_manager = input_manager
11
+ @keyboard = keyboard
12
+ @mouse = mouse
13
+ @window = window
14
+ @joy_stick = joy_stick
15
+ end
16
+
17
+ # Adjust the mouse clipping area when the window has been resized
18
+ def windowResized(window)
19
+ width = height = depth = left = top = 0
20
+ window.getMetrics(width, height, depth, left, top)
21
+
22
+ mouse_state = @mouse.getMouseState
23
+ mouse_state.width = width
24
+ mouse_state.height = height
25
+ end
26
+
27
+ # Shut everything down nicely when we're done
28
+ def windowClosed(window)
29
+ if @window == window
30
+ if @input_manager
31
+ @input_manager.destroy_input_object(@mouse)
32
+ @input_manager.destroy_input_object(@keyboard)
33
+ @input_manager.destroy_input_object(@joy_stick)
34
+
35
+ OIS::InputManager.destroyInputSystem(@input_manager)
36
+ @input_manager = nil
37
+ end
38
+ end
39
+ end
40
+ end
41
+
42
+ # In the same way Application is the port of ExampleApplication, ApplicationFrameListener
43
+ # is the Ruby port of ExampleFrameListener. This class gives us a very helpful starting
44
+ # point for input management and a few Overlays for information. The default ApplicationFrameListener
45
+ # gives the WASD movement (through OIS), as well as the well-known Ogre overlay showing triangle count, FPS, etc.
46
+ #
47
+ # Usage is just as easy as can be expected:
48
+ #
49
+ # require 'application'
50
+ # include Ogre
51
+ #
52
+ # class AppListener < ApplicationFrameListener
53
+ #
54
+ # def frame_started(event)
55
+ # return false unless super(event)
56
+ #
57
+ # ... frame event / input handling ...
58
+ #
59
+ # true
60
+ # end
61
+ # end
62
+ #
63
+ # class MyApplication < Application
64
+ #
65
+ # def create_scene
66
+ # ...
67
+ # end
68
+ #
69
+ # def create_frame_listener
70
+ # frame_listener = AppListener.new(root, window, camera)
71
+ # end
72
+ # end
73
+ #
74
+ # app = MyApplication.new
75
+ # app.go
76
+ #
77
+ # Do take note of create_frame_listener in the example above. The FrameListener actually takes in
78
+ # the Root object, instead of the application calling root.addFrameListener. We do this because the process
79
+ # of using Ruby C++ subclasses in C++ functions doesn't really work, and may not even be possible.
80
+ # The fix for this is to build a Proxy class in C++ that is given the Root on construction. It then
81
+ # registers itself with the passed in Root. See OgreProxys for this definition
82
+ #
83
+ class ApplicationFrameListener < FrameListenerProxy
84
+
85
+ attr_accessor :keyboard, :mouse, :joy_stick, :input_manager, :camera, :window
86
+
87
+ def initialize(root, render_window, camera, buffered_keys = false,
88
+ buffered_mouse = false, buffered_joy = false)
89
+ super(root)
90
+ @camera = camera
91
+ @window = render_window
92
+ @move_speed = 100
93
+ @rotate_speed = 36
94
+ @move_scale = 0.0
95
+ @rot_scale = 0.0
96
+ @translate_vector = Vector3.ZERO
97
+ @rot_x = Degree.new(0)
98
+ @rot_y = Degree.new(0)
99
+ @debug_text = ""
100
+
101
+ @debug_overlay = OverlayManager.instance.get_by_name("Core/DebugOverlay")
102
+
103
+ LogManager.instance.log_message("*** Initializing OIS ***")
104
+
105
+ windowHnd = @window.get_custom_attribute_unsigned_long("WINDOW")
106
+
107
+ @input_manager = OIS::InputManager.create_input_system({"WINDOW" => "#{windowHnd}"})
108
+ @keyboard = @input_manager.create_input_object( OIS::OISKeyboard, buffered_keys)
109
+ @mouse = @input_manager.create_input_object( OIS::OISMouse, buffered_mouse)
110
+
111
+ # Most likely won't have a joystick here, so just throw away any exceptions
112
+ @joy_stick = nil
113
+ begin
114
+ @joy_stick = @input_manager.create_input_object( OIS::OISJoyStick, buffered_joy)
115
+ rescue
116
+ end
117
+
118
+ show_debug_overlay(true)
119
+
120
+ # Currently doesn't work, it's the Ruby subclass back into C++ problem
121
+ #puts "Setting window listener"
122
+ #@window_event_listener = ApplicationWindowListener.new(@input_manager, @window,
123
+ #@keyboard, @mouse,
124
+ #@joy_stick)
125
+
126
+ # Done in proxy constructor
127
+ # WindowEventUtilities.addWindowEventListener(@window, @window_event_listener)
128
+ end
129
+
130
+ # Ruby doesn't have destructors, just manually call shutdown to clean this up
131
+ def shutdown
132
+ #WindowEventUtilities::removeWindowEventListener(@window, @window_event_listener)
133
+ #@window_event_listener.windowClosed(@window)
134
+
135
+ # Clean up our input objects
136
+ @input_manager.destroy_input_object(@mouse)
137
+ @input_manager.destroy_input_object(@keyboard)
138
+ @input_manager.destroy_input_object(@joy_stick)
139
+
140
+ OIS::InputManager.destroy_input_system(@input_manager)
141
+ @input_manager = nil
142
+ end
143
+
144
+ # Keyboard processing
145
+ def process_unbuffered_key_input(event)
146
+ # Start with basic movement, add overlay stuff later
147
+
148
+ # Left
149
+ if @keyboard.key_down?(OIS::KC_A)
150
+ @translate_vector.x = -@move_scale
151
+ end
152
+
153
+ # Right
154
+ if @keyboard.key_down?(OIS::KC_D)
155
+ @translate_vector.x = @move_scale
156
+ end
157
+
158
+ # Forward
159
+ if @keyboard.key_down?(OIS::KC_UP) || @keyboard.key_down?(OIS::KC_W)
160
+ @translate_vector.z = -@move_scale
161
+ end
162
+
163
+ # Back
164
+ if @keyboard.key_down?(OIS::KC_DOWN) || @keyboard.key_down?(OIS::KC_S)
165
+ @translate_vector.z = @move_scale
166
+ end
167
+
168
+ # Up
169
+ if @keyboard.key_down?(OIS::KC_PGUP)
170
+ @translate_vector.y = @move_scale
171
+ end
172
+
173
+ # Down
174
+ if @keyboard.key_down?(OIS::KC_PGDOWN)
175
+ @translate_vector.y = -@move_scale
176
+ end
177
+
178
+ # Turn Right
179
+ if @keyboard.key_down?(OIS::KC_RIGHT)
180
+ @camera.yaw(-@rot_scale)
181
+ end
182
+
183
+ # Turn Left
184
+ if @keyboard.key_down?(OIS::KC_LEFT)
185
+ @camera.yaw(@rot_scale)
186
+ end
187
+
188
+ # Quit
189
+ if @keyboard.key_down?(OIS::KC_ESCAPE) || @keyboard.key_down?(OIS::KC_Q)
190
+ return false;
191
+ end
192
+
193
+ # Keep rendering
194
+ true
195
+ end
196
+
197
+ def process_unbuffered_mouse_input(event)
198
+ state = @mouse.mouse_state
199
+
200
+ if state.button_down?(OIS::MB_Right)
201
+ @translate_vector.x += state.X.rel * 0.13
202
+ @translate_vector.y -= state.Y.rel * 0.13
203
+ else
204
+ @rot_x = Degree.new(-state.X.rel * 0.13)
205
+ @rot_y = Degree.new(-state.Y.rel * 0.13)
206
+ end
207
+
208
+ true
209
+ end
210
+
211
+ # Process the movement we've calculated this frame
212
+ def move_camera
213
+ @camera.yaw(@rot_x)
214
+ @camera.pitch(@rot_y)
215
+ @camera.move_relative(@translate_vector)
216
+ end
217
+
218
+ # Toggle debug overlay if one exists
219
+ def show_debug_overlay(show)
220
+ if @debug_overlay
221
+ if show
222
+ @debug_overlay.show
223
+ else
224
+ @debug_overlay.hide
225
+ end
226
+ end
227
+ end
228
+
229
+ # Ogre callback, called at the beginning of every frame
230
+ def frame_started(event)
231
+ return false if @window.closed?
232
+
233
+ # Need to capture input from each device
234
+ @keyboard.capture
235
+ @mouse.capture
236
+ @joy_stick.capture if @joy_stick
237
+
238
+ buffered_joy = @joy_stick.nil? ? true : @joy_stick.buffered
239
+
240
+ if !@mouse.buffered || !@keyboard.buffered || !buffered_joy
241
+ # If this is the first frame, pick a speed
242
+ if event.time_since_last_frame == 0
243
+ @move_scale = 1
244
+ @rot_scale = 0.1
245
+ else
246
+ # ~100 units / second
247
+ @move_scale = @move_speed * event.time_since_last_frame
248
+ # ~10 seconds for full rotation
249
+ @rot_scale = @rotate_speed * event.time_since_last_frame
250
+ end
251
+
252
+ @rot_x = Degree.new 0
253
+ @rot_y = Degree.new 0
254
+
255
+ @translate_vector = Vector3.ZERO
256
+ end
257
+
258
+ if !@keyboard.buffered
259
+ return false unless process_unbuffered_key_input(event)
260
+ end
261
+
262
+ if !@mouse.buffered
263
+ return false unless process_unbuffered_mouse_input(event)
264
+ end
265
+
266
+ if !@mouse.buffered || !@keyboard.buffered || !buffered_joy
267
+ move_camera
268
+ end
269
+
270
+ # Keep rendering!
271
+ true
272
+ end
273
+
274
+ def frame_ended(event)
275
+ update_stats
276
+ true
277
+ end
278
+
279
+ protected
280
+
281
+ def update_stats
282
+ gui_avg = OverlayManager.instance.get_overlay_element("Core/AverageFps")
283
+ gui_curr = OverlayManager.instance.get_overlay_element("Core/CurrFps")
284
+ gui_best = OverlayManager.instance.get_overlay_element("Core/BestFps")
285
+ gui_worst = OverlayManager.instance.get_overlay_element("Core/WorstFps")
286
+ gui_tris = OverlayManager.instance.get_overlay_element("Core/NumTris")
287
+ gui_batches = OverlayManager.instance.get_overlay_element("Core/NumBatches")
288
+ gui_debug = OverlayManager.instance.get_overlay_element("Core/DebugText")
289
+
290
+ stats = @window.get_statistics
291
+
292
+ gui_curr.set_caption("Current FPS: #{"%.3f" % stats.last_fps}")
293
+ gui_avg.set_caption("Average FPS: #{"%.3f" % stats.avg_fps}")
294
+ gui_best.set_caption("Best FPS: #{"%.3f" % stats.best_fps}")
295
+ gui_worst.set_caption("Worst FPS: #{"%.3f" % stats.worst_fps}")
296
+ gui_tris.set_caption("Triangle Count: #{stats.triangle_count}")
297
+ gui_batches.set_caption("Batch Count: #{stats.batch_count}")
298
+
299
+ gui_debug.set_caption("#{@debug_text}")
300
+ end
301
+ end
302
+ end
@@ -0,0 +1,115 @@
1
+ module Ogre
2
+
3
+ # From Ogre's ExampleLoadingBar:
4
+ #
5
+ # Defines an example loading progress bar which you can use during
6
+ # startup, level changes etc to display loading progress.
7
+ #
8
+ # Basically you just need to create an instance of this class, call start()
9
+ # before loading and finish() afterwards. You may also need to stop areas of
10
+ # your scene rendering in between since this method will call
11
+ # RenderWindow::update() to update the display of the bar - we advise using
12
+ # SceneManager's 'special case render queues' for this, see
13
+ # SceneManager::addSpecialCaseRenderQueue for details.
14
+ #
15
+ # This progress bar relies on you having the OgreCore.zip package already
16
+ # added to a resource group called 'Bootstrap' - this provides the basic
17
+ # resources required for the progress bar and will be loaded automatically.
18
+ class ApplicationLoadingBar < ResourceGroupListenerProxy
19
+
20
+ def start(window, num_groups_init = 1, num_groups_load = 1, initial_proportion = 0.7)
21
+ @window = window
22
+ @num_groups_init = num_groups_init
23
+ @num_groups_load = num_groups_load
24
+ @initial_proportion = initial_proportion
25
+
26
+ ResourceGroupManager.instance.initialise_resource_group("Bootstrap")
27
+
28
+ overlay_mgr = OverlayManager.instance
29
+ @load_overlay = overlay_mgr.get_by_name("Core/LoadOverlay")
30
+
31
+ unless @load_overlay
32
+ raise "Cannot find loading overlay"
33
+ end
34
+
35
+ @load_overlay.show
36
+
37
+ # Save links the loading text elements
38
+ @loading_bar_element = overlay_mgr.get_overlay_element("Core/LoadPanel/Bar/Progress")
39
+ @loading_comment_element = overlay_mgr.get_overlay_element("Core/LoadPanel/Comment")
40
+ @loading_description_element = overlay_mgr.get_overlay_element("Core/LoadPanel/Description")
41
+
42
+ bar = overlay_mgr.get_overlay_element("Core/LoadPanel/Bar")
43
+ @progress_bar_max_size = bar.get_width
44
+ @loading_bar_element.set_width(0)
45
+
46
+ # See superclass
47
+ register_as_listener
48
+ end
49
+
50
+ def finish
51
+ @load_overlay.hide
52
+
53
+ # See superclass
54
+ unregister_as_listener
55
+ end
56
+
57
+ def resource_group_scripting_started(group_name, count)
58
+ unless @num_groups_init > 0
59
+ raise "You are initializing groups when you said you would not, failing before causing x / 0 error"
60
+ end
61
+
62
+ @progress_bar_inc = @progress_bar_max_size * @initial_proportion / (count * 1.0)
63
+ @progress_bar_inc /= @num_groups_init
64
+
65
+ @loading_description_element.set_caption("Parsing scripts...")
66
+ @window.update
67
+ end
68
+
69
+ def script_parse_started(script_name)
70
+ @loading_comment_element.set_caption(script_name)
71
+ @window.update
72
+ end
73
+
74
+ def script_parse_ended(script_name)
75
+ @loading_bar_element.set_width(@loading_bar_element.get_width + @progress_bar_inc)
76
+ @window.update
77
+ end
78
+
79
+ def resource_group_scripting_ended(group_name)
80
+ end
81
+
82
+ def resource_group_load_started(group_name, count)
83
+ puts "", "", "Resource group started #{group_name}", "", ""
84
+ unless @num_groups_load > 0
85
+ raise "You are initializing groups when you said you would not, failing before causing x / 0 error"
86
+ end
87
+
88
+ @progress_bar_inc = @progress_bar_max_size * (1 - @initial_proportion) / (count * 1.0)
89
+ @progress_bar_inc /= @num_groups_load
90
+ @loading_description_element.set_caption("Loading resources...")
91
+ @window.update
92
+ end
93
+
94
+ def resource_load_started(resource)
95
+ @loading_comment_element.set_caption(resource.get_name)
96
+ @window.update
97
+ end
98
+
99
+ def resource_load_ended()
100
+ end
101
+
102
+ def world_geometry_stage_started(description)
103
+ @loading_comment_element.set_caption(description)
104
+ @window.update
105
+ end
106
+
107
+ def world_geometry_stage_ended
108
+ @loading_bar_element.set_width(@loading_bar_element.get_width + @progress_bar_inc)
109
+ @window.update
110
+ end
111
+
112
+ def resource_group_load_ended(name)
113
+ end
114
+ end
115
+ end
data/lib/constants.rb ADDED
@@ -0,0 +1,51 @@
1
+ module Ogre
2
+ class Vector3
3
+ def self.ZERO
4
+ Vector3.new(0, 0, 0)
5
+ end
6
+
7
+ def self.UNIT_X
8
+ Vector3.new(1, 0, 0)
9
+ end
10
+
11
+ def self.UNIT_Y
12
+ Vector3.new(0, 1, 0)
13
+ end
14
+
15
+ def self.UNIT_Z
16
+ Vector3.new(0, 0, 1)
17
+ end
18
+
19
+ def self.NEGATIVE_UNIT_X
20
+ Vector3.new(-1, 0, 0)
21
+ end
22
+
23
+ def self.NEGATIVE_UNIT_Y
24
+ Vector3.new(0, -1, 0)
25
+ end
26
+
27
+ def self.NEGATIVE_UNIT_Z
28
+ Vector3.new(0, 0, -1)
29
+ end
30
+
31
+ def self.UNIT_SCALE
32
+ Vector3.new(1, 1, 1)
33
+ end
34
+ end
35
+
36
+ class Vector4
37
+ def self.ZERO
38
+ Vector4.new(0,0,0,0)
39
+ end
40
+ end
41
+
42
+ class Quaternion
43
+ def self.ZERO
44
+ Quaternion.new(0.0,0.0,0.0,0.0)
45
+ end
46
+
47
+ def self.IDENTITY
48
+ Quaternion.new(1.0,0.0,0.0,0.0)
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,42 @@
1
+ module Ogre
2
+
3
+ class SubMesh
4
+ alias_method :use_shared_vertices?, :useSharedVertices
5
+ alias_method :use_shared_vertices=, :useSharedVertices=
6
+
7
+ alias_method :vertex_data, :vertexData
8
+ alias_method :vertex_data=, :vertexData=
9
+
10
+ alias_method :index_data, :indexData
11
+ alias_method :index_data=, :indexData=
12
+
13
+ # SubMesh is a friend of Mesh, not a subclass...
14
+ #alias_method :shared_vertex_data, :sharedVertexData
15
+ #alias_method :shared_vertex_data=, :sharedVertexData=
16
+ end
17
+
18
+ class VertexData
19
+ alias_method :vertex_declaration, :vertexDeclaration
20
+ alias_method :vertex_declaration=, :vertexDeclaration=
21
+
22
+ alias_method :vertex_buffer_binding, :vertexBufferBinding
23
+ alias_method :vertex_buffer_binding=, :vertexBufferBinding=
24
+
25
+ alias_method :vertex_start, :vertexStart
26
+ alias_method :vertex_start=, :vertexStart=
27
+
28
+ alias_method :vertex_count, :vertexCount
29
+ alias_method :vertex_count=, :vertexCount=
30
+ end
31
+
32
+ class IndexData
33
+ alias_method :index_buffer, :indexBuffer
34
+ alias_method :index_buffer=, :indexBuffer=
35
+
36
+ alias_method :index_start, :indexStart
37
+ alias_method :index_start=, :indexStart=
38
+
39
+ alias_method :index_count, :indexCount
40
+ alias_method :index_count=, :indexCount=
41
+ end
42
+ end
data/lib/ogre.so ADDED
Binary file
data/lib/ruby_ois.so ADDED
Binary file
data/ogre.rb ADDED
@@ -0,0 +1,25 @@
1
+ require File.dirname(__FILE__)+'/platform'
2
+
3
+ $LOAD_PATH << File.expand_path(File.dirname(__FILE__))
4
+ $LOAD_PATH << File.expand_path(File.dirname(__FILE__) + "/lib")
5
+
6
+ # Ruby always looks for .so first, instead of .dll if on windows.
7
+ # So, force .dll on windows environments
8
+ if Platform.windows?
9
+ require 'lib/ogre.dll'
10
+ require 'lib/ruby_ois.dll'
11
+ # require 'lib/navi.dll'
12
+
13
+ else
14
+ require 'lib/ogre'
15
+ require 'lib/ruby_ois'
16
+ end
17
+
18
+ # Ick, fix this? Doing this because the native OIS binary is infact
19
+ # named OIS.dll, and was causing conflicts on my system.
20
+ module OIS
21
+ include Ruby_ois
22
+ end
23
+
24
+ require 'constants'
25
+ require 'method_fixes'
data/platform.rb ADDED
@@ -0,0 +1,23 @@
1
+ # Helper functions for determining platform
2
+
3
+ class Platform
4
+ def self.mac?
5
+ return PLATFORM =~ /darwin/
6
+ end
7
+
8
+ def self.windows?
9
+ return PLATFORM =~ /mswin/
10
+ end
11
+
12
+ def self.linux?
13
+ PLATFORM =~ /linux/
14
+ end
15
+ end
16
+
17
+ # Used to get around stupid windows STL issues when ruby.h is included first.
18
+ # NOTE: It would better to do this with SWIG, but I could not figure out how.
19
+ def insert_headers(file)
20
+ contents = File.open(file).read
21
+ header = yield+"\n"
22
+ File.open(file, "w").write(header+contents)
23
+ end