manual.html 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
  7. <title></title>
  8. <style type="text/css">
  9. /*
  10. :Author: David Goodger ([email protected])
  11. :Id: $Id: html4css1.css 5196 2007-06-03 20:25:28Z wiemann $
  12. :Copyright: This stylesheet has been placed in the public domain.
  13. Default cascading style sheet for the HTML output of Docutils.
  14. See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
  15. customize this style sheet.
  16. */
  17. /* used to remove borders from tables and images */
  18. .borderless, table.borderless td, table.borderless th {
  19. border: 0 }
  20. table.borderless td, table.borderless th {
  21. /* Override padding for "table.docutils td" with "! important".
  22. The right padding separates the table cells. */
  23. padding: 0 0.5em 0 0 ! important }
  24. .first {
  25. /* Override more specific margin styles with "! important". */
  26. margin-top: 0 ! important }
  27. .last, .with-subtitle {
  28. margin-bottom: 0 ! important }
  29. .hidden {
  30. display: none }
  31. a.toc-backref {
  32. text-decoration: none ;
  33. color: black }
  34. blockquote.epigraph {
  35. margin: 2em 5em ; }
  36. dl.docutils dd {
  37. margin-bottom: 0.5em }
  38. /* Uncomment (and remove this text!) to get bold-faced definition list terms
  39. dl.docutils dt {
  40. font-weight: bold }
  41. */
  42. div.abstract {
  43. margin: 2em 5em }
  44. div.abstract p.topic-title {
  45. font-weight: bold ;
  46. text-align: center }
  47. div.admonition, div.attention, div.caution, div.danger, div.error,
  48. div.hint, div.important, div.note, div.tip, div.warning {
  49. margin: 2em ;
  50. border: medium outset ;
  51. padding: 1em }
  52. div.admonition p.admonition-title, div.hint p.admonition-title,
  53. div.important p.admonition-title, div.note p.admonition-title,
  54. div.tip p.admonition-title {
  55. font-weight: bold ;
  56. font-family: sans-serif }
  57. div.attention p.admonition-title, div.caution p.admonition-title,
  58. div.danger p.admonition-title, div.error p.admonition-title,
  59. div.warning p.admonition-title {
  60. color: red ;
  61. font-weight: bold ;
  62. font-family: sans-serif }
  63. /* Uncomment (and remove this text!) to get reduced vertical space in
  64. compound paragraphs.
  65. div.compound .compound-first, div.compound .compound-middle {
  66. margin-bottom: 0.5em }
  67. div.compound .compound-last, div.compound .compound-middle {
  68. margin-top: 0.5em }
  69. */
  70. div.dedication {
  71. margin: 2em 5em ;
  72. text-align: center ;
  73. font-style: italic }
  74. div.dedication p.topic-title {
  75. font-weight: bold ;
  76. font-style: normal }
  77. div.figure {
  78. margin-left: 2em ;
  79. margin-right: 2em }
  80. div.footer, div.header {
  81. clear: both;
  82. font-size: smaller }
  83. div.line-block {
  84. display: block ;
  85. margin-top: 1em ;
  86. margin-bottom: 1em }
  87. div.line-block div.line-block {
  88. margin-top: 0 ;
  89. margin-bottom: 0 ;
  90. margin-left: 1.5em }
  91. div.sidebar {
  92. margin: 0 0 0.5em 1em ;
  93. border: medium outset ;
  94. padding: 1em ;
  95. background-color: #ffffee ;
  96. width: 40% ;
  97. float: right ;
  98. clear: right }
  99. div.sidebar p.rubric {
  100. font-family: sans-serif ;
  101. font-size: medium }
  102. div.system-messages {
  103. margin: 5em }
  104. div.system-messages h1 {
  105. color: red }
  106. div.system-message {
  107. border: medium outset ;
  108. padding: 1em }
  109. div.system-message p.system-message-title {
  110. color: red ;
  111. font-weight: bold }
  112. div.topic {
  113. margin: 2em }
  114. h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
  115. h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
  116. margin-top: 0.4em }
  117. h1.title {
  118. text-align: center }
  119. h2.subtitle {
  120. text-align: center }
  121. hr.docutils {
  122. width: 75% }
  123. img.align-left {
  124. clear: left }
  125. img.align-right {
  126. clear: right }
  127. ol.simple, ul.simple {
  128. margin-bottom: 1em }
  129. ol.arabic {
  130. list-style: decimal }
  131. ol.loweralpha {
  132. list-style: lower-alpha }
  133. ol.upperalpha {
  134. list-style: upper-alpha }
  135. ol.lowerroman {
  136. list-style: lower-roman }
  137. ol.upperroman {
  138. list-style: upper-roman }
  139. p.attribution {
  140. text-align: right ;
  141. margin-left: 50% }
  142. p.caption {
  143. font-style: italic }
  144. p.credits {
  145. font-style: italic ;
  146. font-size: smaller }
  147. p.label {
  148. white-space: nowrap }
  149. p.rubric {
  150. font-weight: bold ;
  151. font-size: larger ;
  152. color: maroon ;
  153. text-align: center }
  154. p.sidebar-title {
  155. font-family: sans-serif ;
  156. font-weight: bold ;
  157. font-size: larger }
  158. p.sidebar-subtitle {
  159. font-family: sans-serif ;
  160. font-weight: bold }
  161. p.topic-title {
  162. font-weight: bold }
  163. pre.address {
  164. margin-bottom: 0 ;
  165. margin-top: 0 ;
  166. font-family: serif ;
  167. font-size: 100% }
  168. pre.literal-block, pre.doctest-block {
  169. margin-left: 2em ;
  170. margin-right: 2em }
  171. span.classifier {
  172. font-family: sans-serif ;
  173. font-style: oblique }
  174. span.classifier-delimiter {
  175. font-family: sans-serif ;
  176. font-weight: bold }
  177. span.interpreted {
  178. font-family: sans-serif }
  179. span.option {
  180. white-space: nowrap }
  181. span.pre {
  182. white-space: pre }
  183. span.problematic {
  184. color: red }
  185. span.section-subtitle {
  186. /* font-size relative to parent (h1..h6 element) */
  187. font-size: 80% }
  188. table.citation {
  189. border-left: solid 1px gray;
  190. margin-left: 1px }
  191. table.docinfo {
  192. margin: 2em 4em }
  193. table.docutils {
  194. margin-top: 0.5em ;
  195. margin-bottom: 0.5em }
  196. table.footnote {
  197. border-left: solid 1px black;
  198. margin-left: 1px }
  199. table.docutils td, table.docutils th,
  200. table.docinfo td, table.docinfo th {
  201. padding-left: 0.5em ;
  202. padding-right: 0.5em ;
  203. vertical-align: top }
  204. table.docutils th.field-name, table.docinfo th.docinfo-name {
  205. font-weight: bold ;
  206. text-align: left ;
  207. white-space: nowrap ;
  208. padding-left: 0 }
  209. h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
  210. h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
  211. font-size: 100% }
  212. ul.auto-toc {
  213. list-style-type: none }
  214. </style>
  215. </head>
  216. <body>
  217. <div class="document">
  218. <p><strong>AnKi 3D Engine</strong></p>
  219. <p>Copyright (C) 2009, 2010 Panagiotis Christopoulos-Charitos</p>
  220. <p><a class="reference external" href="http://www.ancient-ritual.com">http://www.ancient-ritual.com</a></p>
  221. <p><a class="reference external" href="mailto:godlike&#64;ancient-ritual.com">godlike&#64;ancient-ritual.com</a></p>
  222. <div class="contents topic" id="table-of-contents">
  223. <p class="topic-title first">Table of Contents</p>
  224. <ul class="simple">
  225. <li><a class="reference internal" href="#license" id="id1">License</a></li>
  226. <li><a class="reference internal" href="#building" id="id2">Building</a><ul>
  227. <li><a class="reference internal" href="#required-libraries" id="id3">Required libraries</a><ul>
  228. <li><a class="reference internal" href="#bullet-physics" id="id4">Bullet Physics</a></li>
  229. <li><a class="reference internal" href="#sdl-ver-1-3" id="id5">SDL ver 1.3</a></li>
  230. <li><a class="reference internal" href="#sdl-image" id="id6">SDL_image</a></li>
  231. <li><a class="reference internal" href="#glew" id="id7">GLEW</a></li>
  232. <li><a class="reference internal" href="#boost" id="id8">boost</a></li>
  233. </ul>
  234. </li>
  235. <li><a class="reference internal" href="#building-anki-and-optionally-generating-makefiles" id="id9">Building AnKi and optionally generating makefiles</a></li>
  236. </ul>
  237. </li>
  238. <li><a class="reference internal" href="#assets" id="id10">Assets</a></li>
  239. <li><a class="reference internal" href="#system-requirements" id="id11">System requirements</a></li>
  240. <li><a class="reference internal" href="#generating-source-code-documentation-doxygen" id="id12">Generating source code documentation (doxygen)</a></li>
  241. <li><a class="reference internal" href="#coding-style" id="id13">Coding style</a><ul>
  242. <li><a class="reference internal" href="#types" id="id14">Types</a></li>
  243. <li><a class="reference internal" href="#functions-variables" id="id15">Functions &amp; variables</a></li>
  244. <li><a class="reference internal" href="#constants-macros-enumerators" id="id16">Constants, macros &amp; enumerators</a></li>
  245. <li><a class="reference internal" href="#parenthesis-braces-comas-operators" id="id17">Parenthesis, braces, comas &amp; operators</a></li>
  246. <li><a class="reference internal" href="#order-in-class-definitions" id="id18">Order in class definitions</a></li>
  247. <li><a class="reference internal" href="#material-shader-program-naming" id="id19">Material shader program naming</a></li>
  248. <li><a class="reference internal" href="#naming-shortcuts" id="id20">Naming shortcuts</a></li>
  249. <li><a class="reference internal" href="#controllers" id="id21">Controllers</a></li>
  250. <li><a class="reference internal" href="#submitting-patches" id="id22">Submitting patches</a></li>
  251. </ul>
  252. </li>
  253. <li><a class="reference internal" href="#todo-list" id="id23">ToDo list</a></li>
  254. </ul>
  255. </div>
  256. <div class="section" id="license">
  257. <h1><a class="toc-backref" href="#id1">License</a></h1>
  258. <p>Anki is dual licensed. The first option is GLPv3 and the second commercial
  259. license. If you want to use* AnKi to make opensource software (licensed under
  260. GLPv3) then AnKi is provited to you for free but if you want to use it* for
  261. non-GPLv3 licensed software then you have to apply for a commercial license.</p>
  262. <p>*: as a whole or parts of the source</p>
  263. </div>
  264. <div class="section" id="building">
  265. <h1><a class="toc-backref" href="#id2">Building</a></h1>
  266. <p>AnKi build system is very Linux specific (GNU make only) at the moment. It
  267. also requires a few extra development libraries.</p>
  268. <p>To download the latest release from the SVN repository type:</p>
  269. <p>$ svn checkout <a class="reference external" href="http://anki-3d-engine.googlecode.com/svn/trunk/">http://anki-3d-engine.googlecode.com/svn/trunk/</a> anki</p>
  270. <div class="section" id="required-libraries">
  271. <h2><a class="toc-backref" href="#id3">Required libraries</a></h2>
  272. <p>AnKi requires a few up to date versions of some libraries. The libraries are:</p>
  273. <ul class="simple">
  274. <li>Bullet Physics</li>
  275. <li>SDL ver 1.3</li>
  276. <li>SDL_image</li>
  277. <li>GLEW</li>
  278. <li>boost</li>
  279. </ul>
  280. <p>So before generating makefiles and building AnKi you have to download (from
  281. the revision control repositories) and build some of the above libraries.
  282. Instructions follow. You can alternately use the script
  283. <em>download-and-build-externals.sh</em></p>
  284. <div class="section" id="bullet-physics">
  285. <h3><a class="toc-backref" href="#id4">Bullet Physics</a></h3>
  286. <p>From now on the AnKi requires the Bullet physics library. You need CMake and
  287. SVN installed.</p>
  288. <ol class="arabic simple">
  289. <li>$ cd &lt;path to anki&gt;</li>
  290. <li>$ cd ..</li>
  291. <li>$ svn checkout <a class="reference external" href="http://bullet.googlecode.com/svn/trunk/">http://bullet.googlecode.com/svn/trunk/</a> bullet</li>
  292. <li>$ cd bullet</li>
  293. <li>$ cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release</li>
  294. <li>$ make</li>
  295. </ol>
  296. </div>
  297. <div class="section" id="sdl-ver-1-3">
  298. <h3><a class="toc-backref" href="#id5">SDL ver 1.3</a></h3>
  299. <p>We need SDL ver 1.3 for creating OpenGL 3.x context. You need to have the
  300. Mercurial and autoconf installed.</p>
  301. <ol class="arabic simple">
  302. <li>$ cd &lt;path to anki&gt;</li>
  303. <li>$ cd ..</li>
  304. <li>$ hg clone <a class="reference external" href="http://hg.libsdl.org/SDL">http://hg.libsdl.org/SDL</a> SDL</li>
  305. <li>$ cd SDL</li>
  306. <li>$ ./autogen.sh</li>
  307. <li>$ ./configure</li>
  308. <li>$ make</li>
  309. </ol>
  310. </div>
  311. <div class="section" id="sdl-image">
  312. <h3><a class="toc-backref" href="#id6">SDL_image</a></h3>
  313. <p>SDL_image automates the loading of images (png, jpeg etc). Just like SDL,
  314. SDL_image needs Mercurial and autoconf installed.</p>
  315. <ol class="arabic simple">
  316. <li>$ cd &lt;path to anki&gt;</li>
  317. <li>$ cd ..</li>
  318. <li>$ hg clone <a class="reference external" href="http://hg.libsdl.org/SDL_image">http://hg.libsdl.org/SDL_image</a> SDL_image</li>
  319. <li>$ cd SDL_image</li>
  320. <li>$ ./autogen.sh</li>
  321. <li>$ ./configure</li>
  322. <li>$ make</li>
  323. </ol>
  324. </div>
  325. <div class="section" id="glew">
  326. <h3><a class="toc-backref" href="#id7">GLEW</a></h3>
  327. <p>The latest GLEW provides us with OpenGL 3 and 4 extensions. Needs SVN and a
  328. Unix environment (for step 5).</p>
  329. <ol class="arabic simple">
  330. <li>$ cd &lt;path to anki&gt;</li>
  331. <li>$ cd ..</li>
  332. <li>$ svn co <a class="reference external" href="https://glew.svn.sourceforge.net/svnroot/glew/trunk/glew">https://glew.svn.sourceforge.net/svnroot/glew/trunk/glew</a> glew</li>
  333. <li>$ cd glew</li>
  334. <li>$ make extensions</li>
  335. <li>$ make</li>
  336. </ol>
  337. </div>
  338. <div class="section" id="boost">
  339. <h3><a class="toc-backref" href="#id8">boost</a></h3>
  340. <p>Boost is pretty big to download and build from SVN, also it doesnt need to be in
  341. the lattest version. The Linux distribution's version will do the trick so
  342. install it using the packet manager of your choice.</p>
  343. <p>In Ubuntu type: $ sudo apt-get install libboost&lt;version&gt;-dev-all</p>
  344. </div>
  345. </div>
  346. <div class="section" id="building-anki-and-optionally-generating-makefiles">
  347. <h2><a class="toc-backref" href="#id9">Building AnKi and optionally generating makefiles</a></h2>
  348. <p>Inside the build directory you can find 4 build targets containing GNU
  349. makefiles. If you want to build AnKi just type &quot;make&quot;.</p>
  350. <p><strong>WARNING</strong>: Sometimes I forget to update all the targets. The debug is always
  351. updated though.</p>
  352. <p>AnKi uses a build system that generates the above makefiles. This build system
  353. is no longer part of AnKi and its located in a different repository. This tool
  354. is called gBuildSystem and you can find it in
  355. <a class="reference external" href="http://godlike-projects.googlecode.com/svn/trunk/gBuildSystem">http://godlike-projects.googlecode.com/svn/trunk/gBuildSystem</a>. Downloaded it
  356. using SVN:</p>
  357. <p>$ svn checkout <a class="reference external" href="http://godlike-projects.googlecode.com/svn/trunk/gBuildSystem">http://godlike-projects.googlecode.com/svn/trunk/gBuildSystem</a></p>
  358. <p>gBuildSystem only purpose is to re-generate these makefiles in case you have
  359. made changes in code structure (renaming/moving/deleting/adding files) or in the
  360. includes (#include) or your have the external libs in different paths.
  361. gBuildSystem requires the gen.cfg.py files (something like CMakeLists.txt).
  362. gen.cfg.py format is pretty straightforward and minimal.</p>
  363. <p>If you want to generate the makefile for the debug target (for example) do the
  364. following:</p>
  365. <ol class="arabic simple">
  366. <li>$ cd &lt;path to anki&gt;/build/debug</li>
  367. <li>$ &lt;path to gBuildSystem&gt;/gbs.py</li>
  368. <li>$ make</li>
  369. </ol>
  370. <p>And the build process will begin.</p>
  371. </div>
  372. </div>
  373. <div class="section" id="assets">
  374. <h1><a class="toc-backref" href="#id10">Assets</a></h1>
  375. <p>Currently there are no assets (models, textures, materials etc) so even if you
  376. build it, the application will fail to run.</p>
  377. </div>
  378. <div class="section" id="system-requirements">
  379. <h1><a class="toc-backref" href="#id11">System requirements</a></h1>
  380. <p>The engine requires:</p>
  381. <ul class="simple">
  382. <li>GPU with shader model 4</li>
  383. <li>Linux OS</li>
  384. <li>Proprietary GPU drivers</li>
  385. </ul>
  386. <p>Development rig: Ubuntu 10.04, AMD Radeon 4870 w/ Catalyst 10.04. So it should
  387. be working on similar systems.</p>
  388. </div>
  389. <div class="section" id="generating-source-code-documentation-doxygen">
  390. <h1><a class="toc-backref" href="#id12">Generating source code documentation (doxygen)</a></h1>
  391. <p>The AnKi source code uses doxygen style comments in almost every file. To
  392. generate the documentation you need doxygen (<a class="reference external" href="http://www.doxygen.org/">http://www.doxygen.org/</a>). From a
  393. terminal type:</p>
  394. <ol class="arabic simple">
  395. <li>$ cd docs</li>
  396. <li>$ doxygen doxyfile</li>
  397. </ol>
  398. <p>Then open doxygen.html to see it.</p>
  399. </div>
  400. <div class="section" id="coding-style">
  401. <h1><a class="toc-backref" href="#id13">Coding style</a></h1>
  402. <p>Every project has some rules and here are some things to remember while coding
  403. AnKi.</p>
  404. <div class="section" id="types">
  405. <h2><a class="toc-backref" href="#id14">Types</a></h2>
  406. <p>The classes, structs, typedefs, enums etc must be capitalized eg <em>ThisIsAClass</em></p>
  407. </div>
  408. <div class="section" id="functions-variables">
  409. <h2><a class="toc-backref" href="#id15">Functions &amp; variables</a></h2>
  410. <p>All functions (including class methods) and all variables are mixed case.</p>
  411. <p>All functions should have a verb inside them eg <em>doSomething()</em></p>
  412. <p>All variables should not have verbs eg <em>oneVariable</em></p>
  413. </div>
  414. <div class="section" id="constants-macros-enumerators">
  415. <h2><a class="toc-backref" href="#id16">Constants, macros &amp; enumerators</a></h2>
  416. <p>All constants, macros and enumerators are capital with undercores eg <em>#define
  417. MACRO(x)</em> or <em>const int ONE_INT = 10;</em></p>
  418. <p>All the constants should be defined without using the preprocessor eg dont write
  419. <em>#define ONE_INT 10</em></p>
  420. <p>All enumerators have the first letters of the enum as prefix eg
  421. <em>enum CarColors { CC_BLUE, CC_GREEN };</em></p>
  422. </div>
  423. <div class="section" id="parenthesis-braces-comas-operators">
  424. <h2><a class="toc-backref" href="#id17">Parenthesis, braces, comas &amp; operators</a></h2>
  425. <p>After opening parenthesis and before closing it there is no spaces, same for
  426. square brackets. Before and after an operator there is always a space</p>
  427. <p>eg <em>((mat1 * 10) + 10)</em> or <em>setWidth(100)</em> or <em>int arr[100 + 1];</em></p>
  428. <p>After a coma there is a space eg <em>setSize(10, 20)</em></p>
  429. </div>
  430. <div class="section" id="order-in-class-definitions">
  431. <h2><a class="toc-backref" href="#id18">Order in class definitions</a></h2>
  432. <p>class</p>
  433. <p>{</p>
  434. <blockquote>
  435. <p>friends</p>
  436. <p>pre-nested (very rare)</p>
  437. <p>nested</p>
  438. <p>properties</p>
  439. <p>public</p>
  440. <p>protected</p>
  441. <p>private</p>
  442. </blockquote>
  443. <p>}</p>
  444. <p>inlines</p>
  445. </div>
  446. <div class="section" id="material-shader-program-naming">
  447. <h2><a class="toc-backref" href="#id19">Material shader program naming</a></h2>
  448. <p>dnspgke:</p>
  449. <ul class="simple">
  450. <li>diffuse mapping</li>
  451. <li>normal mapping</li>
  452. <li>specular mapping</li>
  453. <li>parallax mapping</li>
  454. <li>grass like</li>
  455. <li>hardware skinning</li>
  456. <li>environment mapping</li>
  457. </ul>
  458. </div>
  459. <div class="section" id="naming-shortcuts">
  460. <h2><a class="toc-backref" href="#id20">Naming shortcuts</a></h2>
  461. <p>This list contains some of the naming shortcuts we use in AnKi. This is because
  462. we are bored to type:</p>
  463. <ul class="simple">
  464. <li>Array : arr</li>
  465. <li>Animation : anim</li>
  466. <li>Application : app</li>
  467. <li>Buffer : buff</li>
  468. <li>Camera : cam</li>
  469. <li>Color : col</li>
  470. <li>Controller : ctrl</li>
  471. <li>Current : crnt</li>
  472. <li>Feature : feat</li>
  473. <li>Fragment : frag</li>
  474. <li>Framebuffer Attachable Image : fai</li>
  475. <li>Geometry : geom</li>
  476. <li>Location : loc</li>
  477. <li>Material : mtl</li>
  478. <li>Matrix : mat</li>
  479. <li>Number : num</li>
  480. <li>Physics : phy</li>
  481. <li>Position : pos</li>
  482. <li>Property : prop</li>
  483. <li>Quadrilateral : quad</li>
  484. <li>Quaternion : quat</li>
  485. <li>Resource : rsrc</li>
  486. <li>Rotation : rot</li>
  487. <li>Shader : shdr</li>
  488. <li>Shader Program : shaderProg or sProg</li>
  489. <li>Skeletal Animation : sAnim</li>
  490. <li>Skeleton : skel</li>
  491. <li>Text : txt</li>
  492. <li>Texture : tex</li>
  493. <li>Transformation : trf</li>
  494. <li>Transform Feedback : trffb</li>
  495. <li>Translation : tsl</li>
  496. <li>Triangle : tri</li>
  497. <li>Utility : util</li>
  498. <li>Variable : var</li>
  499. <li>Vector : vec</li>
  500. <li>Vertex : vert</li>
  501. </ul>
  502. <p>Anything else should be typed full.</p>
  503. </div>
  504. <div class="section" id="controllers">
  505. <h2><a class="toc-backref" href="#id21">Controllers</a></h2>
  506. <p>The controllers are part of the scene node objects. They control the node's
  507. behaviour.</p>
  508. <p>They have an input (script, animation, etc) and they control a scene node. The
  509. naming convention of the controllers is:</p>
  510. <p>&lt;what the controller controls&gt;&lt;the input of the contoller&gt;Ctrl</p>
  511. <p>For Example:</p>
  512. <p>MeshSkelNodeCtrl A Mesh is controlled by a SkelNode</p>
  513. </div>
  514. <div class="section" id="submitting-patches">
  515. <h2><a class="toc-backref" href="#id22">Submitting patches</a></h2>
  516. <p>If you want to update/patch a file (for example Main.cpp) do:</p>
  517. <ul class="simple">
  518. <li>Make the changes on that file</li>
  519. <li>Save the differences in a file using &quot;svn diff Main.cpp &gt; /tmp/diff&quot;</li>
  520. <li>E-mail the &quot;diff&quot; file with subject &quot;[PATCH] Main.cpp updates&quot;</li>
  521. </ul>
  522. </div>
  523. </div>
  524. <div class="section" id="todo-list">
  525. <h1><a class="toc-backref" href="#id23">ToDo list</a></h1>
  526. <ul>
  527. <li><p class="first">Continue working on the new coding style in shaders</p>
  528. </li>
  529. <li><p class="first">Changes in the blending objects problem. The BS will become one stage and the
  530. PPS will be divided in two steps. The first will apply the SSAO and the EdgeAA
  531. in the IS_FAI and the second will do the rest</p>
  532. </li>
  533. <li><p class="first">The second Physics demo: Create a box that is geting moved by the user. It has
  534. to interact with the other boxes</p>
  535. </li>
  536. <li><p class="first">Set the gravity of a certain body to a lower value and see how it behaves</p>
  537. </li>
  538. <li><p class="first">In the Ragdoll bullet demo try to change the distances of the bodies</p>
  539. </li>
  540. <li><dl class="first docutils">
  541. <dt>Ask in the bullet forum:</dt>
  542. <dd><ul class="first last simple">
  543. <li>How to make floating particles like smoke. But first try with one body and
  544. manualy setting the gravity</li>
  545. <li>What the btCollisionObject::setActivationState takes as parameter?</li>
  546. </ul>
  547. </dd>
  548. </dl>
  549. </li>
  550. <li><p class="first">Re-enable the stencil tex in Ms.cpp and replace all the stencil buffers with
  551. that (Smo, Bs) to save memory</p>
  552. </li>
  553. <li><p class="first">See if the restrictions in FBOs (all FAIs same size) still apply</p>
  554. </li>
  555. <li><p class="first">See what happens if I write <em>#pragma anki attribute &lt;randName&gt; 10</em> where
  556. randName does not exist. Do the same for tranform feedback varyings</p>
  557. </li>
  558. </ul>
  559. </div>
  560. </div>
  561. </body>
  562. </html>