pango 3.1.1-x64-mingw32 → 3.1.2-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (306) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +27 -5
  3. data/ext/pango/depend +2 -2
  4. data/ext/pango/extconf.rb +32 -28
  5. data/ext/pango/pango.def +0 -16
  6. data/ext/pango/rb-pango-attr-list.c +64 -0
  7. data/ext/pango/rb-pango-attribute.c +147 -0
  8. data/ext/pango/rb-pango-context.c +79 -0
  9. data/ext/pango/{rbpangoconversions.h → rb-pango-conversions.h} +4 -6
  10. data/ext/pango/rb-pango-private.h +27 -0
  11. data/ext/pango/rb-pango.c +32 -0
  12. data/ext/pango/rb-pango.h +29 -0
  13. data/extconf.rb +25 -9
  14. data/lib/2.2/pango.so +0 -0
  15. data/lib/2.3/pango.so +0 -0
  16. data/lib/2.4/pango.so +0 -0
  17. data/lib/pango.rb +24 -68
  18. data/lib/pango/cairo-loader.rb +63 -0
  19. data/lib/pango/color.rb +31 -0
  20. data/lib/pango/deprecated.rb +37 -0
  21. data/lib/pango/font-description.rb +29 -0
  22. data/lib/pango/language.rb +29 -0
  23. data/lib/pango/layout.rb +41 -0
  24. data/lib/pango/loader.rb +87 -0
  25. data/lib/pango/markup.rb +31 -0
  26. data/lib/pango/matrix.rb +64 -0
  27. data/lib/pango/rectangle.rb +28 -0
  28. data/lib/pango/version.rb +30 -0
  29. data/test/pango-test-utils.rb +7 -7
  30. data/test/run-test.rb +34 -8
  31. data/test/test-attr-list.rb +28 -0
  32. data/test/test-color.rb +1 -3
  33. data/test/test-context.rb +4 -4
  34. data/test/test-enum.rb +37 -0
  35. data/test/test-font-description.rb +31 -0
  36. data/test/test-language.rb +2 -1
  37. data/test/test-layout.rb +12 -0
  38. data/test/test-markup.rb +30 -0
  39. data/test/test-matrix.rb +131 -5
  40. data/test/test-rectangle.rb +16 -3
  41. data/vendor/local/bin/derb.exe +0 -0
  42. data/vendor/local/bin/genbrk.exe +0 -0
  43. data/vendor/local/bin/genccode.exe +0 -0
  44. data/vendor/local/bin/gencfu.exe +0 -0
  45. data/vendor/local/bin/gencmn.exe +0 -0
  46. data/vendor/local/bin/gencnval.exe +0 -0
  47. data/vendor/local/bin/gendict.exe +0 -0
  48. data/vendor/local/bin/gennorm2.exe +0 -0
  49. data/vendor/local/bin/genrb.exe +0 -0
  50. data/vendor/local/bin/gensprep.exe +0 -0
  51. data/vendor/local/bin/hb-ot-shape-closure.exe +0 -0
  52. data/vendor/local/bin/hb-shape.exe +0 -0
  53. data/vendor/local/bin/hb-view.exe +0 -0
  54. data/vendor/local/bin/icuinfo.exe +0 -0
  55. data/vendor/local/bin/icupkg.exe +0 -0
  56. data/vendor/local/bin/libgraphene-1.0-0.dll +0 -0
  57. data/vendor/local/bin/libharfbuzz-0.dll +0 -0
  58. data/vendor/local/bin/libpango-1.0-0.dll +0 -0
  59. data/vendor/local/bin/libpangocairo-1.0-0.dll +0 -0
  60. data/vendor/local/bin/libpangoft2-1.0-0.dll +0 -0
  61. data/vendor/local/bin/libpangowin32-1.0-0.dll +0 -0
  62. data/vendor/local/bin/makeconv.exe +0 -0
  63. data/vendor/local/bin/pango-view.exe +0 -0
  64. data/vendor/local/bin/pkgdata.exe +0 -0
  65. data/vendor/local/bin/uconv.exe +0 -0
  66. data/vendor/local/include/graphene-1.0/graphene-box.h +148 -0
  67. data/vendor/local/include/graphene-1.0/graphene-euler.h +140 -0
  68. data/vendor/local/include/graphene-1.0/graphene-frustum.h +93 -0
  69. data/vendor/local/include/graphene-1.0/graphene-gobject.h +119 -0
  70. data/vendor/local/include/graphene-1.0/graphene-macros.h +105 -0
  71. data/vendor/local/include/graphene-1.0/graphene-matrix.h +288 -0
  72. data/vendor/local/include/graphene-1.0/graphene-plane.h +99 -0
  73. data/vendor/local/include/graphene-1.0/graphene-point.h +120 -0
  74. data/vendor/local/include/graphene-1.0/graphene-point3d.h +140 -0
  75. data/vendor/local/include/graphene-1.0/graphene-quad.h +80 -0
  76. data/vendor/local/include/graphene-1.0/graphene-quaternion.h +136 -0
  77. data/vendor/local/include/graphene-1.0/graphene-ray.h +98 -0
  78. data/vendor/local/include/graphene-1.0/graphene-rect.h +180 -0
  79. data/vendor/local/include/graphene-1.0/graphene-simd4f.h +1870 -0
  80. data/vendor/local/include/graphene-1.0/graphene-simd4x4f.h +1045 -0
  81. data/vendor/local/include/graphene-1.0/graphene-size.h +105 -0
  82. data/vendor/local/include/graphene-1.0/graphene-sphere.h +97 -0
  83. data/vendor/local/include/graphene-1.0/graphene-triangle.h +105 -0
  84. data/vendor/local/include/graphene-1.0/graphene-types.h +88 -0
  85. data/vendor/local/include/graphene-1.0/graphene-vec2.h +130 -0
  86. data/vendor/local/include/graphene-1.0/graphene-vec3.h +155 -0
  87. data/vendor/local/include/graphene-1.0/graphene-vec4.h +156 -0
  88. data/vendor/local/include/graphene-1.0/graphene-version-macros.h +185 -0
  89. data/vendor/local/include/graphene-1.0/graphene-version.h +70 -0
  90. data/vendor/local/include/graphene-1.0/graphene.h +61 -0
  91. data/vendor/local/include/harfbuzz/hb-common.h +36 -0
  92. data/vendor/local/include/harfbuzz/hb-font.h +18 -1
  93. data/vendor/local/include/harfbuzz/hb-ot-var.h +105 -0
  94. data/vendor/local/include/harfbuzz/hb-ot.h +1 -0
  95. data/vendor/local/include/harfbuzz/hb-shape.h +0 -16
  96. data/vendor/local/include/harfbuzz/hb-version.h +2 -2
  97. data/vendor/local/include/pango-1.0/pango/pango-engine.h +6 -6
  98. data/vendor/local/include/pango-1.0/pango/pango-features.h +2 -2
  99. data/vendor/local/include/pango-1.0/pango/pango-layout.h +1 -1
  100. data/vendor/local/lib/girepository-1.0/Graphene-1.0.typelib +0 -0
  101. data/vendor/local/lib/girepository-1.0/Pango-1.0.typelib +0 -0
  102. data/vendor/local/lib/graphene-1.0/include/graphene-config.h +89 -0
  103. data/vendor/local/lib/icudt.dll +0 -0
  104. data/vendor/local/lib/icudt58.dll +0 -0
  105. data/vendor/local/lib/icuin.dll +0 -0
  106. data/vendor/local/lib/icuin58.dll +0 -0
  107. data/vendor/local/lib/icuio.dll +0 -0
  108. data/vendor/local/lib/icuio58.dll +0 -0
  109. data/vendor/local/lib/icutest.dll +0 -0
  110. data/vendor/local/lib/icutest58.dll +0 -0
  111. data/vendor/local/lib/icutu.dll +0 -0
  112. data/vendor/local/lib/icutu58.dll +0 -0
  113. data/vendor/local/lib/icuuc.dll +0 -0
  114. data/vendor/local/lib/icuuc58.dll +0 -0
  115. data/vendor/local/lib/libgraphene-1.0.dll.a +0 -0
  116. data/vendor/local/lib/libgraphene-1.0.la +41 -0
  117. data/vendor/local/lib/libharfbuzz-icu.a +0 -0
  118. data/vendor/local/lib/libharfbuzz-icu.la +1 -1
  119. data/vendor/local/lib/libharfbuzz.dll.a +0 -0
  120. data/vendor/local/lib/libharfbuzz.la +1 -1
  121. data/vendor/local/lib/libicudt.dll.a +0 -0
  122. data/vendor/local/lib/libicuin.dll.a +0 -0
  123. data/vendor/local/lib/libicuio.dll.a +0 -0
  124. data/vendor/local/lib/libicutest.dll.a +0 -0
  125. data/vendor/local/lib/libicutu.dll.a +0 -0
  126. data/vendor/local/lib/libicuuc.dll.a +0 -0
  127. data/vendor/local/lib/libpango-1.0.dll.a +0 -0
  128. data/vendor/local/lib/libpango-1.0.la +1 -1
  129. data/vendor/local/lib/libpangocairo-1.0.dll.a +0 -0
  130. data/vendor/local/lib/libpangocairo-1.0.la +1 -1
  131. data/vendor/local/lib/libpangoft2-1.0.dll.a +0 -0
  132. data/vendor/local/lib/libpangoft2-1.0.la +1 -1
  133. data/vendor/local/lib/libpangowin32-1.0.dll.a +0 -0
  134. data/vendor/local/lib/libpangowin32-1.0.la +1 -1
  135. data/vendor/local/lib/pkgconfig/graphene-1.0.pc +15 -0
  136. data/vendor/local/lib/pkgconfig/graphene-gobject-1.0.pc +15 -0
  137. data/vendor/local/lib/pkgconfig/harfbuzz-icu.pc +1 -1
  138. data/vendor/local/lib/pkgconfig/harfbuzz.pc +1 -1
  139. data/vendor/local/lib/pkgconfig/pango.pc +1 -1
  140. data/vendor/local/lib/pkgconfig/pangocairo.pc +1 -1
  141. data/vendor/local/lib/pkgconfig/pangoft2.pc +1 -1
  142. data/vendor/local/lib/pkgconfig/pangowin32.pc +1 -1
  143. data/vendor/local/share/gir-1.0/Graphene-1.0.gir +8180 -0
  144. data/vendor/local/share/gir-1.0/Pango-1.0.gir +12 -16
  145. data/vendor/local/share/gtk-doc/html/graphene/annotation-glossary.html +57 -0
  146. data/vendor/local/share/gtk-doc/html/graphene/api-index.html +1985 -0
  147. data/vendor/local/share/gtk-doc/html/graphene/ch01.html +97 -0
  148. data/vendor/local/share/gtk-doc/html/graphene/deprecated-api-index.html +34 -0
  149. data/vendor/local/share/gtk-doc/html/graphene/graphene-Box.html +1252 -0
  150. data/vendor/local/share/gtk-doc/html/graphene/graphene-Euler.html +886 -0
  151. data/vendor/local/share/gtk-doc/html/graphene/graphene-Frustum.html +527 -0
  152. data/vendor/local/share/gtk-doc/html/graphene/graphene-GObject-integration.html +147 -0
  153. data/vendor/local/share/gtk-doc/html/graphene/graphene-Matrix.html +2959 -0
  154. data/vendor/local/share/gtk-doc/html/graphene/graphene-Plane.html +641 -0
  155. data/vendor/local/share/gtk-doc/html/graphene/graphene-Point.html +689 -0
  156. data/vendor/local/share/gtk-doc/html/graphene/graphene-Point3D.html +916 -0
  157. data/vendor/local/share/gtk-doc/html/graphene/graphene-Quad.html +418 -0
  158. data/vendor/local/share/gtk-doc/html/graphene/graphene-Quaternion.html +1056 -0
  159. data/vendor/local/share/gtk-doc/html/graphene/graphene-Ray.html +596 -0
  160. data/vendor/local/share/gtk-doc/html/graphene/graphene-Rectangle.html +1483 -0
  161. data/vendor/local/share/gtk-doc/html/graphene/graphene-SIMD-matrix.html +1475 -0
  162. data/vendor/local/share/gtk-doc/html/graphene/graphene-SIMD-vector.html +3046 -0
  163. data/vendor/local/share/gtk-doc/html/graphene/graphene-Size.html +489 -0
  164. data/vendor/local/share/gtk-doc/html/graphene/graphene-Sphere.html +641 -0
  165. data/vendor/local/share/gtk-doc/html/graphene/graphene-Triangle.html +705 -0
  166. data/vendor/local/share/gtk-doc/html/graphene/graphene-Vectors.html +3715 -0
  167. data/vendor/local/share/gtk-doc/html/graphene/graphene-Versioning-information.html +104 -0
  168. data/vendor/local/share/gtk-doc/html/graphene/graphene.devhelp2 +534 -0
  169. data/vendor/local/share/gtk-doc/html/graphene/home.png +0 -0
  170. data/vendor/local/share/gtk-doc/html/graphene/index.html +107 -0
  171. data/vendor/local/share/gtk-doc/html/graphene/ix03.html +1313 -0
  172. data/vendor/local/share/gtk-doc/html/graphene/ix04.html +582 -0
  173. data/vendor/local/share/gtk-doc/html/graphene/ix05.html +151 -0
  174. data/vendor/local/share/gtk-doc/html/graphene/ix06.html +34 -0
  175. data/vendor/local/share/gtk-doc/html/graphene/left-insensitive.png +0 -0
  176. data/vendor/local/share/gtk-doc/html/graphene/left.png +0 -0
  177. data/vendor/local/share/gtk-doc/html/{pango/api-index-1-40.html → graphene/object-tree.html} +14 -11
  178. data/vendor/local/share/gtk-doc/html/graphene/rectangle-intersection.png +0 -0
  179. data/vendor/local/share/gtk-doc/html/graphene/rectangle-union.png +0 -0
  180. data/vendor/local/share/gtk-doc/html/graphene/rectangle.png +0 -0
  181. data/vendor/local/share/gtk-doc/html/graphene/right-insensitive.png +0 -0
  182. data/vendor/local/share/gtk-doc/html/graphene/right.png +0 -0
  183. data/vendor/local/share/gtk-doc/html/graphene/style.css +479 -0
  184. data/vendor/local/share/gtk-doc/html/graphene/triangle-barycentric.png +0 -0
  185. data/vendor/local/share/gtk-doc/html/graphene/up-insensitive.png +0 -0
  186. data/vendor/local/share/gtk-doc/html/graphene/up.png +0 -0
  187. data/vendor/local/share/gtk-doc/html/harfbuzz/api-index-1-2-3.html +2 -2
  188. data/vendor/local/share/gtk-doc/html/harfbuzz/{api-index-1-4-0.html → api-index-1-3-3.html} +2 -2
  189. data/vendor/local/share/gtk-doc/html/harfbuzz/api-index-full.html +104 -0
  190. data/vendor/local/share/gtk-doc/html/harfbuzz/deprecated-api-index.html +9 -2
  191. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-Shaping.html +1 -1
  192. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-font.html +156 -40
  193. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-gobject.html +73 -0
  194. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-graphite2.html +1 -0
  195. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ot-layout.html +49 -0
  196. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-ot-math.html +174 -177
  197. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-shape-plan.html +40 -0
  198. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz-hb-version.html +2 -2
  199. data/vendor/local/share/gtk-doc/html/harfbuzz/harfbuzz.devhelp2 +28 -10
  200. data/vendor/local/share/gtk-doc/html/harfbuzz/index.html +1 -1
  201. data/vendor/local/share/gtk-doc/html/harfbuzz/pt02.html +2 -2
  202. data/vendor/local/share/gtk-doc/html/pango/PangoEngineLang.html +2 -2
  203. data/vendor/local/share/gtk-doc/html/pango/PangoEngineShape.html +2 -2
  204. data/vendor/local/share/gtk-doc/html/pango/PangoFcDecoder.html +1 -1
  205. data/vendor/local/share/gtk-doc/html/pango/PangoFcFont.html +1 -1
  206. data/vendor/local/share/gtk-doc/html/pango/PangoFcFontMap.html +3 -3
  207. data/vendor/local/share/gtk-doc/html/pango/PangoMarkupFormat.html +1 -1
  208. data/vendor/local/share/gtk-doc/html/pango/PangoRenderer.html +2 -2
  209. data/vendor/local/share/gtk-doc/html/pango/annotation-glossary.html +1 -1
  210. data/vendor/local/share/gtk-doc/html/pango/api-index-full.html +1 -1
  211. data/vendor/local/share/gtk-doc/html/pango/index.html +2 -23
  212. data/vendor/local/share/gtk-doc/html/pango/lowlevel.html +1 -1
  213. data/vendor/local/share/gtk-doc/html/pango/pango-Bidirectional-Text.html +1 -1
  214. data/vendor/local/share/gtk-doc/html/pango/pango-Cairo-Rendering.html +69 -69
  215. data/vendor/local/share/gtk-doc/html/pango/pango-CoreText-Fonts.html +1 -1
  216. data/vendor/local/share/gtk-doc/html/pango/pango-Coverage-Maps.html +1 -1
  217. data/vendor/local/share/gtk-doc/html/pango/pango-Engines.html +5 -1
  218. data/vendor/local/share/gtk-doc/html/pango/pango-Fonts.html +5 -4
  219. data/vendor/local/share/gtk-doc/html/pango/pango-FreeType-Fonts-and-Rendering.html +8 -4
  220. data/vendor/local/share/gtk-doc/html/pango/pango-Glyph-Storage.html +3 -3
  221. data/vendor/local/share/gtk-doc/html/pango/pango-Layout-Objects.html +4 -4
  222. data/vendor/local/share/gtk-doc/html/pango/pango-Miscellaneous-Utilities.html +1 -1
  223. data/vendor/local/share/gtk-doc/html/pango/pango-Modules.html +3 -1
  224. data/vendor/local/share/gtk-doc/html/pango/pango-OpenType-Font-Handling.html +1 -1
  225. data/vendor/local/share/gtk-doc/html/pango/pango-Scripts-and-Languages.html +3 -3
  226. data/vendor/local/share/gtk-doc/html/pango/pango-Tab-Stops.html +1 -1
  227. data/vendor/local/share/gtk-doc/html/pango/pango-Text-Attributes.html +1 -1
  228. data/vendor/local/share/gtk-doc/html/pango/pango-Text-Processing.html +3 -3
  229. data/vendor/local/share/gtk-doc/html/pango/pango-Version-Checking.html +3 -3
  230. data/vendor/local/share/gtk-doc/html/pango/pango-Vertical-Text.html +1 -1
  231. data/vendor/local/share/gtk-doc/html/pango/pango-Win32-Fonts-and-Rendering.html +3 -3
  232. data/vendor/local/share/gtk-doc/html/pango/pango-Xft-Fonts-and-Rendering.html +1 -1
  233. data/vendor/local/share/gtk-doc/html/pango/pango-hierarchy.html +1 -1
  234. data/vendor/local/share/gtk-doc/html/pango/pango.html +1 -1
  235. data/vendor/local/share/gtk-doc/html/pango/rendering.html +1 -1
  236. data/vendor/local/share/man/man1/pango-view.1 +2 -2
  237. metadata +119 -78
  238. data/README +0 -32
  239. data/ext/pango/rbpango.c +0 -356
  240. data/ext/pango/rbpango.h +0 -95
  241. data/ext/pango/rbpangoanalysis.c +0 -218
  242. data/ext/pango/rbpangoattribute.c +0 -506
  243. data/ext/pango/rbpangoattriterator.c +0 -141
  244. data/ext/pango/rbpangoattrlist.c +0 -101
  245. data/ext/pango/rbpangocairo.c +0 -122
  246. data/ext/pango/rbpangocairocontext.c +0 -131
  247. data/ext/pango/rbpangocolor.c +0 -120
  248. data/ext/pango/rbpangocontext.c +0 -344
  249. data/ext/pango/rbpangocoverage.c +0 -106
  250. data/ext/pango/rbpangoengine.c +0 -73
  251. data/ext/pango/rbpangofont.c +0 -110
  252. data/ext/pango/rbpangofontdescription.c +0 -282
  253. data/ext/pango/rbpangofontface.c +0 -73
  254. data/ext/pango/rbpangofontfamily.c +0 -79
  255. data/ext/pango/rbpangofontmap.c +0 -102
  256. data/ext/pango/rbpangofontmetrics.c +0 -85
  257. data/ext/pango/rbpangofontset.c +0 -69
  258. data/ext/pango/rbpangofontsetsimple.c +0 -60
  259. data/ext/pango/rbpangoglyphinfo.c +0 -123
  260. data/ext/pango/rbpangoglyphitem.c +0 -125
  261. data/ext/pango/rbpangoglyphstring.c +0 -151
  262. data/ext/pango/rbpangogravity.c +0 -54
  263. data/ext/pango/rbpangoitem.c +0 -95
  264. data/ext/pango/rbpangolanguage.c +0 -94
  265. data/ext/pango/rbpangolayout.c +0 -583
  266. data/ext/pango/rbpangolayoutiter.c +0 -189
  267. data/ext/pango/rbpangolayoutline.c +0 -243
  268. data/ext/pango/rbpangologattr.c +0 -109
  269. data/ext/pango/rbpangomatrix.c +0 -143
  270. data/ext/pango/rbpangoprivate.h +0 -49
  271. data/ext/pango/rbpangorectangle.c +0 -170
  272. data/ext/pango/rbpangorenderer.c +0 -193
  273. data/ext/pango/rbpangoscript.c +0 -84
  274. data/ext/pango/rbpangoscriptiter.c +0 -92
  275. data/ext/pango/rbpangotabarray.c +0 -128
  276. data/sample/attribute.rb +0 -82
  277. data/sample/break.rb +0 -28
  278. data/sample/gdk_layout.rb +0 -27
  279. data/sample/glyphstring.rb +0 -61
  280. data/sample/item.rb +0 -37
  281. data/sample/label.rb +0 -23
  282. data/sample/layout.rb +0 -102
  283. data/sample/pango_cairo.rb +0 -66
  284. data/sample/parse.rb +0 -33
  285. data/sample/sample.txt +0 -10
  286. data/sample/script.rb +0 -23
  287. data/vendor/local/share/gtk-doc/html/pango/api-index-1-10.html +0 -134
  288. data/vendor/local/share/gtk-doc/html/pango/api-index-1-12.html +0 -48
  289. data/vendor/local/share/gtk-doc/html/pango/api-index-1-14.html +0 -63
  290. data/vendor/local/share/gtk-doc/html/pango/api-index-1-16.html +0 -227
  291. data/vendor/local/share/gtk-doc/html/pango/api-index-1-18.html +0 -151
  292. data/vendor/local/share/gtk-doc/html/pango/api-index-1-2.html +0 -121
  293. data/vendor/local/share/gtk-doc/html/pango/api-index-1-20.html +0 -86
  294. data/vendor/local/share/gtk-doc/html/pango/api-index-1-22.html +0 -123
  295. data/vendor/local/share/gtk-doc/html/pango/api-index-1-24.html +0 -96
  296. data/vendor/local/share/gtk-doc/html/pango/api-index-1-26.html +0 -45
  297. data/vendor/local/share/gtk-doc/html/pango/api-index-1-30.html +0 -38
  298. data/vendor/local/share/gtk-doc/html/pango/api-index-1-31-0.html +0 -38
  299. data/vendor/local/share/gtk-doc/html/pango/api-index-1-32-4.html +0 -52
  300. data/vendor/local/share/gtk-doc/html/pango/api-index-1-32.html +0 -41
  301. data/vendor/local/share/gtk-doc/html/pango/api-index-1-34.html +0 -38
  302. data/vendor/local/share/gtk-doc/html/pango/api-index-1-38.html +0 -79
  303. data/vendor/local/share/gtk-doc/html/pango/api-index-1-4.html +0 -200
  304. data/vendor/local/share/gtk-doc/html/pango/api-index-1-6.html +0 -164
  305. data/vendor/local/share/gtk-doc/html/pango/api-index-1-8.html +0 -170
  306. data/vendor/local/share/gtk-doc/html/pango/api-index-deprecated.html +0 -441
@@ -0,0 +1,147 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
+ <title>GObject integration: Graphene Reference Manual</title>
6
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7
+ <link rel="home" href="index.html" title="Graphene Reference Manual">
8
+ <link rel="up" href="ch01.html" title="Graphene">
9
+ <link rel="prev" href="graphene-Versioning-information.html" title="Versioning information">
10
+ <link rel="next" href="object-tree.html" title="Object Hierarchy">
11
+ <meta name="generator" content="GTK-Doc V1.25 (XML mode)">
12
+ <link rel="stylesheet" href="style.css" type="text/css">
13
+ </head>
14
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15
+ <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
16
+ <td width="100%" align="left" class="shortcuts">
17
+ <a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
18
+ <a href="#graphene-GObject-integration.description" class="shortcut">Description</a></span>
19
+ </td>
20
+ <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
21
+ <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
22
+ <td><a accesskey="p" href="graphene-Versioning-information.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
23
+ <td><a accesskey="n" href="object-tree.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
24
+ </tr></table>
25
+ <div class="refentry">
26
+ <a name="graphene-GObject-integration"></a><div class="titlepage"></div>
27
+ <div class="refnamediv"><table width="100%"><tr>
28
+ <td valign="top">
29
+ <h2><span class="refentrytitle"><a name="graphene-GObject-integration.top_of_page"></a>GObject integration</span></h2>
30
+ <p>GObject integration — Types for GObject properties and signals</p>
31
+ </td>
32
+ <td class="gallery_image" valign="top" align="right"></td>
33
+ </tr></table></div>
34
+ <div class="refsect1">
35
+ <a name="graphene-GObject-integration.includes"></a><h2>Includes</h2>
36
+ <pre class="synopsis">#include &lt;graphene-gobject.h&gt;
37
+ </pre>
38
+ </div>
39
+ <div class="refsect1">
40
+ <a name="graphene-GObject-integration.description"></a><h2>Description</h2>
41
+ <p>Graphene optionally provides information for using its own types with
42
+ GObject properties and signals.</p>
43
+ <div class="refsect3">
44
+ <a name="id-1.2.21.4.3"></a><h4>Using Graphene with GObject</h4>
45
+ <p>In order to discover at compile time if Graphene exposes type information
46
+ for the GType type system, you need to check if the <code class="literal">graphene-gobject-1.0</code>
47
+ pkg-config file exists. In build systems using autotools, you can use
48
+ the <code class="literal">PKG_CHECK_EXISTS</code> m4 macro, for instance:</p>
49
+ <div class="informalexample">
50
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
51
+ <tbody>
52
+ <tr>
53
+ <td class="listing_lines" align="right"><pre>1
54
+ 2
55
+ 3</pre></td>
56
+ <td class="listing_code"><pre class="programlisting"><span class="function">PKG_CHECK_EXISTS</span><span class="symbol">([</span><span class="normal">graphene</span><span class="symbol">-</span><span class="normal">gobject</span><span class="symbol">-</span><span class="number">1.0</span><span class="symbol">],</span>
57
+ <span class="normal"> </span><span class="symbol">[</span><span class="normal">action</span><span class="symbol">-</span><span class="keyword">if</span><span class="symbol">-</span><span class="normal">found</span><span class="symbol">],</span>
58
+ <span class="normal"> </span><span class="symbol">[</span><span class="normal">action</span><span class="symbol">-</span><span class="keyword">if</span><span class="symbol">-</span><span class="normal">not</span><span class="symbol">-</span><span class="normal">found</span><span class="symbol">]</span></pre></td>
59
+ </tr>
60
+ </tbody>
61
+ </table>
62
+ </div>
63
+
64
+ <p></p>
65
+ <p>All the types provided by Graphene are boxed types, which means you
66
+ will have to use the <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-Boxed-Types.html"><span class="type">GBoxed</span></a> API when dealing with <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>, <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a>,
67
+ and signal marshallers. For instance, to install a property in a <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct"><span class="type">GObject</span></a>
68
+ class that uses <a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a>, you can use:</p>
69
+ <div class="informalexample">
70
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
71
+ <tbody>
72
+ <tr>
73
+ <td class="listing_lines" align="right"><pre>1
74
+ 2
75
+ 3
76
+ 4</pre></td>
77
+ <td class="listing_code"><pre class="programlisting"><span class="function"><a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#g-object-class-install-property">g_object_class_install_property</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">object_class</span><span class="symbol">,</span><span class="normal"> PROP_BOUNDS</span><span class="symbol">,</span>
78
+ <span class="normal"> </span><span class="function"><a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-Standard-Parameter-and-Value-Types.html#g-param-spec-boxed">g_param_spec_boxed</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"bounds"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Bounds"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Bounds of an object"</span><span class="symbol">,</span>
79
+ <span class="normal"> GRAPHENE_TYPE_RECT</span><span class="symbol">,</span>
80
+ <span class="normal"> <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-GParamSpec.html#G-PARAM-READWRITE:CAPS">G_PARAM_READWRITE</a> </span><span class="symbol">|</span><span class="normal"> <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-GParamSpec.html#G-PARAM-STATIC-STRINGS:CAPS">G_PARAM_STATIC_STRINGS</a></span><span class="symbol">);</span></pre></td>
81
+ </tr>
82
+ </tbody>
83
+ </table>
84
+ </div>
85
+
86
+ <p></p>
87
+ <p>You'll then need to use <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-Standard-Parameter-and-Value-Types.html#g-value-set-boxed"><code class="function">g_value_set_boxed()</code></a> and <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-Standard-Parameter-and-Value-Types.html#g-value-get-boxed"><code class="function">g_value_get_boxed()</code></a>
88
+ in order to access the <a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a> pointer from the <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> data
89
+ structure.</p>
90
+ <p>Whereas for creating a new signal that has a <a class="link" href="graphene-Point.html#graphene-point-t" title="graphene_point_t"><span class="type">graphene_point_t</span></a> parameter
91
+ you can use:</p>
92
+ <div class="informalexample">
93
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
94
+ <tbody>
95
+ <tr>
96
+ <td class="listing_lines" align="right"><pre>1
97
+ 2
98
+ 3
99
+ 4
100
+ 5
101
+ 6
102
+ 7
103
+ 8
104
+ 9</pre></td>
105
+ <td class="listing_code"><pre class="programlisting"><span class="normal">signals</span><span class="symbol">[</span><span class="normal">HIT_TEST</span><span class="symbol">]</span><span class="normal"> </span><span class="symbol">=</span>
106
+ <span class="normal"> </span><span class="function"><a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-Signals.html#g-signal-new">g_signal_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"hit-test"</span><span class="symbol">,</span>
107
+ <span class="normal"> </span><span class="function"><a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-Type-Information.html#G-TYPE-FROM-CLASS:CAPS">G_TYPE_FROM_CLASS</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">object_class</span><span class="symbol">),</span>
108
+ <span class="normal"> <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">G_SIGNAL_RUN_LAST</a></span><span class="symbol">,</span>
109
+ <span class="normal"> </span><span class="number">0</span><span class="symbol">,</span>
110
+ <span class="normal"> <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-Signals.html#g-signal-accumulator-true-handled">g_signal_accumulator_true_handled</a></span><span class="symbol">,</span><span class="normal"> <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span>
111
+ <span class="normal"> marshal_BOOLEAN__BOXED</span><span class="symbol">,</span>
112
+ <span class="normal"> <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-Type-Information.html#G-TYPE-BOOLEAN:CAPS">G_TYPE_BOOLEAN</a></span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">,</span>
113
+ <span class="normal"> GRAPHENE_TYPE_POINT</span><span class="symbol">);</span></pre></td>
114
+ </tr>
115
+ </tbody>
116
+ </table>
117
+ </div>
118
+
119
+ <p></p>
120
+ </div>
121
+ <div class="refsect3">
122
+ <a name="id-1.2.21.4.4"></a><h4>Using Graphene via GObject introspection</h4>
123
+ <p>When using Graphene with another language than C, the GObject Introspection
124
+ bindings change the type names to the CamelCase version of the C name, minus
125
+ the <code class="literal">_t</code> suffix; for instance:</p>
126
+ <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
127
+ <li class="listitem"><p><a class="link" href="graphene-Point.html#graphene-point-t" title="graphene_point_t"><span class="type">graphene_point_t</span></a> becomes <code class="literal">GraphenePoint</code></p></li>
128
+ <li class="listitem"><p><a class="link" href="graphene-Point3D.html#graphene-point3d-t" title="graphene_point3d_t"><span class="type">graphene_point3d_t</span></a> becomes <code class="literal">GraphenePoint3D</code></p></li>
129
+ <li class="listitem"><p><a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a> becomes <code class="literal">GrapheneRect</code></p></li>
130
+ <li class="listitem"><p><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> becomes <code class="literal">GrapheneMatrix</code></p></li>
131
+ </ul></div>
132
+ <p>There is no direct access for the low level <a class="link" href="graphene-SIMD-vector.html#graphene-simd4f-t" title="graphene_simd4f_t"><span class="type">graphene_simd4f_t</span></a> and
133
+ <a class="link" href="graphene-SIMD-matrix.html#graphene-simd4x4f-t" title="graphene_simd4x4f_t"><span class="type">graphene_simd4x4f_t</span></a> SIMD types.</p>
134
+ </div>
135
+ </div>
136
+ <div class="refsect1">
137
+ <a name="graphene-GObject-integration.functions_details"></a><h2>Functions</h2>
138
+ <p></p>
139
+ </div>
140
+ <div class="refsect1">
141
+ <a name="graphene-GObject-integration.other_details"></a><h2>Types and Values</h2>
142
+ </div>
143
+ </div>
144
+ <div class="footer">
145
+ <hr>Generated by GTK-Doc V1.25</div>
146
+ </body>
147
+ </html>
@@ -0,0 +1,2959 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
+ <title>Matrix: Graphene Reference Manual</title>
6
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7
+ <link rel="home" href="index.html" title="Graphene Reference Manual">
8
+ <link rel="up" href="ch01.html" title="Graphene">
9
+ <link rel="prev" href="graphene-Vectors.html" title="Vectors">
10
+ <link rel="next" href="graphene-Euler.html" title="Euler">
11
+ <meta name="generator" content="GTK-Doc V1.25 (XML mode)">
12
+ <link rel="stylesheet" href="style.css" type="text/css">
13
+ </head>
14
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15
+ <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
16
+ <td width="100%" align="left" class="shortcuts">
17
+ <a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
18
+ <a href="#graphene-Matrix.description" class="shortcut">Description</a></span>
19
+ </td>
20
+ <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
21
+ <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
22
+ <td><a accesskey="p" href="graphene-Vectors.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
23
+ <td><a accesskey="n" href="graphene-Euler.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
24
+ </tr></table>
25
+ <div class="refentry">
26
+ <a name="graphene-Matrix"></a><div class="titlepage"></div>
27
+ <div class="refnamediv"><table width="100%"><tr>
28
+ <td valign="top">
29
+ <h2><span class="refentrytitle"><a name="graphene-Matrix.top_of_page"></a>Matrix</span></h2>
30
+ <p>Matrix — 4x4 matrices</p>
31
+ </td>
32
+ <td class="gallery_image" valign="top" align="right"></td>
33
+ </tr></table></div>
34
+ <div class="refsect1">
35
+ <a name="graphene-Matrix.functions"></a><h2>Functions</h2>
36
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
37
+ <colgroup>
38
+ <col width="150px" class="functions_return">
39
+ <col class="functions_name">
40
+ </colgroup>
41
+ <tbody>
42
+ <tr>
43
+ <td class="function_type">
44
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
45
+ </td>
46
+ <td class="function_name">
47
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-alloc" title="graphene_matrix_alloc ()">graphene_matrix_alloc</a> <span class="c_punctuation">()</span>
48
+ </td>
49
+ </tr>
50
+ <tr>
51
+ <td class="function_type">
52
+ <span class="returnvalue">void</span>
53
+ </td>
54
+ <td class="function_name">
55
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-free" title="graphene_matrix_free ()">graphene_matrix_free</a> <span class="c_punctuation">()</span>
56
+ </td>
57
+ </tr>
58
+ <tr>
59
+ <td class="function_type">
60
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
61
+ </td>
62
+ <td class="function_name">
63
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-init-identity" title="graphene_matrix_init_identity ()">graphene_matrix_init_identity</a> <span class="c_punctuation">()</span>
64
+ </td>
65
+ </tr>
66
+ <tr>
67
+ <td class="function_type">
68
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
69
+ </td>
70
+ <td class="function_name">
71
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-init-from-float" title="graphene_matrix_init_from_float ()">graphene_matrix_init_from_float</a> <span class="c_punctuation">()</span>
72
+ </td>
73
+ </tr>
74
+ <tr>
75
+ <td class="function_type">
76
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
77
+ </td>
78
+ <td class="function_name">
79
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-init-from-vec4" title="graphene_matrix_init_from_vec4 ()">graphene_matrix_init_from_vec4</a> <span class="c_punctuation">()</span>
80
+ </td>
81
+ </tr>
82
+ <tr>
83
+ <td class="function_type">
84
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
85
+ </td>
86
+ <td class="function_name">
87
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-init-from-matrix" title="graphene_matrix_init_from_matrix ()">graphene_matrix_init_from_matrix</a> <span class="c_punctuation">()</span>
88
+ </td>
89
+ </tr>
90
+ <tr>
91
+ <td class="function_type">
92
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
93
+ </td>
94
+ <td class="function_name">
95
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-init-from-2d" title="graphene_matrix_init_from_2d ()">graphene_matrix_init_from_2d</a> <span class="c_punctuation">()</span>
96
+ </td>
97
+ </tr>
98
+ <tr>
99
+ <td class="function_type">
100
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
101
+ </td>
102
+ <td class="function_name">
103
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-init-perspective" title="graphene_matrix_init_perspective ()">graphene_matrix_init_perspective</a> <span class="c_punctuation">()</span>
104
+ </td>
105
+ </tr>
106
+ <tr>
107
+ <td class="function_type">
108
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
109
+ </td>
110
+ <td class="function_name">
111
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-init-ortho" title="graphene_matrix_init_ortho ()">graphene_matrix_init_ortho</a> <span class="c_punctuation">()</span>
112
+ </td>
113
+ </tr>
114
+ <tr>
115
+ <td class="function_type">
116
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
117
+ </td>
118
+ <td class="function_name">
119
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-init-look-at" title="graphene_matrix_init_look_at ()">graphene_matrix_init_look_at</a> <span class="c_punctuation">()</span>
120
+ </td>
121
+ </tr>
122
+ <tr>
123
+ <td class="function_type">
124
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
125
+ </td>
126
+ <td class="function_name">
127
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-init-frustum" title="graphene_matrix_init_frustum ()">graphene_matrix_init_frustum</a> <span class="c_punctuation">()</span>
128
+ </td>
129
+ </tr>
130
+ <tr>
131
+ <td class="function_type">
132
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
133
+ </td>
134
+ <td class="function_name">
135
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-init-scale" title="graphene_matrix_init_scale ()">graphene_matrix_init_scale</a> <span class="c_punctuation">()</span>
136
+ </td>
137
+ </tr>
138
+ <tr>
139
+ <td class="function_type">
140
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
141
+ </td>
142
+ <td class="function_name">
143
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-init-translate" title="graphene_matrix_init_translate ()">graphene_matrix_init_translate</a> <span class="c_punctuation">()</span>
144
+ </td>
145
+ </tr>
146
+ <tr>
147
+ <td class="function_type">
148
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
149
+ </td>
150
+ <td class="function_name">
151
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-init-rotate" title="graphene_matrix_init_rotate ()">graphene_matrix_init_rotate</a> <span class="c_punctuation">()</span>
152
+ </td>
153
+ </tr>
154
+ <tr>
155
+ <td class="function_type">
156
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
157
+ </td>
158
+ <td class="function_name">
159
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-init-skew" title="graphene_matrix_init_skew ()">graphene_matrix_init_skew</a> <span class="c_punctuation">()</span>
160
+ </td>
161
+ </tr>
162
+ <tr>
163
+ <td class="function_type">
164
+ <span class="returnvalue">bool</span>
165
+ </td>
166
+ <td class="function_name">
167
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-is-identity" title="graphene_matrix_is_identity ()">graphene_matrix_is_identity</a> <span class="c_punctuation">()</span>
168
+ </td>
169
+ </tr>
170
+ <tr>
171
+ <td class="function_type">
172
+ <span class="returnvalue">bool</span>
173
+ </td>
174
+ <td class="function_name">
175
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-is-2d" title="graphene_matrix_is_2d ()">graphene_matrix_is_2d</a> <span class="c_punctuation">()</span>
176
+ </td>
177
+ </tr>
178
+ <tr>
179
+ <td class="function_type">
180
+ <span class="returnvalue">bool</span>
181
+ </td>
182
+ <td class="function_name">
183
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-is-backface-visible" title="graphene_matrix_is_backface_visible ()">graphene_matrix_is_backface_visible</a> <span class="c_punctuation">()</span>
184
+ </td>
185
+ </tr>
186
+ <tr>
187
+ <td class="function_type">
188
+ <span class="returnvalue">bool</span>
189
+ </td>
190
+ <td class="function_name">
191
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-is-singular" title="graphene_matrix_is_singular ()">graphene_matrix_is_singular</a> <span class="c_punctuation">()</span>
192
+ </td>
193
+ </tr>
194
+ <tr>
195
+ <td class="function_type">
196
+ <span class="returnvalue">void</span>
197
+ </td>
198
+ <td class="function_name">
199
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-to-float" title="graphene_matrix_to_float ()">graphene_matrix_to_float</a> <span class="c_punctuation">()</span>
200
+ </td>
201
+ </tr>
202
+ <tr>
203
+ <td class="function_type">
204
+ <span class="returnvalue">bool</span>
205
+ </td>
206
+ <td class="function_name">
207
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-to-2d" title="graphene_matrix_to_2d ()">graphene_matrix_to_2d</a> <span class="c_punctuation">()</span>
208
+ </td>
209
+ </tr>
210
+ <tr>
211
+ <td class="function_type">
212
+ <span class="returnvalue">void</span>
213
+ </td>
214
+ <td class="function_name">
215
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-get-row" title="graphene_matrix_get_row ()">graphene_matrix_get_row</a> <span class="c_punctuation">()</span>
216
+ </td>
217
+ </tr>
218
+ <tr>
219
+ <td class="function_type">
220
+ <span class="returnvalue">float</span>
221
+ </td>
222
+ <td class="function_name">
223
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-get-value" title="graphene_matrix_get_value ()">graphene_matrix_get_value</a> <span class="c_punctuation">()</span>
224
+ </td>
225
+ </tr>
226
+ <tr>
227
+ <td class="function_type">
228
+ <span class="returnvalue">void</span>
229
+ </td>
230
+ <td class="function_name">
231
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-multiply" title="graphene_matrix_multiply ()">graphene_matrix_multiply</a> <span class="c_punctuation">()</span>
232
+ </td>
233
+ </tr>
234
+ <tr>
235
+ <td class="function_type">
236
+ <span class="returnvalue">float</span>
237
+ </td>
238
+ <td class="function_name">
239
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-determinant" title="graphene_matrix_determinant ()">graphene_matrix_determinant</a> <span class="c_punctuation">()</span>
240
+ </td>
241
+ </tr>
242
+ <tr>
243
+ <td class="function_type">
244
+ <span class="returnvalue">void</span>
245
+ </td>
246
+ <td class="function_name">
247
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-transform-vec4" title="graphene_matrix_transform_vec4 ()">graphene_matrix_transform_vec4</a> <span class="c_punctuation">()</span>
248
+ </td>
249
+ </tr>
250
+ <tr>
251
+ <td class="function_type">
252
+ <span class="returnvalue">void</span>
253
+ </td>
254
+ <td class="function_name">
255
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-transform-vec3" title="graphene_matrix_transform_vec3 ()">graphene_matrix_transform_vec3</a> <span class="c_punctuation">()</span>
256
+ </td>
257
+ </tr>
258
+ <tr>
259
+ <td class="function_type">
260
+ <span class="returnvalue">void</span>
261
+ </td>
262
+ <td class="function_name">
263
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-transform-point" title="graphene_matrix_transform_point ()">graphene_matrix_transform_point</a> <span class="c_punctuation">()</span>
264
+ </td>
265
+ </tr>
266
+ <tr>
267
+ <td class="function_type">
268
+ <span class="returnvalue">void</span>
269
+ </td>
270
+ <td class="function_name">
271
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-transform-point3d" title="graphene_matrix_transform_point3d ()">graphene_matrix_transform_point3d</a> <span class="c_punctuation">()</span>
272
+ </td>
273
+ </tr>
274
+ <tr>
275
+ <td class="function_type">
276
+ <span class="returnvalue">void</span>
277
+ </td>
278
+ <td class="function_name">
279
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-transform-rect" title="graphene_matrix_transform_rect ()">graphene_matrix_transform_rect</a> <span class="c_punctuation">()</span>
280
+ </td>
281
+ </tr>
282
+ <tr>
283
+ <td class="function_type">
284
+ <span class="returnvalue">void</span>
285
+ </td>
286
+ <td class="function_name">
287
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-transform-bounds" title="graphene_matrix_transform_bounds ()">graphene_matrix_transform_bounds</a> <span class="c_punctuation">()</span>
288
+ </td>
289
+ </tr>
290
+ <tr>
291
+ <td class="function_type">
292
+ <span class="returnvalue">void</span>
293
+ </td>
294
+ <td class="function_name">
295
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-transform-box" title="graphene_matrix_transform_box ()">graphene_matrix_transform_box</a> <span class="c_punctuation">()</span>
296
+ </td>
297
+ </tr>
298
+ <tr>
299
+ <td class="function_type">
300
+ <span class="returnvalue">void</span>
301
+ </td>
302
+ <td class="function_name">
303
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-transform-sphere" title="graphene_matrix_transform_sphere ()">graphene_matrix_transform_sphere</a> <span class="c_punctuation">()</span>
304
+ </td>
305
+ </tr>
306
+ <tr>
307
+ <td class="function_type">
308
+ <span class="returnvalue">void</span>
309
+ </td>
310
+ <td class="function_name">
311
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-transform-ray" title="graphene_matrix_transform_ray ()">graphene_matrix_transform_ray</a> <span class="c_punctuation">()</span>
312
+ </td>
313
+ </tr>
314
+ <tr>
315
+ <td class="function_type">
316
+ <span class="returnvalue">void</span>
317
+ </td>
318
+ <td class="function_name">
319
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-project-point" title="graphene_matrix_project_point ()">graphene_matrix_project_point</a> <span class="c_punctuation">()</span>
320
+ </td>
321
+ </tr>
322
+ <tr>
323
+ <td class="function_type">
324
+ <span class="returnvalue">void</span>
325
+ </td>
326
+ <td class="function_name">
327
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-project-rect-bounds" title="graphene_matrix_project_rect_bounds ()">graphene_matrix_project_rect_bounds</a> <span class="c_punctuation">()</span>
328
+ </td>
329
+ </tr>
330
+ <tr>
331
+ <td class="function_type">
332
+ <span class="returnvalue">void</span>
333
+ </td>
334
+ <td class="function_name">
335
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-project-rect" title="graphene_matrix_project_rect ()">graphene_matrix_project_rect</a> <span class="c_punctuation">()</span>
336
+ </td>
337
+ </tr>
338
+ <tr>
339
+ <td class="function_type">
340
+ <span class="returnvalue">bool</span>
341
+ </td>
342
+ <td class="function_name">
343
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-untransform-point" title="graphene_matrix_untransform_point ()">graphene_matrix_untransform_point</a> <span class="c_punctuation">()</span>
344
+ </td>
345
+ </tr>
346
+ <tr>
347
+ <td class="function_type">
348
+ <span class="returnvalue">void</span>
349
+ </td>
350
+ <td class="function_name">
351
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-untransform-bounds" title="graphene_matrix_untransform_bounds ()">graphene_matrix_untransform_bounds</a> <span class="c_punctuation">()</span>
352
+ </td>
353
+ </tr>
354
+ <tr>
355
+ <td class="function_type">
356
+ <span class="returnvalue">void</span>
357
+ </td>
358
+ <td class="function_name">
359
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-unproject-point3d" title="graphene_matrix_unproject_point3d ()">graphene_matrix_unproject_point3d</a> <span class="c_punctuation">()</span>
360
+ </td>
361
+ </tr>
362
+ <tr>
363
+ <td class="function_type">
364
+ <span class="returnvalue">void</span>
365
+ </td>
366
+ <td class="function_name">
367
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-translate" title="graphene_matrix_translate ()">graphene_matrix_translate</a> <span class="c_punctuation">()</span>
368
+ </td>
369
+ </tr>
370
+ <tr>
371
+ <td class="function_type">
372
+ <span class="returnvalue">void</span>
373
+ </td>
374
+ <td class="function_name">
375
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-rotate" title="graphene_matrix_rotate ()">graphene_matrix_rotate</a> <span class="c_punctuation">()</span>
376
+ </td>
377
+ </tr>
378
+ <tr>
379
+ <td class="function_type">
380
+ <span class="returnvalue">void</span>
381
+ </td>
382
+ <td class="function_name">
383
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-rotate-x" title="graphene_matrix_rotate_x ()">graphene_matrix_rotate_x</a> <span class="c_punctuation">()</span>
384
+ </td>
385
+ </tr>
386
+ <tr>
387
+ <td class="function_type">
388
+ <span class="returnvalue">void</span>
389
+ </td>
390
+ <td class="function_name">
391
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-rotate-y" title="graphene_matrix_rotate_y ()">graphene_matrix_rotate_y</a> <span class="c_punctuation">()</span>
392
+ </td>
393
+ </tr>
394
+ <tr>
395
+ <td class="function_type">
396
+ <span class="returnvalue">void</span>
397
+ </td>
398
+ <td class="function_name">
399
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-rotate-z" title="graphene_matrix_rotate_z ()">graphene_matrix_rotate_z</a> <span class="c_punctuation">()</span>
400
+ </td>
401
+ </tr>
402
+ <tr>
403
+ <td class="function_type">
404
+ <span class="returnvalue">void</span>
405
+ </td>
406
+ <td class="function_name">
407
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-rotate-quaternion" title="graphene_matrix_rotate_quaternion ()">graphene_matrix_rotate_quaternion</a> <span class="c_punctuation">()</span>
408
+ </td>
409
+ </tr>
410
+ <tr>
411
+ <td class="function_type">
412
+ <span class="returnvalue">void</span>
413
+ </td>
414
+ <td class="function_name">
415
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-rotate-euler" title="graphene_matrix_rotate_euler ()">graphene_matrix_rotate_euler</a> <span class="c_punctuation">()</span>
416
+ </td>
417
+ </tr>
418
+ <tr>
419
+ <td class="function_type">
420
+ <span class="returnvalue">void</span>
421
+ </td>
422
+ <td class="function_name">
423
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-scale" title="graphene_matrix_scale ()">graphene_matrix_scale</a> <span class="c_punctuation">()</span>
424
+ </td>
425
+ </tr>
426
+ <tr>
427
+ <td class="function_type">
428
+ <span class="returnvalue">void</span>
429
+ </td>
430
+ <td class="function_name">
431
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-skew-xy" title="graphene_matrix_skew_xy ()">graphene_matrix_skew_xy</a> <span class="c_punctuation">()</span>
432
+ </td>
433
+ </tr>
434
+ <tr>
435
+ <td class="function_type">
436
+ <span class="returnvalue">void</span>
437
+ </td>
438
+ <td class="function_name">
439
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-skew-xz" title="graphene_matrix_skew_xz ()">graphene_matrix_skew_xz</a> <span class="c_punctuation">()</span>
440
+ </td>
441
+ </tr>
442
+ <tr>
443
+ <td class="function_type">
444
+ <span class="returnvalue">void</span>
445
+ </td>
446
+ <td class="function_name">
447
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-skew-yz" title="graphene_matrix_skew_yz ()">graphene_matrix_skew_yz</a> <span class="c_punctuation">()</span>
448
+ </td>
449
+ </tr>
450
+ <tr>
451
+ <td class="function_type">
452
+ <span class="returnvalue">void</span>
453
+ </td>
454
+ <td class="function_name">
455
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-transpose" title="graphene_matrix_transpose ()">graphene_matrix_transpose</a> <span class="c_punctuation">()</span>
456
+ </td>
457
+ </tr>
458
+ <tr>
459
+ <td class="function_type">
460
+ <span class="returnvalue">bool</span>
461
+ </td>
462
+ <td class="function_name">
463
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-inverse" title="graphene_matrix_inverse ()">graphene_matrix_inverse</a> <span class="c_punctuation">()</span>
464
+ </td>
465
+ </tr>
466
+ <tr>
467
+ <td class="function_type">
468
+ <span class="returnvalue">void</span>
469
+ </td>
470
+ <td class="function_name">
471
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-perspective" title="graphene_matrix_perspective ()">graphene_matrix_perspective</a> <span class="c_punctuation">()</span>
472
+ </td>
473
+ </tr>
474
+ <tr>
475
+ <td class="function_type">
476
+ <span class="returnvalue">void</span>
477
+ </td>
478
+ <td class="function_name">
479
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-normalize" title="graphene_matrix_normalize ()">graphene_matrix_normalize</a> <span class="c_punctuation">()</span>
480
+ </td>
481
+ </tr>
482
+ <tr>
483
+ <td class="function_type">
484
+ <span class="returnvalue">float</span>
485
+ </td>
486
+ <td class="function_name">
487
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-get-x-scale" title="graphene_matrix_get_x_scale ()">graphene_matrix_get_x_scale</a> <span class="c_punctuation">()</span>
488
+ </td>
489
+ </tr>
490
+ <tr>
491
+ <td class="function_type">
492
+ <span class="returnvalue">float</span>
493
+ </td>
494
+ <td class="function_name">
495
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-get-y-scale" title="graphene_matrix_get_y_scale ()">graphene_matrix_get_y_scale</a> <span class="c_punctuation">()</span>
496
+ </td>
497
+ </tr>
498
+ <tr>
499
+ <td class="function_type">
500
+ <span class="returnvalue">float</span>
501
+ </td>
502
+ <td class="function_name">
503
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-get-z-scale" title="graphene_matrix_get_z_scale ()">graphene_matrix_get_z_scale</a> <span class="c_punctuation">()</span>
504
+ </td>
505
+ </tr>
506
+ <tr>
507
+ <td class="function_type">
508
+ <span class="returnvalue">void</span>
509
+ </td>
510
+ <td class="function_name">
511
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-interpolate" title="graphene_matrix_interpolate ()">graphene_matrix_interpolate</a> <span class="c_punctuation">()</span>
512
+ </td>
513
+ </tr>
514
+ <tr>
515
+ <td class="function_type">
516
+ <span class="returnvalue">void</span>
517
+ </td>
518
+ <td class="function_name">
519
+ <a class="link" href="graphene-Matrix.html#graphene-matrix-print" title="graphene_matrix_print ()">graphene_matrix_print</a> <span class="c_punctuation">()</span>
520
+ </td>
521
+ </tr>
522
+ </tbody>
523
+ </table></div>
524
+ </div>
525
+ <div class="refsect1">
526
+ <a name="graphene-Matrix.other"></a><h2>Types and Values</h2>
527
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
528
+ <colgroup>
529
+ <col width="150px" class="name">
530
+ <col class="description">
531
+ </colgroup>
532
+ <tbody><tr>
533
+ <td class="datatype_keyword"> </td>
534
+ <td class="function_name"><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t">graphene_matrix_t</a></td>
535
+ </tr></tbody>
536
+ </table></div>
537
+ </div>
538
+ <div class="refsect1">
539
+ <a name="graphene-Matrix.includes"></a><h2>Includes</h2>
540
+ <pre class="synopsis">#include &lt;graphene.h&gt;
541
+ </pre>
542
+ </div>
543
+ <div class="refsect1">
544
+ <a name="graphene-Matrix.description"></a><h2>Description</h2>
545
+ <p><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> is a type that provides a 4x4 square matrix, useful for
546
+ representing 3D transformations.</p>
547
+ <p>The matrix is treated as row-major, i.e. it has four vectors (x, y, z, and
548
+ w) representing rows, and elements of each vector are a column:</p>
549
+ <div class="informalexample">
550
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
551
+ <tbody>
552
+ <tr>
553
+ <td class="listing_lines" align="right"><pre>1
554
+ 2
555
+ 3
556
+ 4</pre></td>
557
+ <td class="listing_code"><pre class="programlisting"><span class="symbol">|</span><span class="normal"> x </span><span class="symbol">|</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> x</span><span class="symbol">.</span><span class="usertype">x</span><span class="normal"> x</span><span class="symbol">.</span><span class="usertype">y</span><span class="normal"> x</span><span class="symbol">.</span><span class="usertype">z</span><span class="normal"> x</span><span class="symbol">.</span><span class="normal">w </span><span class="symbol">|</span>
558
+ <span class="symbol">|</span><span class="normal"> y </span><span class="symbol">|</span><span class="normal"> </span><span class="symbol">-\</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> y</span><span class="symbol">.</span><span class="usertype">x</span><span class="normal"> y</span><span class="symbol">.</span><span class="usertype">y</span><span class="normal"> y</span><span class="symbol">.</span><span class="usertype">z</span><span class="normal"> y</span><span class="symbol">.</span><span class="normal">w </span><span class="symbol">|</span>
559
+ <span class="symbol">|</span><span class="normal"> z </span><span class="symbol">|</span><span class="normal"> </span><span class="symbol">-/</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> z</span><span class="symbol">.</span><span class="usertype">x</span><span class="normal"> z</span><span class="symbol">.</span><span class="usertype">y</span><span class="normal"> z</span><span class="symbol">.</span><span class="usertype">z</span><span class="normal"> z</span><span class="symbol">.</span><span class="normal">w </span><span class="symbol">|</span>
560
+ <span class="symbol">|</span><span class="normal"> w </span><span class="symbol">|</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> w</span><span class="symbol">.</span><span class="usertype">x</span><span class="normal"> w</span><span class="symbol">.</span><span class="usertype">y</span><span class="normal"> w</span><span class="symbol">.</span><span class="usertype">z</span><span class="normal"> w</span><span class="symbol">.</span><span class="normal">w </span><span class="symbol">|</span></pre></td>
561
+ </tr>
562
+ </tbody>
563
+ </table>
564
+ </div>
565
+
566
+ <p></p>
567
+ <p>It is possible to easily convert a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> to and from an array
568
+ of floating point values that can be used with other libraries.</p>
569
+ <p>The contents of a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> are private, and direct access is not
570
+ possible. You can modify and read the contents of a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a>
571
+ only through the provided API.</p>
572
+ </div>
573
+ <div class="refsect1">
574
+ <a name="graphene-Matrix.functions_details"></a><h2>Functions</h2>
575
+ <div class="refsect2">
576
+ <a name="graphene-matrix-alloc"></a><h3>graphene_matrix_alloc ()</h3>
577
+ <pre class="programlisting"><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
578
+ graphene_matrix_alloc (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
579
+ <p>Allocates a new <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a>.</p>
580
+ <p><span class="annotation">[<acronym title="This symbol is a constructor, not a static method."><span class="acronym">constructor</span></acronym>]</span></p>
581
+ <div class="refsect3">
582
+ <a name="graphene-matrix-alloc.returns"></a><h4>Returns</h4>
583
+ <p> the newly allocated matrix. </p>
584
+ <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
585
+ </div>
586
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
587
+ </div>
588
+ <hr>
589
+ <div class="refsect2">
590
+ <a name="graphene-matrix-free"></a><h3>graphene_matrix_free ()</h3>
591
+ <pre class="programlisting"><span class="returnvalue">void</span>
592
+ graphene_matrix_free (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>);</pre>
593
+ <p>Frees the resources allocated by <a class="link" href="graphene-Matrix.html#graphene-matrix-alloc" title="graphene_matrix_alloc ()"><code class="function">graphene_matrix_alloc()</code></a>.</p>
594
+ <div class="refsect3">
595
+ <a name="graphene-matrix-free.parameters"></a><h4>Parameters</h4>
596
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
597
+ <colgroup>
598
+ <col width="150px" class="parameters_name">
599
+ <col class="parameters_description">
600
+ <col width="200px" class="parameters_annotations">
601
+ </colgroup>
602
+ <tbody><tr>
603
+ <td class="parameter_name"><p>m</p></td>
604
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
605
+ <td class="parameter_annotations"> </td>
606
+ </tr></tbody>
607
+ </table></div>
608
+ </div>
609
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
610
+ </div>
611
+ <hr>
612
+ <div class="refsect2">
613
+ <a name="graphene-matrix-init-identity"></a><h3>graphene_matrix_init_identity ()</h3>
614
+ <pre class="programlisting"><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
615
+ graphene_matrix_init_identity (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>);</pre>
616
+ <p>Initializes a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> with the identity matrix.</p>
617
+ <div class="refsect3">
618
+ <a name="graphene-matrix-init-identity.parameters"></a><h4>Parameters</h4>
619
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
620
+ <colgroup>
621
+ <col width="150px" class="parameters_name">
622
+ <col class="parameters_description">
623
+ <col width="200px" class="parameters_annotations">
624
+ </colgroup>
625
+ <tbody><tr>
626
+ <td class="parameter_name"><p>m</p></td>
627
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
628
+ <td class="parameter_annotations"> </td>
629
+ </tr></tbody>
630
+ </table></div>
631
+ </div>
632
+ <div class="refsect3">
633
+ <a name="graphene-matrix-init-identity.returns"></a><h4>Returns</h4>
634
+ <p> the initialized matrix. </p>
635
+ <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
636
+ </div>
637
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
638
+ </div>
639
+ <hr>
640
+ <div class="refsect2">
641
+ <a name="graphene-matrix-init-from-float"></a><h3>graphene_matrix_init_from_float ()</h3>
642
+ <pre class="programlisting"><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
643
+ graphene_matrix_init_from_float (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
644
+ <em class="parameter"><code>const <span class="type">float</span> *v</code></em>);</pre>
645
+ <p>Initializes a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> with the given array of floating
646
+ point values.</p>
647
+ <div class="refsect3">
648
+ <a name="graphene-matrix-init-from-float.parameters"></a><h4>Parameters</h4>
649
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
650
+ <colgroup>
651
+ <col width="150px" class="parameters_name">
652
+ <col class="parameters_description">
653
+ <col width="200px" class="parameters_annotations">
654
+ </colgroup>
655
+ <tbody>
656
+ <tr>
657
+ <td class="parameter_name"><p>m</p></td>
658
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
659
+ <td class="parameter_annotations"> </td>
660
+ </tr>
661
+ <tr>
662
+ <td class="parameter_name"><p>v</p></td>
663
+ <td class="parameter_description"><p> an array of at least 16 floating
664
+ point values. </p></td>
665
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> fixed-size=16]</span></td>
666
+ </tr>
667
+ </tbody>
668
+ </table></div>
669
+ </div>
670
+ <div class="refsect3">
671
+ <a name="graphene-matrix-init-from-float.returns"></a><h4>Returns</h4>
672
+ <p> the initialized matrix. </p>
673
+ <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
674
+ </div>
675
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
676
+ </div>
677
+ <hr>
678
+ <div class="refsect2">
679
+ <a name="graphene-matrix-init-from-vec4"></a><h3>graphene_matrix_init_from_vec4 ()</h3>
680
+ <pre class="programlisting"><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
681
+ graphene_matrix_init_from_vec4 (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
682
+ <em class="parameter"><code>const <a class="link" href="graphene-Vectors.html#graphene-vec4-t" title="graphene_vec4_t"><span class="type">graphene_vec4_t</span></a> *v0</code></em>,
683
+ <em class="parameter"><code>const <a class="link" href="graphene-Vectors.html#graphene-vec4-t" title="graphene_vec4_t"><span class="type">graphene_vec4_t</span></a> *v1</code></em>,
684
+ <em class="parameter"><code>const <a class="link" href="graphene-Vectors.html#graphene-vec4-t" title="graphene_vec4_t"><span class="type">graphene_vec4_t</span></a> *v2</code></em>,
685
+ <em class="parameter"><code>const <a class="link" href="graphene-Vectors.html#graphene-vec4-t" title="graphene_vec4_t"><span class="type">graphene_vec4_t</span></a> *v3</code></em>);</pre>
686
+ <p>Initializes a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> with the given four row
687
+ vectors.</p>
688
+ <div class="refsect3">
689
+ <a name="graphene-matrix-init-from-vec4.parameters"></a><h4>Parameters</h4>
690
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
691
+ <colgroup>
692
+ <col width="150px" class="parameters_name">
693
+ <col class="parameters_description">
694
+ <col width="200px" class="parameters_annotations">
695
+ </colgroup>
696
+ <tbody>
697
+ <tr>
698
+ <td class="parameter_name"><p>m</p></td>
699
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
700
+ <td class="parameter_annotations"> </td>
701
+ </tr>
702
+ <tr>
703
+ <td class="parameter_name"><p>v0</p></td>
704
+ <td class="parameter_description"><p>the first row vector</p></td>
705
+ <td class="parameter_annotations"> </td>
706
+ </tr>
707
+ <tr>
708
+ <td class="parameter_name"><p>v1</p></td>
709
+ <td class="parameter_description"><p>the second row vector</p></td>
710
+ <td class="parameter_annotations"> </td>
711
+ </tr>
712
+ <tr>
713
+ <td class="parameter_name"><p>v2</p></td>
714
+ <td class="parameter_description"><p>the third row vector</p></td>
715
+ <td class="parameter_annotations"> </td>
716
+ </tr>
717
+ <tr>
718
+ <td class="parameter_name"><p>v3</p></td>
719
+ <td class="parameter_description"><p>the fourth row vector</p></td>
720
+ <td class="parameter_annotations"> </td>
721
+ </tr>
722
+ </tbody>
723
+ </table></div>
724
+ </div>
725
+ <div class="refsect3">
726
+ <a name="graphene-matrix-init-from-vec4.returns"></a><h4>Returns</h4>
727
+ <p> the initialized matrix. </p>
728
+ <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
729
+ </div>
730
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
731
+ </div>
732
+ <hr>
733
+ <div class="refsect2">
734
+ <a name="graphene-matrix-init-from-matrix"></a><h3>graphene_matrix_init_from_matrix ()</h3>
735
+ <pre class="programlisting"><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
736
+ graphene_matrix_init_from_matrix (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
737
+ <em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *src</code></em>);</pre>
738
+ <p>Initializes a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> using the values of the
739
+ given matrix.</p>
740
+ <div class="refsect3">
741
+ <a name="graphene-matrix-init-from-matrix.parameters"></a><h4>Parameters</h4>
742
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
743
+ <colgroup>
744
+ <col width="150px" class="parameters_name">
745
+ <col class="parameters_description">
746
+ <col width="200px" class="parameters_annotations">
747
+ </colgroup>
748
+ <tbody>
749
+ <tr>
750
+ <td class="parameter_name"><p>m</p></td>
751
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
752
+ <td class="parameter_annotations"> </td>
753
+ </tr>
754
+ <tr>
755
+ <td class="parameter_name"><p>src</p></td>
756
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
757
+ <td class="parameter_annotations"> </td>
758
+ </tr>
759
+ </tbody>
760
+ </table></div>
761
+ </div>
762
+ <div class="refsect3">
763
+ <a name="graphene-matrix-init-from-matrix.returns"></a><h4>Returns</h4>
764
+ <p> the initialized matrix. </p>
765
+ <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
766
+ </div>
767
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
768
+ </div>
769
+ <hr>
770
+ <div class="refsect2">
771
+ <a name="graphene-matrix-init-from-2d"></a><h3>graphene_matrix_init_from_2d ()</h3>
772
+ <pre class="programlisting"><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
773
+ graphene_matrix_init_from_2d (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
774
+ <em class="parameter"><code><span class="type">double</span> xx</code></em>,
775
+ <em class="parameter"><code><span class="type">double</span> yx</code></em>,
776
+ <em class="parameter"><code><span class="type">double</span> xy</code></em>,
777
+ <em class="parameter"><code><span class="type">double</span> yy</code></em>,
778
+ <em class="parameter"><code><span class="type">double</span> x_0</code></em>,
779
+ <em class="parameter"><code><span class="type">double</span> y_0</code></em>);</pre>
780
+ <p>Initializes a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> from the values of an affine
781
+ transformation matrix.</p>
782
+ <p>The arguments map to the following matrix layout:</p>
783
+ <div class="informalexample">
784
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
785
+ <tbody>
786
+ <tr>
787
+ <td class="listing_lines" align="right"><pre>1
788
+ 2
789
+ 3</pre></td>
790
+ <td class="listing_code"><pre class="programlisting"><span class="symbol">|</span><span class="normal"> </span><span class="usertype">xx</span><span class="normal"> yx </span><span class="symbol">|</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> a b </span><span class="number">0</span><span class="normal"> </span><span class="symbol">|</span>
791
+ <span class="symbol">|</span><span class="normal"> </span><span class="usertype">xy</span><span class="normal"> yy </span><span class="symbol">|</span><span class="normal"> </span><span class="symbol">=</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> c d </span><span class="number">0</span><span class="normal"> </span><span class="symbol">|</span>
792
+ <span class="symbol">|</span><span class="normal"> </span><span class="usertype">x0</span><span class="normal"> y0 </span><span class="symbol">|</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> tx ty </span><span class="number">1</span><span class="normal"> </span><span class="symbol">|</span></pre></td>
793
+ </tr>
794
+ </tbody>
795
+ </table>
796
+ </div>
797
+
798
+ <p></p>
799
+ <p>This function can be used to convert between a matrix type from
800
+ other libraries and a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a>.</p>
801
+ <div class="refsect3">
802
+ <a name="graphene-matrix-init-from-2d.parameters"></a><h4>Parameters</h4>
803
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
804
+ <colgroup>
805
+ <col width="150px" class="parameters_name">
806
+ <col class="parameters_description">
807
+ <col width="200px" class="parameters_annotations">
808
+ </colgroup>
809
+ <tbody>
810
+ <tr>
811
+ <td class="parameter_name"><p>m</p></td>
812
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
813
+ <td class="parameter_annotations"> </td>
814
+ </tr>
815
+ <tr>
816
+ <td class="parameter_name"><p>xx</p></td>
817
+ <td class="parameter_description"><p>the xx member</p></td>
818
+ <td class="parameter_annotations"> </td>
819
+ </tr>
820
+ <tr>
821
+ <td class="parameter_name"><p>yx</p></td>
822
+ <td class="parameter_description"><p>the yx member</p></td>
823
+ <td class="parameter_annotations"> </td>
824
+ </tr>
825
+ <tr>
826
+ <td class="parameter_name"><p>xy</p></td>
827
+ <td class="parameter_description"><p>the xy member</p></td>
828
+ <td class="parameter_annotations"> </td>
829
+ </tr>
830
+ <tr>
831
+ <td class="parameter_name"><p>yy</p></td>
832
+ <td class="parameter_description"><p>the yy member</p></td>
833
+ <td class="parameter_annotations"> </td>
834
+ </tr>
835
+ <tr>
836
+ <td class="parameter_name"><p>x_0</p></td>
837
+ <td class="parameter_description"><p>the x0 member</p></td>
838
+ <td class="parameter_annotations"> </td>
839
+ </tr>
840
+ <tr>
841
+ <td class="parameter_name"><p>y_0</p></td>
842
+ <td class="parameter_description"><p>the y0 member</p></td>
843
+ <td class="parameter_annotations"> </td>
844
+ </tr>
845
+ </tbody>
846
+ </table></div>
847
+ </div>
848
+ <div class="refsect3">
849
+ <a name="graphene-matrix-init-from-2d.returns"></a><h4>Returns</h4>
850
+ <p> the initialized matrix. </p>
851
+ <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
852
+ </div>
853
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
854
+ </div>
855
+ <hr>
856
+ <div class="refsect2">
857
+ <a name="graphene-matrix-init-perspective"></a><h3>graphene_matrix_init_perspective ()</h3>
858
+ <pre class="programlisting"><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
859
+ graphene_matrix_init_perspective (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
860
+ <em class="parameter"><code><span class="type">float</span> fovy</code></em>,
861
+ <em class="parameter"><code><span class="type">float</span> aspect</code></em>,
862
+ <em class="parameter"><code><span class="type">float</span> z_near</code></em>,
863
+ <em class="parameter"><code><span class="type">float</span> z_far</code></em>);</pre>
864
+ <p>Initializes a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> with a perspective projection.</p>
865
+ <div class="refsect3">
866
+ <a name="graphene-matrix-init-perspective.parameters"></a><h4>Parameters</h4>
867
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
868
+ <colgroup>
869
+ <col width="150px" class="parameters_name">
870
+ <col class="parameters_description">
871
+ <col width="200px" class="parameters_annotations">
872
+ </colgroup>
873
+ <tbody>
874
+ <tr>
875
+ <td class="parameter_name"><p>m</p></td>
876
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
877
+ <td class="parameter_annotations"> </td>
878
+ </tr>
879
+ <tr>
880
+ <td class="parameter_name"><p>fovy</p></td>
881
+ <td class="parameter_description"><p>the field of view angle, in degrees</p></td>
882
+ <td class="parameter_annotations"> </td>
883
+ </tr>
884
+ <tr>
885
+ <td class="parameter_name"><p>aspect</p></td>
886
+ <td class="parameter_description"><p>the aspect value</p></td>
887
+ <td class="parameter_annotations"> </td>
888
+ </tr>
889
+ <tr>
890
+ <td class="parameter_name"><p>z_near</p></td>
891
+ <td class="parameter_description"><p>the near Z plane</p></td>
892
+ <td class="parameter_annotations"> </td>
893
+ </tr>
894
+ <tr>
895
+ <td class="parameter_name"><p>z_far</p></td>
896
+ <td class="parameter_description"><p>the far Z plane</p></td>
897
+ <td class="parameter_annotations"> </td>
898
+ </tr>
899
+ </tbody>
900
+ </table></div>
901
+ </div>
902
+ <div class="refsect3">
903
+ <a name="graphene-matrix-init-perspective.returns"></a><h4>Returns</h4>
904
+ <p> the initialized matrix. </p>
905
+ <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
906
+ </div>
907
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
908
+ </div>
909
+ <hr>
910
+ <div class="refsect2">
911
+ <a name="graphene-matrix-init-ortho"></a><h3>graphene_matrix_init_ortho ()</h3>
912
+ <pre class="programlisting"><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
913
+ graphene_matrix_init_ortho (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
914
+ <em class="parameter"><code><span class="type">float</span> left</code></em>,
915
+ <em class="parameter"><code><span class="type">float</span> right</code></em>,
916
+ <em class="parameter"><code><span class="type">float</span> top</code></em>,
917
+ <em class="parameter"><code><span class="type">float</span> bottom</code></em>,
918
+ <em class="parameter"><code><span class="type">float</span> z_near</code></em>,
919
+ <em class="parameter"><code><span class="type">float</span> z_far</code></em>);</pre>
920
+ <p>Initializes a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> with an orthographic projection.</p>
921
+ <div class="refsect3">
922
+ <a name="graphene-matrix-init-ortho.parameters"></a><h4>Parameters</h4>
923
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
924
+ <colgroup>
925
+ <col width="150px" class="parameters_name">
926
+ <col class="parameters_description">
927
+ <col width="200px" class="parameters_annotations">
928
+ </colgroup>
929
+ <tbody>
930
+ <tr>
931
+ <td class="parameter_name"><p>m</p></td>
932
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
933
+ <td class="parameter_annotations"> </td>
934
+ </tr>
935
+ <tr>
936
+ <td class="parameter_name"><p>left</p></td>
937
+ <td class="parameter_description"><p>the left edge of the clipping plane</p></td>
938
+ <td class="parameter_annotations"> </td>
939
+ </tr>
940
+ <tr>
941
+ <td class="parameter_name"><p>right</p></td>
942
+ <td class="parameter_description"><p>the right edge of the clipping plane</p></td>
943
+ <td class="parameter_annotations"> </td>
944
+ </tr>
945
+ <tr>
946
+ <td class="parameter_name"><p>top</p></td>
947
+ <td class="parameter_description"><p>the top edge of the clipping plane</p></td>
948
+ <td class="parameter_annotations"> </td>
949
+ </tr>
950
+ <tr>
951
+ <td class="parameter_name"><p>bottom</p></td>
952
+ <td class="parameter_description"><p>the bottom edge of the clipping plane</p></td>
953
+ <td class="parameter_annotations"> </td>
954
+ </tr>
955
+ <tr>
956
+ <td class="parameter_name"><p>z_near</p></td>
957
+ <td class="parameter_description"><p>the distance of the near clipping plane</p></td>
958
+ <td class="parameter_annotations"> </td>
959
+ </tr>
960
+ <tr>
961
+ <td class="parameter_name"><p>z_far</p></td>
962
+ <td class="parameter_description"><p>the distance of the far clipping plane</p></td>
963
+ <td class="parameter_annotations"> </td>
964
+ </tr>
965
+ </tbody>
966
+ </table></div>
967
+ </div>
968
+ <div class="refsect3">
969
+ <a name="graphene-matrix-init-ortho.returns"></a><h4>Returns</h4>
970
+ <p> the initialized matrix. </p>
971
+ <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
972
+ </div>
973
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
974
+ </div>
975
+ <hr>
976
+ <div class="refsect2">
977
+ <a name="graphene-matrix-init-look-at"></a><h3>graphene_matrix_init_look_at ()</h3>
978
+ <pre class="programlisting"><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
979
+ graphene_matrix_init_look_at (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
980
+ <em class="parameter"><code>const <a class="link" href="graphene-Vectors.html#graphene-vec3-t" title="graphene_vec3_t"><span class="type">graphene_vec3_t</span></a> *eye</code></em>,
981
+ <em class="parameter"><code>const <a class="link" href="graphene-Vectors.html#graphene-vec3-t" title="graphene_vec3_t"><span class="type">graphene_vec3_t</span></a> *center</code></em>,
982
+ <em class="parameter"><code>const <a class="link" href="graphene-Vectors.html#graphene-vec3-t" title="graphene_vec3_t"><span class="type">graphene_vec3_t</span></a> *up</code></em>);</pre>
983
+ <p>Initializes a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> so that it positions the "camera"
984
+ at the given <em class="parameter"><code>eye</code></em>
985
+ coordinates towards an object at the <em class="parameter"><code>center</code></em>
986
+
987
+ coordinates. The top of the camera is aligned to the direction
988
+ of the <em class="parameter"><code>up</code></em>
989
+ vector.</p>
990
+ <div class="refsect3">
991
+ <a name="graphene-matrix-init-look-at.parameters"></a><h4>Parameters</h4>
992
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
993
+ <colgroup>
994
+ <col width="150px" class="parameters_name">
995
+ <col class="parameters_description">
996
+ <col width="200px" class="parameters_annotations">
997
+ </colgroup>
998
+ <tbody>
999
+ <tr>
1000
+ <td class="parameter_name"><p>m</p></td>
1001
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1002
+ <td class="parameter_annotations"> </td>
1003
+ </tr>
1004
+ <tr>
1005
+ <td class="parameter_name"><p>eye</p></td>
1006
+ <td class="parameter_description"><p>the vector describing the position to look from</p></td>
1007
+ <td class="parameter_annotations"> </td>
1008
+ </tr>
1009
+ <tr>
1010
+ <td class="parameter_name"><p>center</p></td>
1011
+ <td class="parameter_description"><p>the vector describing the position to look at</p></td>
1012
+ <td class="parameter_annotations"> </td>
1013
+ </tr>
1014
+ <tr>
1015
+ <td class="parameter_name"><p>up</p></td>
1016
+ <td class="parameter_description"><p>the vector describing the world's upward direction; usually,
1017
+ this is the <a class="link" href="graphene-Vectors.html#graphene-vec3-y-axis" title="graphene_vec3_y_axis ()"><code class="function">graphene_vec3_y_axis()</code></a> vector</p></td>
1018
+ <td class="parameter_annotations"> </td>
1019
+ </tr>
1020
+ </tbody>
1021
+ </table></div>
1022
+ </div>
1023
+ <div class="refsect3">
1024
+ <a name="graphene-matrix-init-look-at.returns"></a><h4>Returns</h4>
1025
+ <p> the initialized matrix. </p>
1026
+ <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
1027
+ </div>
1028
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
1029
+ </div>
1030
+ <hr>
1031
+ <div class="refsect2">
1032
+ <a name="graphene-matrix-init-frustum"></a><h3>graphene_matrix_init_frustum ()</h3>
1033
+ <pre class="programlisting"><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
1034
+ graphene_matrix_init_frustum (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
1035
+ <em class="parameter"><code><span class="type">float</span> left</code></em>,
1036
+ <em class="parameter"><code><span class="type">float</span> right</code></em>,
1037
+ <em class="parameter"><code><span class="type">float</span> bottom</code></em>,
1038
+ <em class="parameter"><code><span class="type">float</span> top</code></em>,
1039
+ <em class="parameter"><code><span class="type">float</span> z_near</code></em>,
1040
+ <em class="parameter"><code><span class="type">float</span> z_far</code></em>);</pre>
1041
+ <p>Initializes a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> compatible with <a class="link" href="graphene-Frustum.html#graphene-frustum-t" title="graphene_frustum_t"><span class="type">graphene_frustum_t</span></a>.</p>
1042
+ <p>See also: <a class="link" href="graphene-Frustum.html#graphene-frustum-init-from-matrix" title="graphene_frustum_init_from_matrix ()"><code class="function">graphene_frustum_init_from_matrix()</code></a></p>
1043
+ <div class="refsect3">
1044
+ <a name="graphene-matrix-init-frustum.parameters"></a><h4>Parameters</h4>
1045
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1046
+ <colgroup>
1047
+ <col width="150px" class="parameters_name">
1048
+ <col class="parameters_description">
1049
+ <col width="200px" class="parameters_annotations">
1050
+ </colgroup>
1051
+ <tbody>
1052
+ <tr>
1053
+ <td class="parameter_name"><p>m</p></td>
1054
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1055
+ <td class="parameter_annotations"> </td>
1056
+ </tr>
1057
+ <tr>
1058
+ <td class="parameter_name"><p>left</p></td>
1059
+ <td class="parameter_description"><p>distance of the left clipping plane</p></td>
1060
+ <td class="parameter_annotations"> </td>
1061
+ </tr>
1062
+ <tr>
1063
+ <td class="parameter_name"><p>right</p></td>
1064
+ <td class="parameter_description"><p>distance of the right clipping plane</p></td>
1065
+ <td class="parameter_annotations"> </td>
1066
+ </tr>
1067
+ <tr>
1068
+ <td class="parameter_name"><p>bottom</p></td>
1069
+ <td class="parameter_description"><p>distance of the bottom clipping plane</p></td>
1070
+ <td class="parameter_annotations"> </td>
1071
+ </tr>
1072
+ <tr>
1073
+ <td class="parameter_name"><p>top</p></td>
1074
+ <td class="parameter_description"><p>distance of the top clipping plane</p></td>
1075
+ <td class="parameter_annotations"> </td>
1076
+ </tr>
1077
+ <tr>
1078
+ <td class="parameter_name"><p>z_near</p></td>
1079
+ <td class="parameter_description"><p>distance of the near clipping plane</p></td>
1080
+ <td class="parameter_annotations"> </td>
1081
+ </tr>
1082
+ <tr>
1083
+ <td class="parameter_name"><p>z_far</p></td>
1084
+ <td class="parameter_description"><p>distance of the far clipping plane</p></td>
1085
+ <td class="parameter_annotations"> </td>
1086
+ </tr>
1087
+ </tbody>
1088
+ </table></div>
1089
+ </div>
1090
+ <div class="refsect3">
1091
+ <a name="graphene-matrix-init-frustum.returns"></a><h4>Returns</h4>
1092
+ <p> the initialized matrix. </p>
1093
+ <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
1094
+ </div>
1095
+ <p class="since">Since: <a class="link" href="ix04.html#api-index-1.2">1.2</a></p>
1096
+ </div>
1097
+ <hr>
1098
+ <div class="refsect2">
1099
+ <a name="graphene-matrix-init-scale"></a><h3>graphene_matrix_init_scale ()</h3>
1100
+ <pre class="programlisting"><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
1101
+ graphene_matrix_init_scale (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
1102
+ <em class="parameter"><code><span class="type">float</span> x</code></em>,
1103
+ <em class="parameter"><code><span class="type">float</span> y</code></em>,
1104
+ <em class="parameter"><code><span class="type">float</span> z</code></em>);</pre>
1105
+ <p>Initializes a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> with the given scaling factors.</p>
1106
+ <div class="refsect3">
1107
+ <a name="graphene-matrix-init-scale.parameters"></a><h4>Parameters</h4>
1108
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1109
+ <colgroup>
1110
+ <col width="150px" class="parameters_name">
1111
+ <col class="parameters_description">
1112
+ <col width="200px" class="parameters_annotations">
1113
+ </colgroup>
1114
+ <tbody>
1115
+ <tr>
1116
+ <td class="parameter_name"><p>m</p></td>
1117
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1118
+ <td class="parameter_annotations"> </td>
1119
+ </tr>
1120
+ <tr>
1121
+ <td class="parameter_name"><p>x</p></td>
1122
+ <td class="parameter_description"><p>the scale factor on the X axis</p></td>
1123
+ <td class="parameter_annotations"> </td>
1124
+ </tr>
1125
+ <tr>
1126
+ <td class="parameter_name"><p>y</p></td>
1127
+ <td class="parameter_description"><p>the scale factor on the Y axis</p></td>
1128
+ <td class="parameter_annotations"> </td>
1129
+ </tr>
1130
+ <tr>
1131
+ <td class="parameter_name"><p>z</p></td>
1132
+ <td class="parameter_description"><p>the scale factor on the Z axis</p></td>
1133
+ <td class="parameter_annotations"> </td>
1134
+ </tr>
1135
+ </tbody>
1136
+ </table></div>
1137
+ </div>
1138
+ <div class="refsect3">
1139
+ <a name="graphene-matrix-init-scale.returns"></a><h4>Returns</h4>
1140
+ <p> the initialized matrix. </p>
1141
+ <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
1142
+ </div>
1143
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
1144
+ </div>
1145
+ <hr>
1146
+ <div class="refsect2">
1147
+ <a name="graphene-matrix-init-translate"></a><h3>graphene_matrix_init_translate ()</h3>
1148
+ <pre class="programlisting"><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
1149
+ graphene_matrix_init_translate (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
1150
+ <em class="parameter"><code>const <a class="link" href="graphene-Point3D.html#graphene-point3d-t" title="graphene_point3d_t"><span class="type">graphene_point3d_t</span></a> *p</code></em>);</pre>
1151
+ <p>Initializes a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> with a translation to the
1152
+ given coordinates.</p>
1153
+ <div class="refsect3">
1154
+ <a name="graphene-matrix-init-translate.parameters"></a><h4>Parameters</h4>
1155
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1156
+ <colgroup>
1157
+ <col width="150px" class="parameters_name">
1158
+ <col class="parameters_description">
1159
+ <col width="200px" class="parameters_annotations">
1160
+ </colgroup>
1161
+ <tbody>
1162
+ <tr>
1163
+ <td class="parameter_name"><p>m</p></td>
1164
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1165
+ <td class="parameter_annotations"> </td>
1166
+ </tr>
1167
+ <tr>
1168
+ <td class="parameter_name"><p>p</p></td>
1169
+ <td class="parameter_description"><p>the translation coordinates</p></td>
1170
+ <td class="parameter_annotations"> </td>
1171
+ </tr>
1172
+ </tbody>
1173
+ </table></div>
1174
+ </div>
1175
+ <div class="refsect3">
1176
+ <a name="graphene-matrix-init-translate.returns"></a><h4>Returns</h4>
1177
+ <p> the initialized matrix. </p>
1178
+ <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
1179
+ </div>
1180
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
1181
+ </div>
1182
+ <hr>
1183
+ <div class="refsect2">
1184
+ <a name="graphene-matrix-init-rotate"></a><h3>graphene_matrix_init_rotate ()</h3>
1185
+ <pre class="programlisting"><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
1186
+ graphene_matrix_init_rotate (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
1187
+ <em class="parameter"><code><span class="type">float</span> angle</code></em>,
1188
+ <em class="parameter"><code>const <a class="link" href="graphene-Vectors.html#graphene-vec3-t" title="graphene_vec3_t"><span class="type">graphene_vec3_t</span></a> *axis</code></em>);</pre>
1189
+ <p>Initializes <em class="parameter"><code>m</code></em>
1190
+ to represent a rotation of <em class="parameter"><code>angle</code></em>
1191
+ degrees on
1192
+ the axis represented by the <em class="parameter"><code>axis</code></em>
1193
+ vector.</p>
1194
+ <div class="refsect3">
1195
+ <a name="graphene-matrix-init-rotate.parameters"></a><h4>Parameters</h4>
1196
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1197
+ <colgroup>
1198
+ <col width="150px" class="parameters_name">
1199
+ <col class="parameters_description">
1200
+ <col width="200px" class="parameters_annotations">
1201
+ </colgroup>
1202
+ <tbody>
1203
+ <tr>
1204
+ <td class="parameter_name"><p>m</p></td>
1205
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1206
+ <td class="parameter_annotations"> </td>
1207
+ </tr>
1208
+ <tr>
1209
+ <td class="parameter_name"><p>angle</p></td>
1210
+ <td class="parameter_description"><p>the rotation angle, in degrees</p></td>
1211
+ <td class="parameter_annotations"> </td>
1212
+ </tr>
1213
+ <tr>
1214
+ <td class="parameter_name"><p>axis</p></td>
1215
+ <td class="parameter_description"><p>the axis vector as a <a class="link" href="graphene-Vectors.html#graphene-vec3-t" title="graphene_vec3_t"><span class="type">graphene_vec3_t</span></a></p></td>
1216
+ <td class="parameter_annotations"> </td>
1217
+ </tr>
1218
+ </tbody>
1219
+ </table></div>
1220
+ </div>
1221
+ <div class="refsect3">
1222
+ <a name="graphene-matrix-init-rotate.returns"></a><h4>Returns</h4>
1223
+ <p> the initialized matrix. </p>
1224
+ <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
1225
+ </div>
1226
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
1227
+ </div>
1228
+ <hr>
1229
+ <div class="refsect2">
1230
+ <a name="graphene-matrix-init-skew"></a><h3>graphene_matrix_init_skew ()</h3>
1231
+ <pre class="programlisting"><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="returnvalue">graphene_matrix_t</span></a> *
1232
+ graphene_matrix_init_skew (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
1233
+ <em class="parameter"><code><span class="type">float</span> x_skew</code></em>,
1234
+ <em class="parameter"><code><span class="type">float</span> y_skew</code></em>);</pre>
1235
+ <p>Initializes a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> with a skew transformation
1236
+ with the given factors.</p>
1237
+ <div class="refsect3">
1238
+ <a name="graphene-matrix-init-skew.parameters"></a><h4>Parameters</h4>
1239
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1240
+ <colgroup>
1241
+ <col width="150px" class="parameters_name">
1242
+ <col class="parameters_description">
1243
+ <col width="200px" class="parameters_annotations">
1244
+ </colgroup>
1245
+ <tbody>
1246
+ <tr>
1247
+ <td class="parameter_name"><p>m</p></td>
1248
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1249
+ <td class="parameter_annotations"> </td>
1250
+ </tr>
1251
+ <tr>
1252
+ <td class="parameter_name"><p>x_skew</p></td>
1253
+ <td class="parameter_description"><p>skew factor on the X axis</p></td>
1254
+ <td class="parameter_annotations"> </td>
1255
+ </tr>
1256
+ <tr>
1257
+ <td class="parameter_name"><p>y_skew</p></td>
1258
+ <td class="parameter_description"><p>skew factor on the Y axis</p></td>
1259
+ <td class="parameter_annotations"> </td>
1260
+ </tr>
1261
+ </tbody>
1262
+ </table></div>
1263
+ </div>
1264
+ <div class="refsect3">
1265
+ <a name="graphene-matrix-init-skew.returns"></a><h4>Returns</h4>
1266
+ <p> the initialized matrix. </p>
1267
+ <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
1268
+ </div>
1269
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
1270
+ </div>
1271
+ <hr>
1272
+ <div class="refsect2">
1273
+ <a name="graphene-matrix-is-identity"></a><h3>graphene_matrix_is_identity ()</h3>
1274
+ <pre class="programlisting"><span class="returnvalue">bool</span>
1275
+ graphene_matrix_is_identity (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>);</pre>
1276
+ <p>Checks whether the given <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> is the identity matrix.</p>
1277
+ <div class="refsect3">
1278
+ <a name="graphene-matrix-is-identity.parameters"></a><h4>Parameters</h4>
1279
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1280
+ <colgroup>
1281
+ <col width="150px" class="parameters_name">
1282
+ <col class="parameters_description">
1283
+ <col width="200px" class="parameters_annotations">
1284
+ </colgroup>
1285
+ <tbody><tr>
1286
+ <td class="parameter_name"><p>m</p></td>
1287
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1288
+ <td class="parameter_annotations"> </td>
1289
+ </tr></tbody>
1290
+ </table></div>
1291
+ </div>
1292
+ <div class="refsect3">
1293
+ <a name="graphene-matrix-is-identity.returns"></a><h4>Returns</h4>
1294
+ <p> <code class="literal">true</code> if the matrix is the identity matrix</p>
1295
+ </div>
1296
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
1297
+ </div>
1298
+ <hr>
1299
+ <div class="refsect2">
1300
+ <a name="graphene-matrix-is-2d"></a><h3>graphene_matrix_is_2d ()</h3>
1301
+ <pre class="programlisting"><span class="returnvalue">bool</span>
1302
+ graphene_matrix_is_2d (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>);</pre>
1303
+ <p>Checks whether the given <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> is compatible with an
1304
+ a 2D affine transformation matrix.</p>
1305
+ <div class="refsect3">
1306
+ <a name="graphene-matrix-is-2d.parameters"></a><h4>Parameters</h4>
1307
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1308
+ <colgroup>
1309
+ <col width="150px" class="parameters_name">
1310
+ <col class="parameters_description">
1311
+ <col width="200px" class="parameters_annotations">
1312
+ </colgroup>
1313
+ <tbody><tr>
1314
+ <td class="parameter_name"><p>m</p></td>
1315
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1316
+ <td class="parameter_annotations"> </td>
1317
+ </tr></tbody>
1318
+ </table></div>
1319
+ </div>
1320
+ <div class="refsect3">
1321
+ <a name="graphene-matrix-is-2d.returns"></a><h4>Returns</h4>
1322
+ <p> <code class="literal">true</code> if the matrix is compatible with an affine
1323
+ transformation matrix</p>
1324
+ </div>
1325
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
1326
+ </div>
1327
+ <hr>
1328
+ <div class="refsect2">
1329
+ <a name="graphene-matrix-is-backface-visible"></a><h3>graphene_matrix_is_backface_visible ()</h3>
1330
+ <pre class="programlisting"><span class="returnvalue">bool</span>
1331
+ graphene_matrix_is_backface_visible (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>);</pre>
1332
+ <p>Checks whether a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> has a visible back face.</p>
1333
+ <div class="refsect3">
1334
+ <a name="graphene-matrix-is-backface-visible.parameters"></a><h4>Parameters</h4>
1335
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1336
+ <colgroup>
1337
+ <col width="150px" class="parameters_name">
1338
+ <col class="parameters_description">
1339
+ <col width="200px" class="parameters_annotations">
1340
+ </colgroup>
1341
+ <tbody><tr>
1342
+ <td class="parameter_name"><p>m</p></td>
1343
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1344
+ <td class="parameter_annotations"> </td>
1345
+ </tr></tbody>
1346
+ </table></div>
1347
+ </div>
1348
+ <div class="refsect3">
1349
+ <a name="graphene-matrix-is-backface-visible.returns"></a><h4>Returns</h4>
1350
+ <p> <code class="literal">true</code> if the back face of the matrix is visible</p>
1351
+ </div>
1352
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
1353
+ </div>
1354
+ <hr>
1355
+ <div class="refsect2">
1356
+ <a name="graphene-matrix-is-singular"></a><h3>graphene_matrix_is_singular ()</h3>
1357
+ <pre class="programlisting"><span class="returnvalue">bool</span>
1358
+ graphene_matrix_is_singular (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>);</pre>
1359
+ <p>Checks whether a matrix is singular.</p>
1360
+ <div class="refsect3">
1361
+ <a name="graphene-matrix-is-singular.parameters"></a><h4>Parameters</h4>
1362
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1363
+ <colgroup>
1364
+ <col width="150px" class="parameters_name">
1365
+ <col class="parameters_description">
1366
+ <col width="200px" class="parameters_annotations">
1367
+ </colgroup>
1368
+ <tbody><tr>
1369
+ <td class="parameter_name"><p>m</p></td>
1370
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1371
+ <td class="parameter_annotations"> </td>
1372
+ </tr></tbody>
1373
+ </table></div>
1374
+ </div>
1375
+ <div class="refsect3">
1376
+ <a name="graphene-matrix-is-singular.returns"></a><h4>Returns</h4>
1377
+ <p> <code class="literal">true</code> if the matrix is singular</p>
1378
+ </div>
1379
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
1380
+ </div>
1381
+ <hr>
1382
+ <div class="refsect2">
1383
+ <a name="graphene-matrix-to-float"></a><h3>graphene_matrix_to_float ()</h3>
1384
+ <pre class="programlisting"><span class="returnvalue">void</span>
1385
+ graphene_matrix_to_float (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
1386
+ <em class="parameter"><code><span class="type">float</span> *v</code></em>);</pre>
1387
+ <p>Converts a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> to an array of floating point
1388
+ values.</p>
1389
+ <div class="refsect3">
1390
+ <a name="graphene-matrix-to-float.parameters"></a><h4>Parameters</h4>
1391
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1392
+ <colgroup>
1393
+ <col width="150px" class="parameters_name">
1394
+ <col class="parameters_description">
1395
+ <col width="200px" class="parameters_annotations">
1396
+ </colgroup>
1397
+ <tbody>
1398
+ <tr>
1399
+ <td class="parameter_name"><p>m</p></td>
1400
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1401
+ <td class="parameter_annotations"> </td>
1402
+ </tr>
1403
+ <tr>
1404
+ <td class="parameter_name"><p>v</p></td>
1405
+ <td class="parameter_description"><p> return location
1406
+ for an array of floating point values. The array must be capable
1407
+ of holding at least 16 values. </p></td>
1408
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> fixed-size=16][<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
1409
+ </tr>
1410
+ </tbody>
1411
+ </table></div>
1412
+ </div>
1413
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
1414
+ </div>
1415
+ <hr>
1416
+ <div class="refsect2">
1417
+ <a name="graphene-matrix-to-2d"></a><h3>graphene_matrix_to_2d ()</h3>
1418
+ <pre class="programlisting"><span class="returnvalue">bool</span>
1419
+ graphene_matrix_to_2d (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
1420
+ <em class="parameter"><code><span class="type">double</span> *xx</code></em>,
1421
+ <em class="parameter"><code><span class="type">double</span> *yx</code></em>,
1422
+ <em class="parameter"><code><span class="type">double</span> *xy</code></em>,
1423
+ <em class="parameter"><code><span class="type">double</span> *yy</code></em>,
1424
+ <em class="parameter"><code><span class="type">double</span> *x_0</code></em>,
1425
+ <em class="parameter"><code><span class="type">double</span> *y_0</code></em>);</pre>
1426
+ <p>Converts a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> to an affine transformation
1427
+ matrix, if the given matrix is compatible.</p>
1428
+ <p>The returned values have the following layout:</p>
1429
+ <div class="informalexample">
1430
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
1431
+ <tbody>
1432
+ <tr>
1433
+ <td class="listing_lines" align="right"><pre>1
1434
+ 2
1435
+ 3</pre></td>
1436
+ <td class="listing_code"><pre class="programlisting"><span class="symbol">|</span><span class="normal"> </span><span class="usertype">xx</span><span class="normal"> yx </span><span class="symbol">|</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> a b </span><span class="number">0</span><span class="normal"> </span><span class="symbol">|</span>
1437
+ <span class="symbol">|</span><span class="normal"> </span><span class="usertype">xy</span><span class="normal"> yy </span><span class="symbol">|</span><span class="normal"> </span><span class="symbol">=</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> c d </span><span class="number">0</span><span class="normal"> </span><span class="symbol">|</span>
1438
+ <span class="symbol">|</span><span class="normal"> </span><span class="usertype">x0</span><span class="normal"> y0 </span><span class="symbol">|</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> tx ty </span><span class="number">1</span><span class="normal"> </span><span class="symbol">|</span></pre></td>
1439
+ </tr>
1440
+ </tbody>
1441
+ </table>
1442
+ </div>
1443
+
1444
+ <p></p>
1445
+ <p>This function can be used to convert between a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a>
1446
+ and a matrix type from other libraries.</p>
1447
+ <div class="refsect3">
1448
+ <a name="graphene-matrix-to-2d.parameters"></a><h4>Parameters</h4>
1449
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1450
+ <colgroup>
1451
+ <col width="150px" class="parameters_name">
1452
+ <col class="parameters_description">
1453
+ <col width="200px" class="parameters_annotations">
1454
+ </colgroup>
1455
+ <tbody>
1456
+ <tr>
1457
+ <td class="parameter_name"><p>m</p></td>
1458
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1459
+ <td class="parameter_annotations"> </td>
1460
+ </tr>
1461
+ <tr>
1462
+ <td class="parameter_name"><p>xx</p></td>
1463
+ <td class="parameter_description"><p> return location for the xx member. </p></td>
1464
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
1465
+ </tr>
1466
+ <tr>
1467
+ <td class="parameter_name"><p>yx</p></td>
1468
+ <td class="parameter_description"><p> return location for the yx member. </p></td>
1469
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
1470
+ </tr>
1471
+ <tr>
1472
+ <td class="parameter_name"><p>xy</p></td>
1473
+ <td class="parameter_description"><p> return location for the xy member. </p></td>
1474
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
1475
+ </tr>
1476
+ <tr>
1477
+ <td class="parameter_name"><p>yy</p></td>
1478
+ <td class="parameter_description"><p> return location for the yy member. </p></td>
1479
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
1480
+ </tr>
1481
+ <tr>
1482
+ <td class="parameter_name"><p>x_0</p></td>
1483
+ <td class="parameter_description"><p> return location for the x0 member. </p></td>
1484
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
1485
+ </tr>
1486
+ <tr>
1487
+ <td class="parameter_name"><p>y_0</p></td>
1488
+ <td class="parameter_description"><p> return location for the y0 member. </p></td>
1489
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
1490
+ </tr>
1491
+ </tbody>
1492
+ </table></div>
1493
+ </div>
1494
+ <div class="refsect3">
1495
+ <a name="graphene-matrix-to-2d.returns"></a><h4>Returns</h4>
1496
+ <p> <code class="literal">true</code> if the matrix is compatible with an affine
1497
+ transformation matrix</p>
1498
+ </div>
1499
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
1500
+ </div>
1501
+ <hr>
1502
+ <div class="refsect2">
1503
+ <a name="graphene-matrix-get-row"></a><h3>graphene_matrix_get_row ()</h3>
1504
+ <pre class="programlisting"><span class="returnvalue">void</span>
1505
+ graphene_matrix_get_row (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
1506
+ <em class="parameter"><code>unsigned <span class="type">int</span> index_</code></em>,
1507
+ <em class="parameter"><code><a class="link" href="graphene-Vectors.html#graphene-vec4-t" title="graphene_vec4_t"><span class="type">graphene_vec4_t</span></a> *res</code></em>);</pre>
1508
+ <p>Retrieves the given row vector at <em class="parameter"><code>index_</code></em>
1509
+ inside a matrix.</p>
1510
+ <div class="refsect3">
1511
+ <a name="graphene-matrix-get-row.parameters"></a><h4>Parameters</h4>
1512
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1513
+ <colgroup>
1514
+ <col width="150px" class="parameters_name">
1515
+ <col class="parameters_description">
1516
+ <col width="200px" class="parameters_annotations">
1517
+ </colgroup>
1518
+ <tbody>
1519
+ <tr>
1520
+ <td class="parameter_name"><p>m</p></td>
1521
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1522
+ <td class="parameter_annotations"> </td>
1523
+ </tr>
1524
+ <tr>
1525
+ <td class="parameter_name"><p>index_</p></td>
1526
+ <td class="parameter_description"><p>the index of the row vector, between 0 and 3</p></td>
1527
+ <td class="parameter_annotations"> </td>
1528
+ </tr>
1529
+ <tr>
1530
+ <td class="parameter_name"><p>res</p></td>
1531
+ <td class="parameter_description"><p> return location for the <a class="link" href="graphene-Vectors.html#graphene-vec4-t" title="graphene_vec4_t"><span class="type">graphene_vec4_t</span></a>
1532
+ that is used to store the row vector. </p></td>
1533
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
1534
+ </tr>
1535
+ </tbody>
1536
+ </table></div>
1537
+ </div>
1538
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
1539
+ </div>
1540
+ <hr>
1541
+ <div class="refsect2">
1542
+ <a name="graphene-matrix-get-value"></a><h3>graphene_matrix_get_value ()</h3>
1543
+ <pre class="programlisting"><span class="returnvalue">float</span>
1544
+ graphene_matrix_get_value (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
1545
+ <em class="parameter"><code>unsigned <span class="type">int</span> row</code></em>,
1546
+ <em class="parameter"><code>unsigned <span class="type">int</span> col</code></em>);</pre>
1547
+ <p>Retrieves the value at the given <em class="parameter"><code>row</code></em>
1548
+ and <em class="parameter"><code>col</code></em>
1549
+ index.</p>
1550
+ <div class="refsect3">
1551
+ <a name="graphene-matrix-get-value.parameters"></a><h4>Parameters</h4>
1552
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1553
+ <colgroup>
1554
+ <col width="150px" class="parameters_name">
1555
+ <col class="parameters_description">
1556
+ <col width="200px" class="parameters_annotations">
1557
+ </colgroup>
1558
+ <tbody>
1559
+ <tr>
1560
+ <td class="parameter_name"><p>m</p></td>
1561
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1562
+ <td class="parameter_annotations"> </td>
1563
+ </tr>
1564
+ <tr>
1565
+ <td class="parameter_name"><p>row</p></td>
1566
+ <td class="parameter_description"><p>the row index</p></td>
1567
+ <td class="parameter_annotations"> </td>
1568
+ </tr>
1569
+ <tr>
1570
+ <td class="parameter_name"><p>col</p></td>
1571
+ <td class="parameter_description"><p>the column index</p></td>
1572
+ <td class="parameter_annotations"> </td>
1573
+ </tr>
1574
+ </tbody>
1575
+ </table></div>
1576
+ </div>
1577
+ <div class="refsect3">
1578
+ <a name="graphene-matrix-get-value.returns"></a><h4>Returns</h4>
1579
+ <p> the value at the given indices</p>
1580
+ </div>
1581
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
1582
+ </div>
1583
+ <hr>
1584
+ <div class="refsect2">
1585
+ <a name="graphene-matrix-multiply"></a><h3>graphene_matrix_multiply ()</h3>
1586
+ <pre class="programlisting"><span class="returnvalue">void</span>
1587
+ graphene_matrix_multiply (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *a</code></em>,
1588
+ <em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *b</code></em>,
1589
+ <em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *res</code></em>);</pre>
1590
+ <p>Multiplies two <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a>.</p>
1591
+ <p>Remember: matrix multiplication is not commutative, except for the
1592
+ identity matrix; the product of this multiplication is (A * B).</p>
1593
+ <div class="refsect3">
1594
+ <a name="graphene-matrix-multiply.parameters"></a><h4>Parameters</h4>
1595
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1596
+ <colgroup>
1597
+ <col width="150px" class="parameters_name">
1598
+ <col class="parameters_description">
1599
+ <col width="200px" class="parameters_annotations">
1600
+ </colgroup>
1601
+ <tbody>
1602
+ <tr>
1603
+ <td class="parameter_name"><p>a</p></td>
1604
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1605
+ <td class="parameter_annotations"> </td>
1606
+ </tr>
1607
+ <tr>
1608
+ <td class="parameter_name"><p>b</p></td>
1609
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1610
+ <td class="parameter_annotations"> </td>
1611
+ </tr>
1612
+ <tr>
1613
+ <td class="parameter_name"><p>res</p></td>
1614
+ <td class="parameter_description"><p> return location for the matrix
1615
+ result. </p></td>
1616
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
1617
+ </tr>
1618
+ </tbody>
1619
+ </table></div>
1620
+ </div>
1621
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
1622
+ </div>
1623
+ <hr>
1624
+ <div class="refsect2">
1625
+ <a name="graphene-matrix-determinant"></a><h3>graphene_matrix_determinant ()</h3>
1626
+ <pre class="programlisting"><span class="returnvalue">float</span>
1627
+ graphene_matrix_determinant (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>);</pre>
1628
+ <p>Computes the determinant of the given matrix.</p>
1629
+ <div class="refsect3">
1630
+ <a name="graphene-matrix-determinant.parameters"></a><h4>Parameters</h4>
1631
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1632
+ <colgroup>
1633
+ <col width="150px" class="parameters_name">
1634
+ <col class="parameters_description">
1635
+ <col width="200px" class="parameters_annotations">
1636
+ </colgroup>
1637
+ <tbody><tr>
1638
+ <td class="parameter_name"><p>m</p></td>
1639
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1640
+ <td class="parameter_annotations"> </td>
1641
+ </tr></tbody>
1642
+ </table></div>
1643
+ </div>
1644
+ <div class="refsect3">
1645
+ <a name="graphene-matrix-determinant.returns"></a><h4>Returns</h4>
1646
+ <p> the value of the determinant</p>
1647
+ </div>
1648
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
1649
+ </div>
1650
+ <hr>
1651
+ <div class="refsect2">
1652
+ <a name="graphene-matrix-transform-vec4"></a><h3>graphene_matrix_transform_vec4 ()</h3>
1653
+ <pre class="programlisting"><span class="returnvalue">void</span>
1654
+ graphene_matrix_transform_vec4 (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
1655
+ <em class="parameter"><code>const <a class="link" href="graphene-Vectors.html#graphene-vec4-t" title="graphene_vec4_t"><span class="type">graphene_vec4_t</span></a> *v</code></em>,
1656
+ <em class="parameter"><code><a class="link" href="graphene-Vectors.html#graphene-vec4-t" title="graphene_vec4_t"><span class="type">graphene_vec4_t</span></a> *res</code></em>);</pre>
1657
+ <p>Transforms the given <a class="link" href="graphene-Vectors.html#graphene-vec4-t" title="graphene_vec4_t"><span class="type">graphene_vec4_t</span></a> using the matrix <em class="parameter"><code>m</code></em>
1658
+ .</p>
1659
+ <div class="refsect3">
1660
+ <a name="graphene-matrix-transform-vec4.parameters"></a><h4>Parameters</h4>
1661
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1662
+ <colgroup>
1663
+ <col width="150px" class="parameters_name">
1664
+ <col class="parameters_description">
1665
+ <col width="200px" class="parameters_annotations">
1666
+ </colgroup>
1667
+ <tbody>
1668
+ <tr>
1669
+ <td class="parameter_name"><p>m</p></td>
1670
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1671
+ <td class="parameter_annotations"> </td>
1672
+ </tr>
1673
+ <tr>
1674
+ <td class="parameter_name"><p>v</p></td>
1675
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Vectors.html#graphene-vec4-t" title="graphene_vec4_t"><span class="type">graphene_vec4_t</span></a></p></td>
1676
+ <td class="parameter_annotations"> </td>
1677
+ </tr>
1678
+ <tr>
1679
+ <td class="parameter_name"><p>res</p></td>
1680
+ <td class="parameter_description"><p> return location for a <a class="link" href="graphene-Vectors.html#graphene-vec4-t" title="graphene_vec4_t"><span class="type">graphene_vec4_t</span></a>. </p></td>
1681
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
1682
+ </tr>
1683
+ </tbody>
1684
+ </table></div>
1685
+ </div>
1686
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
1687
+ </div>
1688
+ <hr>
1689
+ <div class="refsect2">
1690
+ <a name="graphene-matrix-transform-vec3"></a><h3>graphene_matrix_transform_vec3 ()</h3>
1691
+ <pre class="programlisting"><span class="returnvalue">void</span>
1692
+ graphene_matrix_transform_vec3 (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
1693
+ <em class="parameter"><code>const <a class="link" href="graphene-Vectors.html#graphene-vec3-t" title="graphene_vec3_t"><span class="type">graphene_vec3_t</span></a> *v</code></em>,
1694
+ <em class="parameter"><code><a class="link" href="graphene-Vectors.html#graphene-vec3-t" title="graphene_vec3_t"><span class="type">graphene_vec3_t</span></a> *res</code></em>);</pre>
1695
+ <p>Transforms the given <a class="link" href="graphene-Vectors.html#graphene-vec3-t" title="graphene_vec3_t"><span class="type">graphene_vec3_t</span></a> using the matrix <em class="parameter"><code>m</code></em>
1696
+ .</p>
1697
+ <div class="refsect3">
1698
+ <a name="graphene-matrix-transform-vec3.parameters"></a><h4>Parameters</h4>
1699
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1700
+ <colgroup>
1701
+ <col width="150px" class="parameters_name">
1702
+ <col class="parameters_description">
1703
+ <col width="200px" class="parameters_annotations">
1704
+ </colgroup>
1705
+ <tbody>
1706
+ <tr>
1707
+ <td class="parameter_name"><p>m</p></td>
1708
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1709
+ <td class="parameter_annotations"> </td>
1710
+ </tr>
1711
+ <tr>
1712
+ <td class="parameter_name"><p>v</p></td>
1713
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Vectors.html#graphene-vec3-t" title="graphene_vec3_t"><span class="type">graphene_vec3_t</span></a></p></td>
1714
+ <td class="parameter_annotations"> </td>
1715
+ </tr>
1716
+ <tr>
1717
+ <td class="parameter_name"><p>res</p></td>
1718
+ <td class="parameter_description"><p> return location for a <a class="link" href="graphene-Vectors.html#graphene-vec3-t" title="graphene_vec3_t"><span class="type">graphene_vec3_t</span></a>. </p></td>
1719
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
1720
+ </tr>
1721
+ </tbody>
1722
+ </table></div>
1723
+ </div>
1724
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
1725
+ </div>
1726
+ <hr>
1727
+ <div class="refsect2">
1728
+ <a name="graphene-matrix-transform-point"></a><h3>graphene_matrix_transform_point ()</h3>
1729
+ <pre class="programlisting"><span class="returnvalue">void</span>
1730
+ graphene_matrix_transform_point (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
1731
+ <em class="parameter"><code>const <a class="link" href="graphene-Point.html#graphene-point-t" title="graphene_point_t"><span class="type">graphene_point_t</span></a> *p</code></em>,
1732
+ <em class="parameter"><code><a class="link" href="graphene-Point.html#graphene-point-t" title="graphene_point_t"><span class="type">graphene_point_t</span></a> *res</code></em>);</pre>
1733
+ <p>Transforms the given <a class="link" href="graphene-Point.html#graphene-point-t" title="graphene_point_t"><span class="type">graphene_point_t</span></a> using the matrix <em class="parameter"><code>m</code></em>
1734
+ .</p>
1735
+ <div class="refsect3">
1736
+ <a name="graphene-matrix-transform-point.parameters"></a><h4>Parameters</h4>
1737
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1738
+ <colgroup>
1739
+ <col width="150px" class="parameters_name">
1740
+ <col class="parameters_description">
1741
+ <col width="200px" class="parameters_annotations">
1742
+ </colgroup>
1743
+ <tbody>
1744
+ <tr>
1745
+ <td class="parameter_name"><p>m</p></td>
1746
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1747
+ <td class="parameter_annotations"> </td>
1748
+ </tr>
1749
+ <tr>
1750
+ <td class="parameter_name"><p>p</p></td>
1751
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Point.html#graphene-point-t" title="graphene_point_t"><span class="type">graphene_point_t</span></a></p></td>
1752
+ <td class="parameter_annotations"> </td>
1753
+ </tr>
1754
+ <tr>
1755
+ <td class="parameter_name"><p>res</p></td>
1756
+ <td class="parameter_description"><p> return location for the
1757
+ transformed <a class="link" href="graphene-Point.html#graphene-point-t" title="graphene_point_t"><span class="type">graphene_point_t</span></a>. </p></td>
1758
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
1759
+ </tr>
1760
+ </tbody>
1761
+ </table></div>
1762
+ </div>
1763
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
1764
+ </div>
1765
+ <hr>
1766
+ <div class="refsect2">
1767
+ <a name="graphene-matrix-transform-point3d"></a><h3>graphene_matrix_transform_point3d ()</h3>
1768
+ <pre class="programlisting"><span class="returnvalue">void</span>
1769
+ graphene_matrix_transform_point3d (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
1770
+ <em class="parameter"><code>const <a class="link" href="graphene-Point3D.html#graphene-point3d-t" title="graphene_point3d_t"><span class="type">graphene_point3d_t</span></a> *p</code></em>,
1771
+ <em class="parameter"><code><a class="link" href="graphene-Point3D.html#graphene-point3d-t" title="graphene_point3d_t"><span class="type">graphene_point3d_t</span></a> *res</code></em>);</pre>
1772
+ <p>Transforms the given <a class="link" href="graphene-Point3D.html#graphene-point3d-t" title="graphene_point3d_t"><span class="type">graphene_point3d_t</span></a> using the matrix <em class="parameter"><code>m</code></em>
1773
+ .</p>
1774
+ <p>Unlike <a class="link" href="graphene-Matrix.html#graphene-matrix-transform-vec3" title="graphene_matrix_transform_vec3 ()"><code class="function">graphene_matrix_transform_vec3()</code></a>, this function will take into
1775
+ account the fourth row vector of the <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a>.</p>
1776
+ <div class="refsect3">
1777
+ <a name="graphene-matrix-transform-point3d.parameters"></a><h4>Parameters</h4>
1778
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1779
+ <colgroup>
1780
+ <col width="150px" class="parameters_name">
1781
+ <col class="parameters_description">
1782
+ <col width="200px" class="parameters_annotations">
1783
+ </colgroup>
1784
+ <tbody>
1785
+ <tr>
1786
+ <td class="parameter_name"><p>m</p></td>
1787
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1788
+ <td class="parameter_annotations"> </td>
1789
+ </tr>
1790
+ <tr>
1791
+ <td class="parameter_name"><p>p</p></td>
1792
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Point3D.html#graphene-point3d-t" title="graphene_point3d_t"><span class="type">graphene_point3d_t</span></a></p></td>
1793
+ <td class="parameter_annotations"> </td>
1794
+ </tr>
1795
+ <tr>
1796
+ <td class="parameter_name"><p>res</p></td>
1797
+ <td class="parameter_description"><p> return location for the result. </p></td>
1798
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
1799
+ </tr>
1800
+ </tbody>
1801
+ </table></div>
1802
+ </div>
1803
+ <p class="since">Since: <a class="link" href="ix04.html#api-index-1.2">1.2</a></p>
1804
+ </div>
1805
+ <hr>
1806
+ <div class="refsect2">
1807
+ <a name="graphene-matrix-transform-rect"></a><h3>graphene_matrix_transform_rect ()</h3>
1808
+ <pre class="programlisting"><span class="returnvalue">void</span>
1809
+ graphene_matrix_transform_rect (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
1810
+ <em class="parameter"><code>const <a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a> *r</code></em>,
1811
+ <em class="parameter"><code><a class="link" href="graphene-Quad.html#graphene-quad-t" title="graphene_quad_t"><span class="type">graphene_quad_t</span></a> *res</code></em>);</pre>
1812
+ <p>Transforms a <a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a> using the given matrix <em class="parameter"><code>m</code></em>
1813
+ . The
1814
+ result is a coplanar quad.</p>
1815
+ <div class="refsect3">
1816
+ <a name="graphene-matrix-transform-rect.parameters"></a><h4>Parameters</h4>
1817
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1818
+ <colgroup>
1819
+ <col width="150px" class="parameters_name">
1820
+ <col class="parameters_description">
1821
+ <col width="200px" class="parameters_annotations">
1822
+ </colgroup>
1823
+ <tbody>
1824
+ <tr>
1825
+ <td class="parameter_name"><p>m</p></td>
1826
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1827
+ <td class="parameter_annotations"> </td>
1828
+ </tr>
1829
+ <tr>
1830
+ <td class="parameter_name"><p>r</p></td>
1831
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a></p></td>
1832
+ <td class="parameter_annotations"> </td>
1833
+ </tr>
1834
+ <tr>
1835
+ <td class="parameter_name"><p>res</p></td>
1836
+ <td class="parameter_description"><p> return location for the
1837
+ transformed quad. </p></td>
1838
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
1839
+ </tr>
1840
+ </tbody>
1841
+ </table></div>
1842
+ </div>
1843
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
1844
+ </div>
1845
+ <hr>
1846
+ <div class="refsect2">
1847
+ <a name="graphene-matrix-transform-bounds"></a><h3>graphene_matrix_transform_bounds ()</h3>
1848
+ <pre class="programlisting"><span class="returnvalue">void</span>
1849
+ graphene_matrix_transform_bounds (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
1850
+ <em class="parameter"><code>const <a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a> *r</code></em>,
1851
+ <em class="parameter"><code><a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a> *res</code></em>);</pre>
1852
+ <p>Transforms a <a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a> using the given matrix <em class="parameter"><code>m</code></em>
1853
+ . The
1854
+ result is the bounding box containing the coplanar quad.</p>
1855
+ <div class="refsect3">
1856
+ <a name="graphene-matrix-transform-bounds.parameters"></a><h4>Parameters</h4>
1857
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1858
+ <colgroup>
1859
+ <col width="150px" class="parameters_name">
1860
+ <col class="parameters_description">
1861
+ <col width="200px" class="parameters_annotations">
1862
+ </colgroup>
1863
+ <tbody>
1864
+ <tr>
1865
+ <td class="parameter_name"><p>m</p></td>
1866
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1867
+ <td class="parameter_annotations"> </td>
1868
+ </tr>
1869
+ <tr>
1870
+ <td class="parameter_name"><p>r</p></td>
1871
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a></p></td>
1872
+ <td class="parameter_annotations"> </td>
1873
+ </tr>
1874
+ <tr>
1875
+ <td class="parameter_name"><p>res</p></td>
1876
+ <td class="parameter_description"><p> return location for the bounds
1877
+ of the transformed rectangle. </p></td>
1878
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
1879
+ </tr>
1880
+ </tbody>
1881
+ </table></div>
1882
+ </div>
1883
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
1884
+ </div>
1885
+ <hr>
1886
+ <div class="refsect2">
1887
+ <a name="graphene-matrix-transform-box"></a><h3>graphene_matrix_transform_box ()</h3>
1888
+ <pre class="programlisting"><span class="returnvalue">void</span>
1889
+ graphene_matrix_transform_box (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
1890
+ <em class="parameter"><code>const <a class="link" href="graphene-Box.html#graphene-box-t" title="graphene_box_t"><span class="type">graphene_box_t</span></a> *b</code></em>,
1891
+ <em class="parameter"><code><a class="link" href="graphene-Box.html#graphene-box-t" title="graphene_box_t"><span class="type">graphene_box_t</span></a> *res</code></em>);</pre>
1892
+ <p>Transforms a <a class="link" href="graphene-Box.html#graphene-box-t" title="graphene_box_t"><span class="type">graphene_box_t</span></a> using the given matrix <em class="parameter"><code>m</code></em>
1893
+ . The
1894
+ result is the bounding box containing the transformed box.</p>
1895
+ <div class="refsect3">
1896
+ <a name="graphene-matrix-transform-box.parameters"></a><h4>Parameters</h4>
1897
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1898
+ <colgroup>
1899
+ <col width="150px" class="parameters_name">
1900
+ <col class="parameters_description">
1901
+ <col width="200px" class="parameters_annotations">
1902
+ </colgroup>
1903
+ <tbody>
1904
+ <tr>
1905
+ <td class="parameter_name"><p>m</p></td>
1906
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1907
+ <td class="parameter_annotations"> </td>
1908
+ </tr>
1909
+ <tr>
1910
+ <td class="parameter_name"><p>b</p></td>
1911
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Box.html#graphene-box-t" title="graphene_box_t"><span class="type">graphene_box_t</span></a></p></td>
1912
+ <td class="parameter_annotations"> </td>
1913
+ </tr>
1914
+ <tr>
1915
+ <td class="parameter_name"><p>res</p></td>
1916
+ <td class="parameter_description"><p> return location for the bounds
1917
+ of the transformed box. </p></td>
1918
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
1919
+ </tr>
1920
+ </tbody>
1921
+ </table></div>
1922
+ </div>
1923
+ <p class="since">Since: <a class="link" href="ix04.html#api-index-1.2">1.2</a></p>
1924
+ </div>
1925
+ <hr>
1926
+ <div class="refsect2">
1927
+ <a name="graphene-matrix-transform-sphere"></a><h3>graphene_matrix_transform_sphere ()</h3>
1928
+ <pre class="programlisting"><span class="returnvalue">void</span>
1929
+ graphene_matrix_transform_sphere (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
1930
+ <em class="parameter"><code>const <a class="link" href="graphene-Sphere.html#graphene-sphere-t" title="graphene_sphere_t"><span class="type">graphene_sphere_t</span></a> *s</code></em>,
1931
+ <em class="parameter"><code><a class="link" href="graphene-Sphere.html#graphene-sphere-t" title="graphene_sphere_t"><span class="type">graphene_sphere_t</span></a> *res</code></em>);</pre>
1932
+ <p>Transforms a <a class="link" href="graphene-Sphere.html#graphene-sphere-t" title="graphene_sphere_t"><span class="type">graphene_sphere_t</span></a> using the given matrix <em class="parameter"><code>m</code></em>
1933
+ . The
1934
+ result is the bounding sphere containing the transformed sphere.</p>
1935
+ <div class="refsect3">
1936
+ <a name="graphene-matrix-transform-sphere.parameters"></a><h4>Parameters</h4>
1937
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1938
+ <colgroup>
1939
+ <col width="150px" class="parameters_name">
1940
+ <col class="parameters_description">
1941
+ <col width="200px" class="parameters_annotations">
1942
+ </colgroup>
1943
+ <tbody>
1944
+ <tr>
1945
+ <td class="parameter_name"><p>m</p></td>
1946
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1947
+ <td class="parameter_annotations"> </td>
1948
+ </tr>
1949
+ <tr>
1950
+ <td class="parameter_name"><p>s</p></td>
1951
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Sphere.html#graphene-sphere-t" title="graphene_sphere_t"><span class="type">graphene_sphere_t</span></a></p></td>
1952
+ <td class="parameter_annotations"> </td>
1953
+ </tr>
1954
+ <tr>
1955
+ <td class="parameter_name"><p>res</p></td>
1956
+ <td class="parameter_description"><p> return location for the bounds
1957
+ of the transformed sphere. </p></td>
1958
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
1959
+ </tr>
1960
+ </tbody>
1961
+ </table></div>
1962
+ </div>
1963
+ <p class="since">Since: <a class="link" href="ix04.html#api-index-1.2">1.2</a></p>
1964
+ </div>
1965
+ <hr>
1966
+ <div class="refsect2">
1967
+ <a name="graphene-matrix-transform-ray"></a><h3>graphene_matrix_transform_ray ()</h3>
1968
+ <pre class="programlisting"><span class="returnvalue">void</span>
1969
+ graphene_matrix_transform_ray (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
1970
+ <em class="parameter"><code>const <a class="link" href="graphene-Ray.html#graphene-ray-t" title="graphene_ray_t"><span class="type">graphene_ray_t</span></a> *r</code></em>,
1971
+ <em class="parameter"><code><a class="link" href="graphene-Ray.html#graphene-ray-t" title="graphene_ray_t"><span class="type">graphene_ray_t</span></a> *res</code></em>);</pre>
1972
+ <p>Transform a <a class="link" href="graphene-Ray.html#graphene-ray-t" title="graphene_ray_t"><span class="type">graphene_ray_t</span></a> using the given matrix <em class="parameter"><code>m</code></em>
1973
+ .</p>
1974
+ <div class="refsect3">
1975
+ <a name="graphene-matrix-transform-ray.parameters"></a><h4>Parameters</h4>
1976
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
1977
+ <colgroup>
1978
+ <col width="150px" class="parameters_name">
1979
+ <col class="parameters_description">
1980
+ <col width="200px" class="parameters_annotations">
1981
+ </colgroup>
1982
+ <tbody>
1983
+ <tr>
1984
+ <td class="parameter_name"><p>m</p></td>
1985
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
1986
+ <td class="parameter_annotations"> </td>
1987
+ </tr>
1988
+ <tr>
1989
+ <td class="parameter_name"><p>r</p></td>
1990
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Ray.html#graphene-ray-t" title="graphene_ray_t"><span class="type">graphene_ray_t</span></a></p></td>
1991
+ <td class="parameter_annotations"> </td>
1992
+ </tr>
1993
+ <tr>
1994
+ <td class="parameter_name"><p>res</p></td>
1995
+ <td class="parameter_description"><p> return location for the
1996
+ transformed ray. </p></td>
1997
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
1998
+ </tr>
1999
+ </tbody>
2000
+ </table></div>
2001
+ </div>
2002
+ <p class="since">Since: <a class="link" href="ix05.html#api-index-1.4">1.4</a></p>
2003
+ </div>
2004
+ <hr>
2005
+ <div class="refsect2">
2006
+ <a name="graphene-matrix-project-point"></a><h3>graphene_matrix_project_point ()</h3>
2007
+ <pre class="programlisting"><span class="returnvalue">void</span>
2008
+ graphene_matrix_project_point (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
2009
+ <em class="parameter"><code>const <a class="link" href="graphene-Point.html#graphene-point-t" title="graphene_point_t"><span class="type">graphene_point_t</span></a> *p</code></em>,
2010
+ <em class="parameter"><code><a class="link" href="graphene-Point.html#graphene-point-t" title="graphene_point_t"><span class="type">graphene_point_t</span></a> *res</code></em>);</pre>
2011
+ <p>Projects a <a class="link" href="graphene-Point.html#graphene-point-t" title="graphene_point_t"><span class="type">graphene_point_t</span></a> using the matrix <em class="parameter"><code>m</code></em>
2012
+ .</p>
2013
+ <div class="refsect3">
2014
+ <a name="graphene-matrix-project-point.parameters"></a><h4>Parameters</h4>
2015
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2016
+ <colgroup>
2017
+ <col width="150px" class="parameters_name">
2018
+ <col class="parameters_description">
2019
+ <col width="200px" class="parameters_annotations">
2020
+ </colgroup>
2021
+ <tbody>
2022
+ <tr>
2023
+ <td class="parameter_name"><p>m</p></td>
2024
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2025
+ <td class="parameter_annotations"> </td>
2026
+ </tr>
2027
+ <tr>
2028
+ <td class="parameter_name"><p>p</p></td>
2029
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Point.html#graphene-point-t" title="graphene_point_t"><span class="type">graphene_point_t</span></a></p></td>
2030
+ <td class="parameter_annotations"> </td>
2031
+ </tr>
2032
+ <tr>
2033
+ <td class="parameter_name"><p>res</p></td>
2034
+ <td class="parameter_description"><p> return location for the projected
2035
+ point. </p></td>
2036
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
2037
+ </tr>
2038
+ </tbody>
2039
+ </table></div>
2040
+ </div>
2041
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
2042
+ </div>
2043
+ <hr>
2044
+ <div class="refsect2">
2045
+ <a name="graphene-matrix-project-rect-bounds"></a><h3>graphene_matrix_project_rect_bounds ()</h3>
2046
+ <pre class="programlisting"><span class="returnvalue">void</span>
2047
+ graphene_matrix_project_rect_bounds (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
2048
+ <em class="parameter"><code>const <a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a> *r</code></em>,
2049
+ <em class="parameter"><code><a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a> *res</code></em>);</pre>
2050
+ <p>Projects a <a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a> using the given matrix.</p>
2051
+ <p>The resulting rectangle is the bounding box capable of containing
2052
+ fully the projected rectangle.</p>
2053
+ <div class="refsect3">
2054
+ <a name="graphene-matrix-project-rect-bounds.parameters"></a><h4>Parameters</h4>
2055
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2056
+ <colgroup>
2057
+ <col width="150px" class="parameters_name">
2058
+ <col class="parameters_description">
2059
+ <col width="200px" class="parameters_annotations">
2060
+ </colgroup>
2061
+ <tbody>
2062
+ <tr>
2063
+ <td class="parameter_name"><p>m</p></td>
2064
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2065
+ <td class="parameter_annotations"> </td>
2066
+ </tr>
2067
+ <tr>
2068
+ <td class="parameter_name"><p>r</p></td>
2069
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a></p></td>
2070
+ <td class="parameter_annotations"> </td>
2071
+ </tr>
2072
+ <tr>
2073
+ <td class="parameter_name"><p>res</p></td>
2074
+ <td class="parameter_description"><p> return location for the projected
2075
+ rectangle. </p></td>
2076
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
2077
+ </tr>
2078
+ </tbody>
2079
+ </table></div>
2080
+ </div>
2081
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
2082
+ </div>
2083
+ <hr>
2084
+ <div class="refsect2">
2085
+ <a name="graphene-matrix-project-rect"></a><h3>graphene_matrix_project_rect ()</h3>
2086
+ <pre class="programlisting"><span class="returnvalue">void</span>
2087
+ graphene_matrix_project_rect (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
2088
+ <em class="parameter"><code>const <a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a> *r</code></em>,
2089
+ <em class="parameter"><code><a class="link" href="graphene-Quad.html#graphene-quad-t" title="graphene_quad_t"><span class="type">graphene_quad_t</span></a> *res</code></em>);</pre>
2090
+ <p>Projects a <a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a> using the given matrix.</p>
2091
+ <div class="refsect3">
2092
+ <a name="graphene-matrix-project-rect.parameters"></a><h4>Parameters</h4>
2093
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2094
+ <colgroup>
2095
+ <col width="150px" class="parameters_name">
2096
+ <col class="parameters_description">
2097
+ <col width="200px" class="parameters_annotations">
2098
+ </colgroup>
2099
+ <tbody>
2100
+ <tr>
2101
+ <td class="parameter_name"><p>m</p></td>
2102
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2103
+ <td class="parameter_annotations"> </td>
2104
+ </tr>
2105
+ <tr>
2106
+ <td class="parameter_name"><p>r</p></td>
2107
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a></p></td>
2108
+ <td class="parameter_annotations"> </td>
2109
+ </tr>
2110
+ <tr>
2111
+ <td class="parameter_name"><p>res</p></td>
2112
+ <td class="parameter_description"><p> return location for the projected
2113
+ rectangle. </p></td>
2114
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
2115
+ </tr>
2116
+ </tbody>
2117
+ </table></div>
2118
+ </div>
2119
+ <p class="since">Since: <a class="link" href="ix04.html#api-index-1.2">1.2</a></p>
2120
+ </div>
2121
+ <hr>
2122
+ <div class="refsect2">
2123
+ <a name="graphene-matrix-untransform-point"></a><h3>graphene_matrix_untransform_point ()</h3>
2124
+ <pre class="programlisting"><span class="returnvalue">bool</span>
2125
+ graphene_matrix_untransform_point (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
2126
+ <em class="parameter"><code>const <a class="link" href="graphene-Point.html#graphene-point-t" title="graphene_point_t"><span class="type">graphene_point_t</span></a> *p</code></em>,
2127
+ <em class="parameter"><code>const <a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a> *bounds</code></em>,
2128
+ <em class="parameter"><code><a class="link" href="graphene-Point.html#graphene-point-t" title="graphene_point_t"><span class="type">graphene_point_t</span></a> *res</code></em>);</pre>
2129
+ <p>Undoes the transformation of a <a class="link" href="graphene-Point.html#graphene-point-t" title="graphene_point_t"><span class="type">graphene_point_t</span></a> using the
2130
+ given matrix, within the given rectangular <em class="parameter"><code>bounds</code></em>
2131
+ .</p>
2132
+ <div class="refsect3">
2133
+ <a name="graphene-matrix-untransform-point.parameters"></a><h4>Parameters</h4>
2134
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2135
+ <colgroup>
2136
+ <col width="150px" class="parameters_name">
2137
+ <col class="parameters_description">
2138
+ <col width="200px" class="parameters_annotations">
2139
+ </colgroup>
2140
+ <tbody>
2141
+ <tr>
2142
+ <td class="parameter_name"><p>m</p></td>
2143
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2144
+ <td class="parameter_annotations"> </td>
2145
+ </tr>
2146
+ <tr>
2147
+ <td class="parameter_name"><p>p</p></td>
2148
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Point.html#graphene-point-t" title="graphene_point_t"><span class="type">graphene_point_t</span></a></p></td>
2149
+ <td class="parameter_annotations"> </td>
2150
+ </tr>
2151
+ <tr>
2152
+ <td class="parameter_name"><p>bounds</p></td>
2153
+ <td class="parameter_description"><p>the bounds of the transformation</p></td>
2154
+ <td class="parameter_annotations"> </td>
2155
+ </tr>
2156
+ <tr>
2157
+ <td class="parameter_name"><p>res</p></td>
2158
+ <td class="parameter_description"><p> return location for the
2159
+ untransformed point. </p></td>
2160
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
2161
+ </tr>
2162
+ </tbody>
2163
+ </table></div>
2164
+ </div>
2165
+ <div class="refsect3">
2166
+ <a name="graphene-matrix-untransform-point.returns"></a><h4>Returns</h4>
2167
+ <p> <code class="literal">true</code> if the point was successfully untransformed</p>
2168
+ </div>
2169
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
2170
+ </div>
2171
+ <hr>
2172
+ <div class="refsect2">
2173
+ <a name="graphene-matrix-untransform-bounds"></a><h3>graphene_matrix_untransform_bounds ()</h3>
2174
+ <pre class="programlisting"><span class="returnvalue">void</span>
2175
+ graphene_matrix_untransform_bounds (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
2176
+ <em class="parameter"><code>const <a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a> *r</code></em>,
2177
+ <em class="parameter"><code>const <a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a> *bounds</code></em>,
2178
+ <em class="parameter"><code><a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a> *res</code></em>);</pre>
2179
+ <p>Undoes the transformation on the points of a <a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a>
2180
+ using the given matrix, within the given rectangular <em class="parameter"><code>bounds</code></em>
2181
+ .</p>
2182
+ <div class="refsect3">
2183
+ <a name="graphene-matrix-untransform-bounds.parameters"></a><h4>Parameters</h4>
2184
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2185
+ <colgroup>
2186
+ <col width="150px" class="parameters_name">
2187
+ <col class="parameters_description">
2188
+ <col width="200px" class="parameters_annotations">
2189
+ </colgroup>
2190
+ <tbody>
2191
+ <tr>
2192
+ <td class="parameter_name"><p>m</p></td>
2193
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2194
+ <td class="parameter_annotations"> </td>
2195
+ </tr>
2196
+ <tr>
2197
+ <td class="parameter_name"><p>r</p></td>
2198
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Rectangle.html#graphene-rect-t" title="graphene_rect_t"><span class="type">graphene_rect_t</span></a></p></td>
2199
+ <td class="parameter_annotations"> </td>
2200
+ </tr>
2201
+ <tr>
2202
+ <td class="parameter_name"><p>bounds</p></td>
2203
+ <td class="parameter_description"><p>the bounds of the transformation</p></td>
2204
+ <td class="parameter_annotations"> </td>
2205
+ </tr>
2206
+ <tr>
2207
+ <td class="parameter_name"><p>res</p></td>
2208
+ <td class="parameter_description"><p> return location for the
2209
+ untransformed rectangle. </p></td>
2210
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
2211
+ </tr>
2212
+ </tbody>
2213
+ </table></div>
2214
+ </div>
2215
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
2216
+ </div>
2217
+ <hr>
2218
+ <div class="refsect2">
2219
+ <a name="graphene-matrix-unproject-point3d"></a><h3>graphene_matrix_unproject_point3d ()</h3>
2220
+ <pre class="programlisting"><span class="returnvalue">void</span>
2221
+ graphene_matrix_unproject_point3d (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *projection</code></em>,
2222
+ <em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *modelview</code></em>,
2223
+ <em class="parameter"><code>const <a class="link" href="graphene-Point3D.html#graphene-point3d-t" title="graphene_point3d_t"><span class="type">graphene_point3d_t</span></a> *point</code></em>,
2224
+ <em class="parameter"><code><a class="link" href="graphene-Point3D.html#graphene-point3d-t" title="graphene_point3d_t"><span class="type">graphene_point3d_t</span></a> *res</code></em>);</pre>
2225
+ <p>Unprojects the given <em class="parameter"><code>point</code></em>
2226
+ using the <em class="parameter"><code>projection</code></em>
2227
+ matrix and
2228
+ a <em class="parameter"><code>modelview</code></em>
2229
+ matrix.</p>
2230
+ <div class="refsect3">
2231
+ <a name="graphene-matrix-unproject-point3d.parameters"></a><h4>Parameters</h4>
2232
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2233
+ <colgroup>
2234
+ <col width="150px" class="parameters_name">
2235
+ <col class="parameters_description">
2236
+ <col width="200px" class="parameters_annotations">
2237
+ </colgroup>
2238
+ <tbody>
2239
+ <tr>
2240
+ <td class="parameter_name"><p>projection</p></td>
2241
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> for the projection matrix</p></td>
2242
+ <td class="parameter_annotations"> </td>
2243
+ </tr>
2244
+ <tr>
2245
+ <td class="parameter_name"><p>modelview</p></td>
2246
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> for the modelview matrix; this is
2247
+ the inverse of the modelview used when projecting the point</p></td>
2248
+ <td class="parameter_annotations"> </td>
2249
+ </tr>
2250
+ <tr>
2251
+ <td class="parameter_name"><p>point</p></td>
2252
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Point3D.html#graphene-point3d-t" title="graphene_point3d_t"><span class="type">graphene_point3d_t</span></a> with the coordinates of the point</p></td>
2253
+ <td class="parameter_annotations"> </td>
2254
+ </tr>
2255
+ <tr>
2256
+ <td class="parameter_name"><p>res</p></td>
2257
+ <td class="parameter_description"><p> return location for the unprojected
2258
+ point. </p></td>
2259
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
2260
+ </tr>
2261
+ </tbody>
2262
+ </table></div>
2263
+ </div>
2264
+ <p class="since">Since: <a class="link" href="ix04.html#api-index-1.2">1.2</a></p>
2265
+ </div>
2266
+ <hr>
2267
+ <div class="refsect2">
2268
+ <a name="graphene-matrix-translate"></a><h3>graphene_matrix_translate ()</h3>
2269
+ <pre class="programlisting"><span class="returnvalue">void</span>
2270
+ graphene_matrix_translate (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
2271
+ <em class="parameter"><code>const <a class="link" href="graphene-Point3D.html#graphene-point3d-t" title="graphene_point3d_t"><span class="type">graphene_point3d_t</span></a> *pos</code></em>);</pre>
2272
+ <p>Adds a translation transformation to <em class="parameter"><code>m</code></em>
2273
+ using the coordinates
2274
+ of the given <a class="link" href="graphene-Point3D.html#graphene-point3d-t" title="graphene_point3d_t"><span class="type">graphene_point3d_t</span></a>.</p>
2275
+ <div class="refsect3">
2276
+ <a name="graphene-matrix-translate.parameters"></a><h4>Parameters</h4>
2277
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2278
+ <colgroup>
2279
+ <col width="150px" class="parameters_name">
2280
+ <col class="parameters_description">
2281
+ <col width="200px" class="parameters_annotations">
2282
+ </colgroup>
2283
+ <tbody>
2284
+ <tr>
2285
+ <td class="parameter_name"><p>m</p></td>
2286
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2287
+ <td class="parameter_annotations"> </td>
2288
+ </tr>
2289
+ <tr>
2290
+ <td class="parameter_name"><p>pos</p></td>
2291
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Point3D.html#graphene-point3d-t" title="graphene_point3d_t"><span class="type">graphene_point3d_t</span></a></p></td>
2292
+ <td class="parameter_annotations"> </td>
2293
+ </tr>
2294
+ </tbody>
2295
+ </table></div>
2296
+ </div>
2297
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
2298
+ </div>
2299
+ <hr>
2300
+ <div class="refsect2">
2301
+ <a name="graphene-matrix-rotate"></a><h3>graphene_matrix_rotate ()</h3>
2302
+ <pre class="programlisting"><span class="returnvalue">void</span>
2303
+ graphene_matrix_rotate (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
2304
+ <em class="parameter"><code><span class="type">float</span> angle</code></em>,
2305
+ <em class="parameter"><code>const <a class="link" href="graphene-Vectors.html#graphene-vec3-t" title="graphene_vec3_t"><span class="type">graphene_vec3_t</span></a> *axis</code></em>);</pre>
2306
+ <p>Adds a rotation transformation to <em class="parameter"><code>m</code></em>
2307
+ , using the given <em class="parameter"><code>angle</code></em>
2308
+
2309
+ and <em class="parameter"><code>axis</code></em>
2310
+ vector.</p>
2311
+ <div class="refsect3">
2312
+ <a name="graphene-matrix-rotate.parameters"></a><h4>Parameters</h4>
2313
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2314
+ <colgroup>
2315
+ <col width="150px" class="parameters_name">
2316
+ <col class="parameters_description">
2317
+ <col width="200px" class="parameters_annotations">
2318
+ </colgroup>
2319
+ <tbody>
2320
+ <tr>
2321
+ <td class="parameter_name"><p>m</p></td>
2322
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2323
+ <td class="parameter_annotations"> </td>
2324
+ </tr>
2325
+ <tr>
2326
+ <td class="parameter_name"><p>angle</p></td>
2327
+ <td class="parameter_description"><p>the rotation angle, in degrees</p></td>
2328
+ <td class="parameter_annotations"> </td>
2329
+ </tr>
2330
+ <tr>
2331
+ <td class="parameter_name"><p>axis</p></td>
2332
+ <td class="parameter_description"><p>the rotation axis, as a <a class="link" href="graphene-Vectors.html#graphene-vec3-t" title="graphene_vec3_t"><span class="type">graphene_vec3_t</span></a></p></td>
2333
+ <td class="parameter_annotations"> </td>
2334
+ </tr>
2335
+ </tbody>
2336
+ </table></div>
2337
+ </div>
2338
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
2339
+ </div>
2340
+ <hr>
2341
+ <div class="refsect2">
2342
+ <a name="graphene-matrix-rotate-x"></a><h3>graphene_matrix_rotate_x ()</h3>
2343
+ <pre class="programlisting"><span class="returnvalue">void</span>
2344
+ graphene_matrix_rotate_x (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
2345
+ <em class="parameter"><code><span class="type">float</span> angle</code></em>);</pre>
2346
+ <p>Adds a rotation transformation around the X axis to <em class="parameter"><code>m</code></em>
2347
+ , using
2348
+ the given <em class="parameter"><code>angle</code></em>
2349
+ .</p>
2350
+ <div class="refsect3">
2351
+ <a name="graphene-matrix-rotate-x.parameters"></a><h4>Parameters</h4>
2352
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2353
+ <colgroup>
2354
+ <col width="150px" class="parameters_name">
2355
+ <col class="parameters_description">
2356
+ <col width="200px" class="parameters_annotations">
2357
+ </colgroup>
2358
+ <tbody>
2359
+ <tr>
2360
+ <td class="parameter_name"><p>m</p></td>
2361
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2362
+ <td class="parameter_annotations"> </td>
2363
+ </tr>
2364
+ <tr>
2365
+ <td class="parameter_name"><p>angle</p></td>
2366
+ <td class="parameter_description"><p>the rotation angle, in degrees</p></td>
2367
+ <td class="parameter_annotations"> </td>
2368
+ </tr>
2369
+ </tbody>
2370
+ </table></div>
2371
+ </div>
2372
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
2373
+ </div>
2374
+ <hr>
2375
+ <div class="refsect2">
2376
+ <a name="graphene-matrix-rotate-y"></a><h3>graphene_matrix_rotate_y ()</h3>
2377
+ <pre class="programlisting"><span class="returnvalue">void</span>
2378
+ graphene_matrix_rotate_y (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
2379
+ <em class="parameter"><code><span class="type">float</span> angle</code></em>);</pre>
2380
+ <p>Adds a rotation transformation around the Y axis to <em class="parameter"><code>m</code></em>
2381
+ , using
2382
+ the given <em class="parameter"><code>angle</code></em>
2383
+ .</p>
2384
+ <div class="refsect3">
2385
+ <a name="graphene-matrix-rotate-y.parameters"></a><h4>Parameters</h4>
2386
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2387
+ <colgroup>
2388
+ <col width="150px" class="parameters_name">
2389
+ <col class="parameters_description">
2390
+ <col width="200px" class="parameters_annotations">
2391
+ </colgroup>
2392
+ <tbody>
2393
+ <tr>
2394
+ <td class="parameter_name"><p>m</p></td>
2395
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2396
+ <td class="parameter_annotations"> </td>
2397
+ </tr>
2398
+ <tr>
2399
+ <td class="parameter_name"><p>angle</p></td>
2400
+ <td class="parameter_description"><p>the rotation angle, in degrees</p></td>
2401
+ <td class="parameter_annotations"> </td>
2402
+ </tr>
2403
+ </tbody>
2404
+ </table></div>
2405
+ </div>
2406
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
2407
+ </div>
2408
+ <hr>
2409
+ <div class="refsect2">
2410
+ <a name="graphene-matrix-rotate-z"></a><h3>graphene_matrix_rotate_z ()</h3>
2411
+ <pre class="programlisting"><span class="returnvalue">void</span>
2412
+ graphene_matrix_rotate_z (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
2413
+ <em class="parameter"><code><span class="type">float</span> angle</code></em>);</pre>
2414
+ <p>Adds a rotation transformation around the Z axis to <em class="parameter"><code>m</code></em>
2415
+ , using
2416
+ the given <em class="parameter"><code>angle</code></em>
2417
+ .</p>
2418
+ <div class="refsect3">
2419
+ <a name="graphene-matrix-rotate-z.parameters"></a><h4>Parameters</h4>
2420
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2421
+ <colgroup>
2422
+ <col width="150px" class="parameters_name">
2423
+ <col class="parameters_description">
2424
+ <col width="200px" class="parameters_annotations">
2425
+ </colgroup>
2426
+ <tbody>
2427
+ <tr>
2428
+ <td class="parameter_name"><p>m</p></td>
2429
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2430
+ <td class="parameter_annotations"> </td>
2431
+ </tr>
2432
+ <tr>
2433
+ <td class="parameter_name"><p>angle</p></td>
2434
+ <td class="parameter_description"><p>the rotation angle, in degrees</p></td>
2435
+ <td class="parameter_annotations"> </td>
2436
+ </tr>
2437
+ </tbody>
2438
+ </table></div>
2439
+ </div>
2440
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
2441
+ </div>
2442
+ <hr>
2443
+ <div class="refsect2">
2444
+ <a name="graphene-matrix-rotate-quaternion"></a><h3>graphene_matrix_rotate_quaternion ()</h3>
2445
+ <pre class="programlisting"><span class="returnvalue">void</span>
2446
+ graphene_matrix_rotate_quaternion (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
2447
+ <em class="parameter"><code>const <a class="link" href="graphene-Quaternion.html#graphene-quaternion-t" title="graphene_quaternion_t"><span class="type">graphene_quaternion_t</span></a> *q</code></em>);</pre>
2448
+ <p>Adds a rotation transformation to <em class="parameter"><code>m</code></em>
2449
+ , using the given
2450
+ <a class="link" href="graphene-Quaternion.html#graphene-quaternion-t" title="graphene_quaternion_t"><span class="type">graphene_quaternion_t</span></a>.</p>
2451
+ <div class="refsect3">
2452
+ <a name="graphene-matrix-rotate-quaternion.parameters"></a><h4>Parameters</h4>
2453
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2454
+ <colgroup>
2455
+ <col width="150px" class="parameters_name">
2456
+ <col class="parameters_description">
2457
+ <col width="200px" class="parameters_annotations">
2458
+ </colgroup>
2459
+ <tbody>
2460
+ <tr>
2461
+ <td class="parameter_name"><p>m</p></td>
2462
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2463
+ <td class="parameter_annotations"> </td>
2464
+ </tr>
2465
+ <tr>
2466
+ <td class="parameter_name"><p>q</p></td>
2467
+ <td class="parameter_description"><p>a rotation described by a <a class="link" href="graphene-Quaternion.html#graphene-quaternion-t" title="graphene_quaternion_t"><span class="type">graphene_quaternion_t</span></a></p></td>
2468
+ <td class="parameter_annotations"> </td>
2469
+ </tr>
2470
+ </tbody>
2471
+ </table></div>
2472
+ </div>
2473
+ <p class="since">Since: <a class="link" href="ix04.html#api-index-1.2">1.2</a></p>
2474
+ </div>
2475
+ <hr>
2476
+ <div class="refsect2">
2477
+ <a name="graphene-matrix-rotate-euler"></a><h3>graphene_matrix_rotate_euler ()</h3>
2478
+ <pre class="programlisting"><span class="returnvalue">void</span>
2479
+ graphene_matrix_rotate_euler (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
2480
+ <em class="parameter"><code>const <a class="link" href="graphene-Euler.html#graphene-euler-t" title="graphene_euler_t"><span class="type">graphene_euler_t</span></a> *e</code></em>);</pre>
2481
+ <p>Adds a rotation transformation to <em class="parameter"><code>m</code></em>
2482
+ , using the given
2483
+ <a class="link" href="graphene-Euler.html#graphene-euler-t" title="graphene_euler_t"><span class="type">graphene_euler_t</span></a>.</p>
2484
+ <div class="refsect3">
2485
+ <a name="graphene-matrix-rotate-euler.parameters"></a><h4>Parameters</h4>
2486
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2487
+ <colgroup>
2488
+ <col width="150px" class="parameters_name">
2489
+ <col class="parameters_description">
2490
+ <col width="200px" class="parameters_annotations">
2491
+ </colgroup>
2492
+ <tbody>
2493
+ <tr>
2494
+ <td class="parameter_name"><p>m</p></td>
2495
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2496
+ <td class="parameter_annotations"> </td>
2497
+ </tr>
2498
+ <tr>
2499
+ <td class="parameter_name"><p>e</p></td>
2500
+ <td class="parameter_description"><p>a rotation described by a <a class="link" href="graphene-Euler.html#graphene-euler-t" title="graphene_euler_t"><span class="type">graphene_euler_t</span></a></p></td>
2501
+ <td class="parameter_annotations"> </td>
2502
+ </tr>
2503
+ </tbody>
2504
+ </table></div>
2505
+ </div>
2506
+ <p class="since">Since: <a class="link" href="ix04.html#api-index-1.2">1.2</a></p>
2507
+ </div>
2508
+ <hr>
2509
+ <div class="refsect2">
2510
+ <a name="graphene-matrix-scale"></a><h3>graphene_matrix_scale ()</h3>
2511
+ <pre class="programlisting"><span class="returnvalue">void</span>
2512
+ graphene_matrix_scale (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
2513
+ <em class="parameter"><code><span class="type">float</span> factor_x</code></em>,
2514
+ <em class="parameter"><code><span class="type">float</span> factor_y</code></em>,
2515
+ <em class="parameter"><code><span class="type">float</span> factor_z</code></em>);</pre>
2516
+ <p>Adds a scaling transformation to <em class="parameter"><code>m</code></em>
2517
+ , using the three
2518
+ given factors.</p>
2519
+ <div class="refsect3">
2520
+ <a name="graphene-matrix-scale.parameters"></a><h4>Parameters</h4>
2521
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2522
+ <colgroup>
2523
+ <col width="150px" class="parameters_name">
2524
+ <col class="parameters_description">
2525
+ <col width="200px" class="parameters_annotations">
2526
+ </colgroup>
2527
+ <tbody>
2528
+ <tr>
2529
+ <td class="parameter_name"><p>m</p></td>
2530
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2531
+ <td class="parameter_annotations"> </td>
2532
+ </tr>
2533
+ <tr>
2534
+ <td class="parameter_name"><p>factor_x</p></td>
2535
+ <td class="parameter_description"><p>scaling factor on the X axis</p></td>
2536
+ <td class="parameter_annotations"> </td>
2537
+ </tr>
2538
+ <tr>
2539
+ <td class="parameter_name"><p>factor_y</p></td>
2540
+ <td class="parameter_description"><p>scaling factor on the Y axis</p></td>
2541
+ <td class="parameter_annotations"> </td>
2542
+ </tr>
2543
+ <tr>
2544
+ <td class="parameter_name"><p>factor_z</p></td>
2545
+ <td class="parameter_description"><p>scaling factor on the Z axis</p></td>
2546
+ <td class="parameter_annotations"> </td>
2547
+ </tr>
2548
+ </tbody>
2549
+ </table></div>
2550
+ </div>
2551
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
2552
+ </div>
2553
+ <hr>
2554
+ <div class="refsect2">
2555
+ <a name="graphene-matrix-skew-xy"></a><h3>graphene_matrix_skew_xy ()</h3>
2556
+ <pre class="programlisting"><span class="returnvalue">void</span>
2557
+ graphene_matrix_skew_xy (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
2558
+ <em class="parameter"><code><span class="type">float</span> factor</code></em>);</pre>
2559
+ <p>Adds a skew of <em class="parameter"><code>factor</code></em>
2560
+ on the X and Y axis to the given matrix.</p>
2561
+ <div class="refsect3">
2562
+ <a name="graphene-matrix-skew-xy.parameters"></a><h4>Parameters</h4>
2563
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2564
+ <colgroup>
2565
+ <col width="150px" class="parameters_name">
2566
+ <col class="parameters_description">
2567
+ <col width="200px" class="parameters_annotations">
2568
+ </colgroup>
2569
+ <tbody>
2570
+ <tr>
2571
+ <td class="parameter_name"><p>m</p></td>
2572
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2573
+ <td class="parameter_annotations"> </td>
2574
+ </tr>
2575
+ <tr>
2576
+ <td class="parameter_name"><p>factor</p></td>
2577
+ <td class="parameter_description"><p>skew factor</p></td>
2578
+ <td class="parameter_annotations"> </td>
2579
+ </tr>
2580
+ </tbody>
2581
+ </table></div>
2582
+ </div>
2583
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
2584
+ </div>
2585
+ <hr>
2586
+ <div class="refsect2">
2587
+ <a name="graphene-matrix-skew-xz"></a><h3>graphene_matrix_skew_xz ()</h3>
2588
+ <pre class="programlisting"><span class="returnvalue">void</span>
2589
+ graphene_matrix_skew_xz (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
2590
+ <em class="parameter"><code><span class="type">float</span> factor</code></em>);</pre>
2591
+ <p>Adds a skew of <em class="parameter"><code>factor</code></em>
2592
+ on the X and Z axis to the given matrix.</p>
2593
+ <div class="refsect3">
2594
+ <a name="graphene-matrix-skew-xz.parameters"></a><h4>Parameters</h4>
2595
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2596
+ <colgroup>
2597
+ <col width="150px" class="parameters_name">
2598
+ <col class="parameters_description">
2599
+ <col width="200px" class="parameters_annotations">
2600
+ </colgroup>
2601
+ <tbody>
2602
+ <tr>
2603
+ <td class="parameter_name"><p>m</p></td>
2604
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2605
+ <td class="parameter_annotations"> </td>
2606
+ </tr>
2607
+ <tr>
2608
+ <td class="parameter_name"><p>factor</p></td>
2609
+ <td class="parameter_description"><p>skew factor</p></td>
2610
+ <td class="parameter_annotations"> </td>
2611
+ </tr>
2612
+ </tbody>
2613
+ </table></div>
2614
+ </div>
2615
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
2616
+ </div>
2617
+ <hr>
2618
+ <div class="refsect2">
2619
+ <a name="graphene-matrix-skew-yz"></a><h3>graphene_matrix_skew_yz ()</h3>
2620
+ <pre class="programlisting"><span class="returnvalue">void</span>
2621
+ graphene_matrix_skew_yz (<em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
2622
+ <em class="parameter"><code><span class="type">float</span> factor</code></em>);</pre>
2623
+ <p>Adds a skew of <em class="parameter"><code>factor</code></em>
2624
+ on the Y and Z axis to the given matrix.</p>
2625
+ <div class="refsect3">
2626
+ <a name="graphene-matrix-skew-yz.parameters"></a><h4>Parameters</h4>
2627
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2628
+ <colgroup>
2629
+ <col width="150px" class="parameters_name">
2630
+ <col class="parameters_description">
2631
+ <col width="200px" class="parameters_annotations">
2632
+ </colgroup>
2633
+ <tbody>
2634
+ <tr>
2635
+ <td class="parameter_name"><p>m</p></td>
2636
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2637
+ <td class="parameter_annotations"> </td>
2638
+ </tr>
2639
+ <tr>
2640
+ <td class="parameter_name"><p>factor</p></td>
2641
+ <td class="parameter_description"><p>skew factor</p></td>
2642
+ <td class="parameter_annotations"> </td>
2643
+ </tr>
2644
+ </tbody>
2645
+ </table></div>
2646
+ </div>
2647
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
2648
+ </div>
2649
+ <hr>
2650
+ <div class="refsect2">
2651
+ <a name="graphene-matrix-transpose"></a><h3>graphene_matrix_transpose ()</h3>
2652
+ <pre class="programlisting"><span class="returnvalue">void</span>
2653
+ graphene_matrix_transpose (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
2654
+ <em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *res</code></em>);</pre>
2655
+ <p>Transposes the given matrix.</p>
2656
+ <div class="refsect3">
2657
+ <a name="graphene-matrix-transpose.parameters"></a><h4>Parameters</h4>
2658
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2659
+ <colgroup>
2660
+ <col width="150px" class="parameters_name">
2661
+ <col class="parameters_description">
2662
+ <col width="200px" class="parameters_annotations">
2663
+ </colgroup>
2664
+ <tbody>
2665
+ <tr>
2666
+ <td class="parameter_name"><p>m</p></td>
2667
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2668
+ <td class="parameter_annotations"> </td>
2669
+ </tr>
2670
+ <tr>
2671
+ <td class="parameter_name"><p>res</p></td>
2672
+ <td class="parameter_description"><p> return location for the
2673
+ transposed matrix. </p></td>
2674
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
2675
+ </tr>
2676
+ </tbody>
2677
+ </table></div>
2678
+ </div>
2679
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
2680
+ </div>
2681
+ <hr>
2682
+ <div class="refsect2">
2683
+ <a name="graphene-matrix-inverse"></a><h3>graphene_matrix_inverse ()</h3>
2684
+ <pre class="programlisting"><span class="returnvalue">bool</span>
2685
+ graphene_matrix_inverse (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
2686
+ <em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *res</code></em>);</pre>
2687
+ <p>Inverts the given matrix.</p>
2688
+ <div class="refsect3">
2689
+ <a name="graphene-matrix-inverse.parameters"></a><h4>Parameters</h4>
2690
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2691
+ <colgroup>
2692
+ <col width="150px" class="parameters_name">
2693
+ <col class="parameters_description">
2694
+ <col width="200px" class="parameters_annotations">
2695
+ </colgroup>
2696
+ <tbody>
2697
+ <tr>
2698
+ <td class="parameter_name"><p>m</p></td>
2699
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2700
+ <td class="parameter_annotations"> </td>
2701
+ </tr>
2702
+ <tr>
2703
+ <td class="parameter_name"><p>res</p></td>
2704
+ <td class="parameter_description"><p> return location for the
2705
+ inverse matrix. </p></td>
2706
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
2707
+ </tr>
2708
+ </tbody>
2709
+ </table></div>
2710
+ </div>
2711
+ <div class="refsect3">
2712
+ <a name="graphene-matrix-inverse.returns"></a><h4>Returns</h4>
2713
+ <p> <code class="literal">true</code> if the matrix is invertible</p>
2714
+ </div>
2715
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
2716
+ </div>
2717
+ <hr>
2718
+ <div class="refsect2">
2719
+ <a name="graphene-matrix-perspective"></a><h3>graphene_matrix_perspective ()</h3>
2720
+ <pre class="programlisting"><span class="returnvalue">void</span>
2721
+ graphene_matrix_perspective (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
2722
+ <em class="parameter"><code><span class="type">float</span> depth</code></em>,
2723
+ <em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *res</code></em>);</pre>
2724
+ <p>Applies a perspective of <em class="parameter"><code>depth</code></em>
2725
+ to the matrix.</p>
2726
+ <div class="refsect3">
2727
+ <a name="graphene-matrix-perspective.parameters"></a><h4>Parameters</h4>
2728
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2729
+ <colgroup>
2730
+ <col width="150px" class="parameters_name">
2731
+ <col class="parameters_description">
2732
+ <col width="200px" class="parameters_annotations">
2733
+ </colgroup>
2734
+ <tbody>
2735
+ <tr>
2736
+ <td class="parameter_name"><p>m</p></td>
2737
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2738
+ <td class="parameter_annotations"> </td>
2739
+ </tr>
2740
+ <tr>
2741
+ <td class="parameter_name"><p>depth</p></td>
2742
+ <td class="parameter_description"><p>the depth of the perspective</p></td>
2743
+ <td class="parameter_annotations"> </td>
2744
+ </tr>
2745
+ <tr>
2746
+ <td class="parameter_name"><p>res</p></td>
2747
+ <td class="parameter_description"><p> return location for the
2748
+ perspective matrix. </p></td>
2749
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
2750
+ </tr>
2751
+ </tbody>
2752
+ </table></div>
2753
+ </div>
2754
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
2755
+ </div>
2756
+ <hr>
2757
+ <div class="refsect2">
2758
+ <a name="graphene-matrix-normalize"></a><h3>graphene_matrix_normalize ()</h3>
2759
+ <pre class="programlisting"><span class="returnvalue">void</span>
2760
+ graphene_matrix_normalize (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>,
2761
+ <em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *res</code></em>);</pre>
2762
+ <p>Normalizes the given <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a>.</p>
2763
+ <div class="refsect3">
2764
+ <a name="graphene-matrix-normalize.parameters"></a><h4>Parameters</h4>
2765
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2766
+ <colgroup>
2767
+ <col width="150px" class="parameters_name">
2768
+ <col class="parameters_description">
2769
+ <col width="200px" class="parameters_annotations">
2770
+ </colgroup>
2771
+ <tbody>
2772
+ <tr>
2773
+ <td class="parameter_name"><p>m</p></td>
2774
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2775
+ <td class="parameter_annotations"> </td>
2776
+ </tr>
2777
+ <tr>
2778
+ <td class="parameter_name"><p>res</p></td>
2779
+ <td class="parameter_description"><p> return location for the normalized matrix. </p></td>
2780
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
2781
+ </tr>
2782
+ </tbody>
2783
+ </table></div>
2784
+ </div>
2785
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
2786
+ </div>
2787
+ <hr>
2788
+ <div class="refsect2">
2789
+ <a name="graphene-matrix-get-x-scale"></a><h3>graphene_matrix_get_x_scale ()</h3>
2790
+ <pre class="programlisting"><span class="returnvalue">float</span>
2791
+ graphene_matrix_get_x_scale (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>);</pre>
2792
+ <p>Retrieves the scaling factor on the X axis in <em class="parameter"><code>m</code></em>
2793
+ .</p>
2794
+ <div class="refsect3">
2795
+ <a name="graphene-matrix-get-x-scale.parameters"></a><h4>Parameters</h4>
2796
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2797
+ <colgroup>
2798
+ <col width="150px" class="parameters_name">
2799
+ <col class="parameters_description">
2800
+ <col width="200px" class="parameters_annotations">
2801
+ </colgroup>
2802
+ <tbody><tr>
2803
+ <td class="parameter_name"><p>m</p></td>
2804
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2805
+ <td class="parameter_annotations"> </td>
2806
+ </tr></tbody>
2807
+ </table></div>
2808
+ </div>
2809
+ <div class="refsect3">
2810
+ <a name="graphene-matrix-get-x-scale.returns"></a><h4>Returns</h4>
2811
+ <p> the value of the scaling factor</p>
2812
+ </div>
2813
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
2814
+ </div>
2815
+ <hr>
2816
+ <div class="refsect2">
2817
+ <a name="graphene-matrix-get-y-scale"></a><h3>graphene_matrix_get_y_scale ()</h3>
2818
+ <pre class="programlisting"><span class="returnvalue">float</span>
2819
+ graphene_matrix_get_y_scale (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>);</pre>
2820
+ <p>Retrieves the scaling factor on the Y axis in <em class="parameter"><code>m</code></em>
2821
+ .</p>
2822
+ <div class="refsect3">
2823
+ <a name="graphene-matrix-get-y-scale.parameters"></a><h4>Parameters</h4>
2824
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2825
+ <colgroup>
2826
+ <col width="150px" class="parameters_name">
2827
+ <col class="parameters_description">
2828
+ <col width="200px" class="parameters_annotations">
2829
+ </colgroup>
2830
+ <tbody><tr>
2831
+ <td class="parameter_name"><p>m</p></td>
2832
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2833
+ <td class="parameter_annotations"> </td>
2834
+ </tr></tbody>
2835
+ </table></div>
2836
+ </div>
2837
+ <div class="refsect3">
2838
+ <a name="graphene-matrix-get-y-scale.returns"></a><h4>Returns</h4>
2839
+ <p> the value of the scaling factor</p>
2840
+ </div>
2841
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
2842
+ </div>
2843
+ <hr>
2844
+ <div class="refsect2">
2845
+ <a name="graphene-matrix-get-z-scale"></a><h3>graphene_matrix_get_z_scale ()</h3>
2846
+ <pre class="programlisting"><span class="returnvalue">float</span>
2847
+ graphene_matrix_get_z_scale (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>);</pre>
2848
+ <p>Retrieves the scaling factor on the Z axis in <em class="parameter"><code>m</code></em>
2849
+ .</p>
2850
+ <div class="refsect3">
2851
+ <a name="graphene-matrix-get-z-scale.parameters"></a><h4>Parameters</h4>
2852
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2853
+ <colgroup>
2854
+ <col width="150px" class="parameters_name">
2855
+ <col class="parameters_description">
2856
+ <col width="200px" class="parameters_annotations">
2857
+ </colgroup>
2858
+ <tbody><tr>
2859
+ <td class="parameter_name"><p>m</p></td>
2860
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2861
+ <td class="parameter_annotations"> </td>
2862
+ </tr></tbody>
2863
+ </table></div>
2864
+ </div>
2865
+ <div class="refsect3">
2866
+ <a name="graphene-matrix-get-z-scale.returns"></a><h4>Returns</h4>
2867
+ <p> the value of the scaling factor</p>
2868
+ </div>
2869
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
2870
+ </div>
2871
+ <hr>
2872
+ <div class="refsect2">
2873
+ <a name="graphene-matrix-interpolate"></a><h3>graphene_matrix_interpolate ()</h3>
2874
+ <pre class="programlisting"><span class="returnvalue">void</span>
2875
+ graphene_matrix_interpolate (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *a</code></em>,
2876
+ <em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *b</code></em>,
2877
+ <em class="parameter"><code><span class="type">double</span> factor</code></em>,
2878
+ <em class="parameter"><code><a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *res</code></em>);</pre>
2879
+ <p>Linearly interpolates the two given <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> by
2880
+ interpolating the decomposed transformations separately.</p>
2881
+ <p>If either matrix cannot be reduced to their transformations
2882
+ then the interpolation cannot be performed, and this function
2883
+ will return an identity matrix.</p>
2884
+ <div class="refsect3">
2885
+ <a name="graphene-matrix-interpolate.parameters"></a><h4>Parameters</h4>
2886
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2887
+ <colgroup>
2888
+ <col width="150px" class="parameters_name">
2889
+ <col class="parameters_description">
2890
+ <col width="200px" class="parameters_annotations">
2891
+ </colgroup>
2892
+ <tbody>
2893
+ <tr>
2894
+ <td class="parameter_name"><p>a</p></td>
2895
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2896
+ <td class="parameter_annotations"> </td>
2897
+ </tr>
2898
+ <tr>
2899
+ <td class="parameter_name"><p>b</p></td>
2900
+ <td class="parameter_description"><p>a <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a></p></td>
2901
+ <td class="parameter_annotations"> </td>
2902
+ </tr>
2903
+ <tr>
2904
+ <td class="parameter_name"><p>factor</p></td>
2905
+ <td class="parameter_description"><p>the linear interpolation factor</p></td>
2906
+ <td class="parameter_annotations"> </td>
2907
+ </tr>
2908
+ <tr>
2909
+ <td class="parameter_name"><p>res</p></td>
2910
+ <td class="parameter_description"><p> return location for the
2911
+ interpolated matrix. </p></td>
2912
+ <td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
2913
+ </tr>
2914
+ </tbody>
2915
+ </table></div>
2916
+ </div>
2917
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
2918
+ </div>
2919
+ <hr>
2920
+ <div class="refsect2">
2921
+ <a name="graphene-matrix-print"></a><h3>graphene_matrix_print ()</h3>
2922
+ <pre class="programlisting"><span class="returnvalue">void</span>
2923
+ graphene_matrix_print (<em class="parameter"><code>const <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> *m</code></em>);</pre>
2924
+ <p>Prints the contents of a matrix.</p>
2925
+ <div class="refsect3">
2926
+ <a name="graphene-matrix-print.parameters"></a><h4>Parameters</h4>
2927
+ <div class="informaltable"><table class="informaltable" width="100%" border="0">
2928
+ <colgroup>
2929
+ <col width="150px" class="parameters_name">
2930
+ <col class="parameters_description">
2931
+ <col width="200px" class="parameters_annotations">
2932
+ </colgroup>
2933
+ <tbody><tr>
2934
+ <td class="parameter_name"><p>m</p></td>
2935
+ <td class="parameter_description"><p>The matrix to print</p></td>
2936
+ <td class="parameter_annotations"> </td>
2937
+ </tr></tbody>
2938
+ </table></div>
2939
+ </div>
2940
+ <p class="since">Since: <a class="link" href="ix03.html#api-index-1.0">1.0</a></p>
2941
+ </div>
2942
+ </div>
2943
+ <div class="refsect1">
2944
+ <a name="graphene-Matrix.other_details"></a><h2>Types and Values</h2>
2945
+ <div class="refsect2">
2946
+ <a name="graphene-matrix-t"></a><h3>graphene_matrix_t</h3>
2947
+ <pre class="programlisting">typedef struct {
2948
+ } graphene_matrix_t;
2949
+ </pre>
2950
+ <p>A structure capable of holding a 4x4 matrix.</p>
2951
+ <p>The contents of the <a class="link" href="graphene-Matrix.html#graphene-matrix-t" title="graphene_matrix_t"><span class="type">graphene_matrix_t</span></a> structure are private and
2952
+ should never be accessed directly.</p>
2953
+ </div>
2954
+ </div>
2955
+ </div>
2956
+ <div class="footer">
2957
+ <hr>Generated by GTK-Doc V1.25</div>
2958
+ </body>
2959
+ </html>