ruby-iup 0.0.2 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (478) hide show
  1. data/CHANGES +3 -0
  2. data/MANIFEST +8 -0
  3. data/MIT-LICENSE +18 -0
  4. data/README +12 -0
  5. data/Rakefile +68 -80
  6. data/doc/build_install.txt +9 -12
  7. data/examples/ctrl/cbox.rb +14 -15
  8. data/examples/ctrl/checkboard.rb +1 -1
  9. data/examples/ctrl/example1.rb +53 -53
  10. data/examples/ctrl/example2.rb +39 -39
  11. data/examples/ctrl/iupcolorbar.rb +95 -95
  12. data/examples/ctrl/iupcolorbrowser.rb +45 -45
  13. data/examples/ctrl/iupdial.rb +117 -117
  14. data/examples/ctrl/iupgetcolor.rb +7 -7
  15. data/examples/ctrl/iupgetparam.rb +62 -62
  16. data/examples/ctrl/iupglcanvas.rb +172 -172
  17. data/examples/ctrl/iupmask.rb +1 -3
  18. data/examples/ctrl/iupmatrix.rb +39 -39
  19. data/examples/ctrl/iupplot2.rb +2 -1
  20. data/examples/ctrl/iuptabs.rb +22 -22
  21. data/examples/ctrl/iuptree.rb +190 -190
  22. data/examples/ctrl/iupval.rb +71 -71
  23. data/examples/ctrl/numbering.rb +46 -46
  24. data/examples/ctrl/sample.rb +166 -166
  25. data/examples/dlg/iupfiledlg.rb +19 -19
  26. data/examples/dlg/iupgetfile.rb +19 -19
  27. data/examples/dlg/iuplistdialog.rb +26 -26
  28. data/examples/dlg/iupmessage.rb +5 -5
  29. data/examples/dlg/iupscanf.rb +17 -17
  30. data/examples/elem/iupdialog2.rb +25 -25
  31. data/examples/elem/iupfill.rb +51 -51
  32. data/examples/elem/iupframe.rb +25 -25
  33. data/examples/elem/iuphbox.rb +68 -68
  34. data/examples/elem/iupimage.rb +113 -113
  35. data/examples/elem/iupitem.rb +60 -60
  36. data/examples/elem/iuplabel.rb +57 -57
  37. data/examples/elem/iuplist.rb +41 -41
  38. data/examples/elem/iuplist2.rb +125 -125
  39. data/examples/elem/iupmenu.rb +32 -32
  40. data/examples/elem/iupmultiline.rb +24 -24
  41. data/examples/elem/iupmultiline2.rb +156 -156
  42. data/examples/elem/iupradio.rb +32 -32
  43. data/examples/elem/iupseparator.rb +81 -81
  44. data/examples/elem/iupsubmenu.rb +85 -85
  45. data/examples/elem/iuptext.rb +61 -61
  46. data/examples/elem/iuptimer.rb +36 -36
  47. data/examples/elem/iuptoggle.rb +110 -110
  48. data/examples/elem/iupvbox.rb +87 -87
  49. data/examples/elem/iupzbox.rb +60 -60
  50. data/examples/elem/mdisample.rb +377 -376
  51. data/examples/elem/scrollbar.rb +66 -66
  52. data/examples/elem/tray.rb +90 -90
  53. data/examples/func/iupgetattribute.rb +32 -32
  54. data/examples/func/iupidle.rb +48 -48
  55. data/ext/extconf.rb +62 -27
  56. data/ext/iup-linux/include/cd.h +9 -5
  57. data/ext/iup-linux/include/cd_private.h +13 -6
  58. data/ext/iup-linux/include/cdsvg.h +22 -0
  59. data/ext/iup-linux/include/im.h +287 -282
  60. data/ext/iup-linux/include/im_attrib.h +120 -116
  61. data/ext/iup-linux/include/im_attrib_flat.h +39 -39
  62. data/ext/iup-linux/include/im_binfile.h +224 -214
  63. data/ext/iup-linux/include/im_capture.h +365 -365
  64. data/ext/iup-linux/include/im_color.h +465 -465
  65. data/ext/iup-linux/include/im_colorhsi.h +56 -61
  66. data/ext/iup-linux/include/im_complex.h +180 -160
  67. data/ext/iup-linux/include/im_convert.h +142 -127
  68. data/ext/iup-linux/include/im_counter.h +69 -69
  69. data/ext/iup-linux/include/im_dib.h +195 -195
  70. data/ext/iup-linux/include/im_file.h +115 -111
  71. data/ext/iup-linux/include/im_format.h +97 -79
  72. data/ext/iup-linux/include/im_format_all.h +575 -576
  73. data/ext/iup-linux/include/im_format_avi.h +88 -87
  74. data/ext/iup-linux/include/im_format_ecw.h +93 -93
  75. data/ext/iup-linux/include/im_format_jp2.h +79 -78
  76. data/ext/iup-linux/include/im_format_raw.h +74 -64
  77. data/ext/iup-linux/include/im_format_wmv.h +101 -100
  78. data/ext/iup-linux/include/im_image.h +425 -403
  79. data/ext/iup-linux/include/im_kernel.h +315 -315
  80. data/ext/iup-linux/include/im_lib.h +191 -191
  81. data/ext/iup-linux/include/im_math.h +368 -368
  82. data/ext/iup-linux/include/im_math_op.h +214 -219
  83. data/ext/iup-linux/include/im_palette.h +172 -172
  84. data/ext/iup-linux/include/im_plus.h +73 -73
  85. data/ext/iup-linux/include/im_process.h +36 -35
  86. data/ext/iup-linux/include/im_process_ana.h +222 -221
  87. data/ext/iup-linux/include/im_process_glo.h +170 -170
  88. data/ext/iup-linux/include/im_process_loc.h +608 -577
  89. data/ext/iup-linux/include/im_process_pon.h +734 -712
  90. data/ext/iup-linux/include/im_raw.h +34 -34
  91. data/ext/iup-linux/include/im_util.h +277 -277
  92. data/ext/iup-linux/include/imlua.h +75 -83
  93. data/ext/iup-linux/include/iup.h +86 -40
  94. data/ext/iup-linux/include/iupcb.h +1 -25
  95. data/ext/iup-linux/include/iupcbox.h +1 -0
  96. data/ext/iup-linux/include/iupcbs.h +1 -1
  97. data/ext/iup-linux/include/iupcells.h +1 -130
  98. data/ext/iup-linux/include/iupcolorbar.h +1 -126
  99. data/ext/iup-linux/include/iupcontrols.h +26 -16
  100. data/ext/iup-linux/include/iupdef.h +205 -0
  101. data/ext/iup-linux/include/iupdial.h +1 -63
  102. data/ext/iup-linux/include/iupgauge.h +1 -57
  103. data/ext/iup-linux/include/iupgc.h +1 -0
  104. data/ext/iup-linux/include/iupgetparam.h +1 -27
  105. data/ext/iup-linux/include/iupgl.h +2 -7
  106. data/ext/iup-linux/include/iupim.h +7 -1
  107. data/ext/iup-linux/include/iupkey.h +4 -4
  108. data/ext/iup-linux/include/iupmask.h +2 -1
  109. data/ext/iup-linux/include/iupmatrix.h +1 -63
  110. data/ext/iup-linux/include/iupsbox.h +1 -0
  111. data/ext/iup-linux/include/iupspin.h +1 -21
  112. data/ext/iup-linux/include/iuptabs.h +1 -75
  113. data/ext/iup-linux/include/iuptree.h +1 -93
  114. data/ext/iup-linux/include/iupval.h +1 -46
  115. data/ext/iup-linux/include/old_im.h +59 -59
  116. data/ext/iup-linux/include/wd.h +5 -0
  117. data/ext/iup-linux/libcd.a +0 -0
  118. data/ext/iup-linux/libcdcontextplus.a +0 -0
  119. data/ext/iup-linux/libcdgdk.a +0 -0
  120. data/ext/iup-linux/libcdpdf.a +0 -0
  121. data/ext/iup-linux/libfreetype.a +0 -0
  122. data/ext/iup-linux/libim.a +0 -0
  123. data/ext/iup-linux/libim_fftw.a +0 -0
  124. data/ext/iup-linux/libim_jp2.a +0 -0
  125. data/ext/iup-linux/libim_process.a +0 -0
  126. data/ext/iup-linux/libiup.a +0 -0
  127. data/ext/iup-linux/libiup_pplot.a +0 -0
  128. data/ext/iup-linux/libiupcd.a +0 -0
  129. data/ext/iup-linux/libiupcontrols.a +0 -0
  130. data/ext/iup-linux/libiupgl.a +0 -0
  131. data/ext/iup-linux/libiupim.a +0 -0
  132. data/ext/iup-linux/libiupimglib.a +0 -0
  133. data/ext/iup-linux/libiupmot.a +0 -0
  134. data/ext/iup-linux/libpdflib.a +0 -0
  135. data/ext/{iup-win32 → iup-mingw32}/include/cd.h +9 -5
  136. data/ext/{iup-win32 → iup-mingw32}/include/cd_canvas.hpp +0 -0
  137. data/ext/{iup-win32 → iup-mingw32}/include/cd_old.h +0 -0
  138. data/ext/{iup-win32 → iup-mingw32}/include/cd_private.h +13 -6
  139. data/ext/{iup-win32 → iup-mingw32}/include/cdcgm.h +0 -0
  140. data/ext/{iup-win32 → iup-mingw32}/include/cdclipbd.h +0 -0
  141. data/ext/{iup-win32 → iup-mingw32}/include/cddbuf.h +0 -0
  142. data/ext/{iup-win32 → iup-mingw32}/include/cddebug.h +0 -0
  143. data/ext/{iup-win32 → iup-mingw32}/include/cddgn.h +0 -0
  144. data/ext/{iup-win32 → iup-mingw32}/include/cddxf.h +0 -0
  145. data/ext/{iup-win32 → iup-mingw32}/include/cdemf.h +0 -0
  146. data/ext/{iup-win32 → iup-mingw32}/include/cdgdiplus.h +0 -0
  147. data/ext/{iup-win32 → iup-mingw32}/include/cdimage.h +0 -0
  148. data/ext/{iup-win32 → iup-mingw32}/include/cdirgb.h +0 -0
  149. data/ext/{iup-win32 → iup-mingw32}/include/cdiup.h +0 -0
  150. data/ext/{iup-win32 → iup-mingw32}/include/cdlua.h +0 -0
  151. data/ext/{iup-win32 → iup-mingw32}/include/cdlua3_private.h +0 -0
  152. data/ext/{iup-win32 → iup-mingw32}/include/cdlua5_private.h +0 -0
  153. data/ext/{iup-win32 → iup-mingw32}/include/cdluaim.h +0 -0
  154. data/ext/{iup-win32 → iup-mingw32}/include/cdluaiup.h +0 -0
  155. data/ext/{iup-win32 → iup-mingw32}/include/cdluapdf.h +0 -0
  156. data/ext/{iup-win32 → iup-mingw32}/include/cdmf.h +0 -0
  157. data/ext/{iup-win32 → iup-mingw32}/include/cdmf_private.h +0 -0
  158. data/ext/{iup-win32 → iup-mingw32}/include/cdnative.h +0 -0
  159. data/ext/{iup-win32 → iup-mingw32}/include/cdpdf.h +0 -0
  160. data/ext/{iup-win32 → iup-mingw32}/include/cdpicture.h +0 -0
  161. data/ext/{iup-win32 → iup-mingw32}/include/cdprint.h +0 -0
  162. data/ext/{iup-win32 → iup-mingw32}/include/cdps.h +0 -0
  163. data/ext/iup-mingw32/include/cdsvg.h +22 -0
  164. data/ext/{iup-win32 → iup-mingw32}/include/cdwmf.h +0 -0
  165. data/ext/iup-mingw32/include/im.h +287 -0
  166. data/ext/iup-mingw32/include/im_attrib.h +120 -0
  167. data/ext/iup-mingw32/include/im_attrib_flat.h +39 -0
  168. data/ext/iup-mingw32/include/im_binfile.h +224 -0
  169. data/ext/iup-mingw32/include/im_capture.h +365 -0
  170. data/ext/iup-mingw32/include/im_color.h +465 -0
  171. data/ext/iup-mingw32/include/im_colorhsi.h +56 -0
  172. data/ext/iup-mingw32/include/im_complex.h +180 -0
  173. data/ext/iup-mingw32/include/im_convert.h +142 -0
  174. data/ext/iup-mingw32/include/im_counter.h +69 -0
  175. data/ext/iup-mingw32/include/im_dib.h +195 -0
  176. data/ext/iup-mingw32/include/im_file.h +115 -0
  177. data/ext/iup-mingw32/include/im_format.h +97 -0
  178. data/ext/iup-mingw32/include/im_format_all.h +575 -0
  179. data/ext/iup-mingw32/include/im_format_avi.h +88 -0
  180. data/ext/iup-mingw32/include/im_format_ecw.h +93 -0
  181. data/ext/iup-mingw32/include/im_format_jp2.h +79 -0
  182. data/ext/iup-mingw32/include/im_format_raw.h +74 -0
  183. data/ext/iup-mingw32/include/im_format_wmv.h +101 -0
  184. data/ext/iup-mingw32/include/im_image.h +425 -0
  185. data/ext/iup-mingw32/include/im_kernel.h +315 -0
  186. data/ext/iup-mingw32/include/im_lib.h +191 -0
  187. data/ext/iup-mingw32/include/im_math.h +368 -0
  188. data/ext/iup-mingw32/include/im_math_op.h +214 -0
  189. data/ext/iup-mingw32/include/im_palette.h +172 -0
  190. data/ext/iup-mingw32/include/im_plus.h +73 -0
  191. data/ext/iup-mingw32/include/im_process.h +36 -0
  192. data/ext/iup-mingw32/include/im_process_ana.h +222 -0
  193. data/ext/iup-mingw32/include/im_process_glo.h +170 -0
  194. data/ext/iup-mingw32/include/im_process_loc.h +608 -0
  195. data/ext/iup-mingw32/include/im_process_pon.h +734 -0
  196. data/ext/iup-mingw32/include/im_raw.h +34 -0
  197. data/ext/iup-mingw32/include/im_util.h +277 -0
  198. data/ext/iup-mingw32/include/imlua.h +75 -0
  199. data/ext/{iup-win32 → iup-mingw32}/include/iup.h +86 -40
  200. data/ext/{iup-win32 → iup-mingw32}/include/iup_pplot.h +0 -0
  201. data/ext/iup-mingw32/include/iupcb.h +1 -0
  202. data/ext/iup-mingw32/include/iupcbox.h +1 -0
  203. data/ext/{iup-win32 → iup-mingw32}/include/iupcbs.h +1 -1
  204. data/ext/iup-mingw32/include/iupcells.h +1 -0
  205. data/ext/iup-mingw32/include/iupcolorbar.h +1 -0
  206. data/ext/iup-mingw32/include/iupcontrols.h +46 -0
  207. data/ext/{iup-win32 → iup-mingw32}/include/iupdef.h +205 -0
  208. data/ext/iup-mingw32/include/iupdial.h +1 -0
  209. data/ext/iup-mingw32/include/iupgauge.h +1 -0
  210. data/ext/iup-mingw32/include/iupgc.h +1 -0
  211. data/ext/iup-mingw32/include/iupgetparam.h +1 -0
  212. data/ext/{iup-win32 → iup-mingw32}/include/iupgl.h +2 -7
  213. data/ext/{iup-win32 → iup-mingw32}/include/iupim.h +7 -1
  214. data/ext/{iup-win32 → iup-mingw32}/include/iupkey.h +4 -4
  215. data/ext/{iup-win32 → iup-mingw32}/include/iuplua.h +0 -0
  216. data/ext/{iup-win32 → iup-mingw32}/include/iuplua_pplot.h +0 -0
  217. data/ext/{iup-win32 → iup-mingw32}/include/iupluacontrols.h +0 -0
  218. data/ext/{iup-win32 → iup-mingw32}/include/iupluagl.h +0 -0
  219. data/ext/{iup-win32 → iup-mingw32}/include/iupluaim.h +0 -0
  220. data/ext/{iup-win32 → iup-mingw32}/include/iupluaole.h +0 -0
  221. data/ext/{iup-win32 → iup-mingw32}/include/iupmask.h +2 -1
  222. data/ext/iup-mingw32/include/iupmatrix.h +1 -0
  223. data/ext/{iup-win32 → iup-mingw32}/include/iupole.h +0 -0
  224. data/ext/iup-mingw32/include/iupsbox.h +1 -0
  225. data/ext/iup-mingw32/include/iupspin.h +1 -0
  226. data/ext/iup-mingw32/include/iuptabs.h +1 -0
  227. data/ext/iup-mingw32/include/iuptree.h +1 -0
  228. data/ext/iup-mingw32/include/iupval.h +1 -0
  229. data/ext/iup-mingw32/include/old_im.h +59 -0
  230. data/ext/{iup-win32 → iup-mingw32}/include/wd.h +5 -0
  231. data/ext/{iup-win32 → iup-mingw32}/include/wd_old.h +0 -0
  232. data/ext/iup-mingw32/libcd.a +0 -0
  233. data/ext/iup-mingw32/libcdpdf.a +0 -0
  234. data/ext/iup-mingw32/libfreetype6.a +0 -0
  235. data/ext/iup-mingw32/libim.a +0 -0
  236. data/ext/iup-mingw32/libim_avi.a +0 -0
  237. data/ext/iup-mingw32/libim_fftw.a +0 -0
  238. data/ext/iup-mingw32/libim_jp2.a +0 -0
  239. data/ext/iup-mingw32/libim_process.a +0 -0
  240. data/ext/iup-mingw32/libiup.a +0 -0
  241. data/ext/iup-mingw32/libiup_pplot.a +0 -0
  242. data/ext/iup-mingw32/libiupcd.a +0 -0
  243. data/ext/iup-mingw32/libiupcontrols.a +0 -0
  244. data/ext/iup-mingw32/libiupgl.a +0 -0
  245. data/ext/iup-mingw32/libiupim.a +0 -0
  246. data/ext/iup-mingw32/libiupimglib.a +0 -0
  247. data/ext/iup-mingw32/libiupole.a +0 -0
  248. data/ext/iup-mingw32/libpdflib.a +0 -0
  249. data/ext/iup-mswin32/cd.lib +0 -0
  250. data/ext/iup-mswin32/cdcontextplus.lib +0 -0
  251. data/ext/iup-mswin32/cdgdk.lib +0 -0
  252. data/ext/iup-mswin32/cdpdf.lib +0 -0
  253. data/ext/iup-mswin32/freetype6.lib +0 -0
  254. data/ext/iup-mswin32/im.lib +0 -0
  255. data/ext/iup-mswin32/im_avi.lib +0 -0
  256. data/ext/iup-mswin32/im_capture.lib +0 -0
  257. data/ext/iup-mswin32/im_fftw.lib +0 -0
  258. data/ext/iup-mswin32/im_jp2.lib +0 -0
  259. data/ext/iup-mswin32/im_process.lib +0 -0
  260. data/ext/iup-mswin32/im_wmv.lib +0 -0
  261. data/ext/iup-mswin32/include/cd.h +498 -0
  262. data/ext/iup-mswin32/include/cd_canvas.hpp +358 -0
  263. data/ext/iup-mswin32/include/cd_old.h +158 -0
  264. data/ext/iup-mswin32/include/cd_private.h +369 -0
  265. data/ext/iup-mswin32/include/cdcgm.h +34 -0
  266. data/ext/iup-mswin32/include/cdclipbd.h +22 -0
  267. data/ext/iup-mswin32/include/cddbuf.h +23 -0
  268. data/ext/iup-mswin32/include/cddebug.h +24 -0
  269. data/ext/iup-mswin32/include/cddgn.h +23 -0
  270. data/ext/iup-mswin32/include/cddxf.h +22 -0
  271. data/ext/iup-mswin32/include/cdemf.h +22 -0
  272. data/ext/iup-mswin32/include/cdgdiplus.h +29 -0
  273. data/ext/iup-mswin32/include/cdimage.h +23 -0
  274. data/ext/iup-mswin32/include/cdirgb.h +30 -0
  275. data/ext/iup-mswin32/include/cdiup.h +22 -0
  276. data/ext/iup-mswin32/include/cdlua.h +39 -0
  277. data/ext/iup-mswin32/include/cdlua3_private.h +120 -0
  278. data/ext/iup-mswin32/include/cdlua5_private.h +141 -0
  279. data/ext/iup-mswin32/include/cdluaim.h +24 -0
  280. data/ext/iup-mswin32/include/cdluaiup.h +27 -0
  281. data/ext/iup-mswin32/include/cdluapdf.h +27 -0
  282. data/ext/iup-mswin32/include/cdmf.h +24 -0
  283. data/ext/iup-mswin32/include/cdmf_private.h +32 -0
  284. data/ext/iup-mswin32/include/cdnative.h +26 -0
  285. data/ext/iup-mswin32/include/cdpdf.h +38 -0
  286. data/ext/iup-mswin32/include/cdpicture.h +22 -0
  287. data/ext/iup-mswin32/include/cdprint.h +23 -0
  288. data/ext/iup-mswin32/include/cdps.h +37 -0
  289. data/ext/iup-mswin32/include/cdsvg.h +22 -0
  290. data/ext/iup-mswin32/include/cdwmf.h +22 -0
  291. data/ext/iup-mswin32/include/im.h +287 -0
  292. data/ext/iup-mswin32/include/im_attrib.h +120 -0
  293. data/ext/iup-mswin32/include/im_attrib_flat.h +39 -0
  294. data/ext/iup-mswin32/include/im_binfile.h +224 -0
  295. data/ext/iup-mswin32/include/im_capture.h +365 -0
  296. data/ext/iup-mswin32/include/im_color.h +465 -0
  297. data/ext/iup-mswin32/include/im_colorhsi.h +56 -0
  298. data/ext/iup-mswin32/include/im_complex.h +180 -0
  299. data/ext/iup-mswin32/include/im_convert.h +142 -0
  300. data/ext/iup-mswin32/include/im_counter.h +69 -0
  301. data/ext/iup-mswin32/include/im_dib.h +195 -0
  302. data/ext/iup-mswin32/include/im_file.h +115 -0
  303. data/ext/iup-mswin32/include/im_format.h +97 -0
  304. data/ext/iup-mswin32/include/im_format_all.h +575 -0
  305. data/ext/iup-mswin32/include/im_format_avi.h +88 -0
  306. data/ext/iup-mswin32/include/im_format_ecw.h +93 -0
  307. data/ext/iup-mswin32/include/im_format_jp2.h +79 -0
  308. data/ext/iup-mswin32/include/im_format_raw.h +74 -0
  309. data/ext/iup-mswin32/include/im_format_wmv.h +101 -0
  310. data/ext/iup-mswin32/include/im_image.h +425 -0
  311. data/ext/iup-mswin32/include/im_kernel.h +315 -0
  312. data/ext/iup-mswin32/include/im_lib.h +191 -0
  313. data/ext/iup-mswin32/include/im_math.h +368 -0
  314. data/ext/iup-mswin32/include/im_math_op.h +214 -0
  315. data/ext/iup-mswin32/include/im_palette.h +172 -0
  316. data/ext/iup-mswin32/include/im_plus.h +73 -0
  317. data/ext/iup-mswin32/include/im_process.h +36 -0
  318. data/ext/iup-mswin32/include/im_process_ana.h +222 -0
  319. data/ext/iup-mswin32/include/im_process_glo.h +170 -0
  320. data/ext/iup-mswin32/include/im_process_loc.h +608 -0
  321. data/ext/iup-mswin32/include/im_process_pon.h +734 -0
  322. data/ext/iup-mswin32/include/im_raw.h +34 -0
  323. data/ext/iup-mswin32/include/im_util.h +277 -0
  324. data/ext/iup-mswin32/include/imlua.h +75 -0
  325. data/ext/iup-mswin32/include/iup.h +364 -0
  326. data/ext/iup-mswin32/include/iup_pplot.h +40 -0
  327. data/ext/iup-mswin32/include/iupcb.h +1 -0
  328. data/ext/iup-mswin32/include/iupcbox.h +1 -0
  329. data/ext/iup-mswin32/include/iupcbs.h +43 -0
  330. data/ext/iup-mswin32/include/iupcells.h +1 -0
  331. data/ext/iup-mswin32/include/iupcolorbar.h +1 -0
  332. data/ext/iup-mswin32/include/iupcontrols.h +46 -0
  333. data/ext/iup-mswin32/include/iupdef.h +725 -0
  334. data/ext/iup-mswin32/include/iupdial.h +1 -0
  335. data/ext/iup-mswin32/include/iupgauge.h +1 -0
  336. data/ext/iup-mswin32/include/iupgc.h +1 -0
  337. data/ext/iup-mswin32/include/iupgetparam.h +1 -0
  338. data/ext/iup-mswin32/include/iupgl.h +96 -0
  339. data/ext/iup-mswin32/include/iupim.h +27 -0
  340. data/ext/iup-mswin32/include/iupkey.h +457 -0
  341. data/ext/iup-mswin32/include/iuplua.h +41 -0
  342. data/ext/iup-mswin32/include/iuplua_pplot.h +26 -0
  343. data/ext/iup-mswin32/include/iupluacontrols.h +27 -0
  344. data/ext/iup-mswin32/include/iupluagl.h +26 -0
  345. data/ext/iup-mswin32/include/iupluaim.h +26 -0
  346. data/ext/iup-mswin32/include/iupluaole.h +26 -0
  347. data/ext/iup-mswin32/include/iupmask.h +41 -0
  348. data/ext/iup-mswin32/include/iupmatrix.h +1 -0
  349. data/ext/iup-mswin32/include/iupole.h +24 -0
  350. data/ext/iup-mswin32/include/iupsbox.h +1 -0
  351. data/ext/iup-mswin32/include/iupspin.h +1 -0
  352. data/ext/iup-mswin32/include/iuptabs.h +1 -0
  353. data/ext/iup-mswin32/include/iuptree.h +1 -0
  354. data/ext/iup-mswin32/include/iupval.h +1 -0
  355. data/ext/iup-mswin32/include/old_im.h +59 -0
  356. data/ext/iup-mswin32/include/wd.h +83 -0
  357. data/ext/iup-mswin32/include/wd_old.h +85 -0
  358. data/ext/iup-mswin32/iup.lib +0 -0
  359. data/ext/iup-mswin32/iup_pplot.lib +0 -0
  360. data/ext/iup-mswin32/iupcd.lib +0 -0
  361. data/ext/iup-mswin32/iupcontrols.lib +0 -0
  362. data/ext/iup-mswin32/iupgl.lib +0 -0
  363. data/ext/iup-mswin32/iupgtk.lib +0 -0
  364. data/ext/iup-mswin32/iupim.lib +0 -0
  365. data/ext/{iup-win32/iupimglib.dll → iup-mswin32/iupimglib.lib} +0 -0
  366. data/ext/iup-mswin32/iupole.lib +0 -0
  367. data/ext/iup-mswin32/pdflib.lib +0 -0
  368. data/ext/iup.c +6 -37
  369. data/ext/{rb_cd.h → rb_cd.c} +300 -302
  370. data/ext/rb_iup.c +2485 -0
  371. data/ext/rb_iup.h +400 -2475
  372. data/ext/{rb_iup_pplot.h → rb_iup_pplot.c} +21 -22
  373. data/ext/{rb_iupcb.h → rb_iupcb.c} +2 -3
  374. data/ext/{rb_iupcells.h → rb_iupcells.c} +5 -5
  375. data/ext/{rb_iupcolorbar.h → rb_iupcolorbar.c} +2 -3
  376. data/ext/{rb_iupcontrols.h → rb_iupcontrols.c} +1 -1
  377. data/ext/{rb_iupdial.h → rb_iupdial.c} +3 -4
  378. data/ext/{rb_iupgauge.h → rb_iupgauge.c} +2 -3
  379. data/ext/{rb_iupgc.h → rb_iupgc.c} +1 -1
  380. data/ext/{rb_iupgetparam.h → rb_iupgetparam.c} +12 -10
  381. data/ext/{rb_iupgl.h → rb_iupgl.c} +10 -10
  382. data/ext/{rb_iupim.h → rb_iupim.c} +6 -6
  383. data/ext/{rb_iupmatrix.h → rb_iupmatrix.c} +15 -16
  384. data/ext/{rb_iupole.h → rb_iupole.c} +4 -4
  385. data/ext/{rb_iupsbox.h → rb_iupsbox.c} +3 -3
  386. data/ext/{rb_iupspin.h → rb_iupspin.c} +4 -5
  387. data/ext/{rb_iuptabs.h → rb_iuptabs.c} +5 -6
  388. data/ext/{rb_iuptree.h → rb_iuptree.c} +20 -21
  389. data/ext/{rb_iupval.h → rb_iupval.c} +3 -4
  390. data/ruby-iup.gemspec +26 -0
  391. data/test/test_ruby_iup.rb +25 -0
  392. metadata +395 -270
  393. data/ext/iup-linux/include/lauxlib.h +0 -174
  394. data/ext/iup-linux/include/lua.h +0 -388
  395. data/ext/iup-linux/include/lua.hpp +0 -9
  396. data/ext/iup-linux/include/luaconf.h +0 -763
  397. data/ext/iup-linux/include/lualib.h +0 -53
  398. data/ext/iup-linux/libcd.so +0 -0
  399. data/ext/iup-linux/libcdcontextplus.so +0 -0
  400. data/ext/iup-linux/libcdpdf.so +0 -0
  401. data/ext/iup-linux/libfreetype.so +0 -0
  402. data/ext/iup-linux/libim.so +0 -0
  403. data/ext/iup-linux/libim_fftw.so +0 -0
  404. data/ext/iup-linux/libim_jp2.so +0 -0
  405. data/ext/iup-linux/libim_process.so +0 -0
  406. data/ext/iup-linux/libiup.so +0 -0
  407. data/ext/iup-linux/libiup_pplot.so +0 -0
  408. data/ext/iup-linux/libiupcd.so +0 -0
  409. data/ext/iup-linux/libiupcontrols.so +0 -0
  410. data/ext/iup-linux/libiupgl.so +0 -0
  411. data/ext/iup-linux/libiupim.so +0 -0
  412. data/ext/iup-linux/libiupimglib.so +0 -0
  413. data/ext/iup-linux/libiupmot.so +0 -0
  414. data/ext/iup-linux/libpdflib.so +0 -0
  415. data/ext/iup-win32/cd.dll +0 -0
  416. data/ext/iup-win32/cd.lib +0 -0
  417. data/ext/iup-win32/cdcontextplus.dll +0 -0
  418. data/ext/iup-win32/cdcontextplus.lib +0 -0
  419. data/ext/iup-win32/cdpdf.dll +0 -0
  420. data/ext/iup-win32/cdpdf.lib +0 -0
  421. data/ext/iup-win32/freetype6.dll +0 -0
  422. data/ext/iup-win32/freetype6.lib +0 -0
  423. data/ext/iup-win32/im.dll +0 -0
  424. data/ext/iup-win32/im.lib +0 -0
  425. data/ext/iup-win32/im_avi.dll +0 -0
  426. data/ext/iup-win32/im_avi.lib +0 -0
  427. data/ext/iup-win32/im_capture.dll +0 -0
  428. data/ext/iup-win32/im_capture.lib +0 -0
  429. data/ext/iup-win32/im_ecw.dll +0 -0
  430. data/ext/iup-win32/im_fftw.dll +0 -0
  431. data/ext/iup-win32/im_fftw.lib +0 -0
  432. data/ext/iup-win32/im_jp2.dll +0 -0
  433. data/ext/iup-win32/im_jp2.lib +0 -0
  434. data/ext/iup-win32/im_process.dll +0 -0
  435. data/ext/iup-win32/im_process.lib +0 -0
  436. data/ext/iup-win32/im_wmv.dll +0 -0
  437. data/ext/iup-win32/im_wmv.lib +0 -0
  438. data/ext/iup-win32/imlua_capture51.dll +0 -0
  439. data/ext/iup-win32/imlua_capture51.lib +0 -0
  440. data/ext/iup-win32/imlua_wmv51.dll +0 -0
  441. data/ext/iup-win32/imlua_wmv51.lib +0 -0
  442. data/ext/iup-win32/include/iupcb.h +0 -25
  443. data/ext/iup-win32/include/iupcells.h +0 -130
  444. data/ext/iup-win32/include/iupcolorbar.h +0 -126
  445. data/ext/iup-win32/include/iupcontrols.h +0 -36
  446. data/ext/iup-win32/include/iupdial.h +0 -63
  447. data/ext/iup-win32/include/iupgauge.h +0 -57
  448. data/ext/iup-win32/include/iupgetparam.h +0 -27
  449. data/ext/iup-win32/include/iupmatrix.h +0 -63
  450. data/ext/iup-win32/include/iupspin.h +0 -21
  451. data/ext/iup-win32/include/iuptabs.h +0 -75
  452. data/ext/iup-win32/include/iuptree.h +0 -93
  453. data/ext/iup-win32/include/iupval.h +0 -46
  454. data/ext/iup-win32/iup.dll +0 -0
  455. data/ext/iup-win32/iup.lib +0 -0
  456. data/ext/iup-win32/iup_pplot.dll +0 -0
  457. data/ext/iup-win32/iup_pplot.lib +0 -0
  458. data/ext/iup-win32/iupcd.dll +0 -0
  459. data/ext/iup-win32/iupcd.lib +0 -0
  460. data/ext/iup-win32/iupcontrols.dll +0 -0
  461. data/ext/iup-win32/iupcontrols.lib +0 -0
  462. data/ext/iup-win32/iupgl.dll +0 -0
  463. data/ext/iup-win32/iupgl.lib +0 -0
  464. data/ext/iup-win32/iupgtk.dll +0 -0
  465. data/ext/iup-win32/iupgtk.lib +0 -0
  466. data/ext/iup-win32/iupim.dll +0 -0
  467. data/ext/iup-win32/iupim.lib +0 -0
  468. data/ext/iup-win32/iupimglib.lib +0 -0
  469. data/ext/iup-win32/iupole.dll +0 -0
  470. data/ext/iup-win32/iupole.lib +0 -0
  471. data/ext/iup-win32/iupstub.lib +0 -0
  472. data/ext/iup-win32/pdflib.dll +0 -0
  473. data/ext/iup-win32/pdflib.lib +0 -0
  474. data/ext/mkrf_conf.rb +0 -72
  475. data/ext/rb_iupcompat.h +0 -237
  476. data/ext/rb_iupdef.h +0 -3
  477. data/ext/rb_iupmask.h +0 -189
  478. data/lib/README +0 -1
@@ -0,0 +1,368 @@
1
+ /** \file
2
+ * \brief Math Utilities
3
+ *
4
+ * See Copyright Notice in im_lib.h
5
+ */
6
+
7
+ #ifndef __IM_MATH_H
8
+ #define __IM_MATH_H
9
+
10
+ #include <math.h>
11
+ #include "im_util.h"
12
+
13
+ #ifdef IM_DEFMATHFLOAT
14
+ inline float acosf(float _X) {return ((float)acos((double)_X)); }
15
+ inline float asinf(float _X) {return ((float)asin((double)_X)); }
16
+ inline float atanf(float _X) {return ((float)atan((double)_X)); }
17
+ inline float atan2f(float _X, float _Y) {return ((float)atan2((double)_X, (double)_Y)); }
18
+ inline float ceilf(float _X) {return ((float)ceil((double)_X)); }
19
+ inline float cosf(float _X) {return ((float)cos((double)_X)); }
20
+ inline float coshf(float _X) {return ((float)cosh((double)_X)); }
21
+ inline float expf(float _X) {return ((float)exp((double)_X)); }
22
+ inline float fabsf(float _X) {return ((float)fabs((double)_X)); }
23
+ inline float floorf(float _X) {return ((float)floor((double)_X)); }
24
+ inline float fmodf(float _X, float _Y) {return ((float)fmod((double)_X, (double)_Y)); }
25
+ inline float logf(float _X) {return ((float)log((double)_X)); }
26
+ inline float log10f(float _X) {return ((float)log10((double)_X)); }
27
+ inline float powf(float _X, float _Y) {return ((float)pow((double)_X, (double)_Y)); }
28
+ inline float sinf(float _X) {return ((float)sin((double)_X)); }
29
+ inline float sinhf(float _X) {return ((float)sinh((double)_X)); }
30
+ inline float sqrtf(float _X) {return ((float)sqrt((double)_X)); }
31
+ inline float tanf(float _X) {return ((float)tan((double)_X)); }
32
+ inline float tanhf(float _X) {return ((float)tanh((double)_X)); }
33
+ #endif
34
+
35
+ /** \defgroup math Math Utilities
36
+ * \par
37
+ * When converting between continuous and discrete use: \n
38
+ * Continuous = Discrete + 0.5 [Reconstruction/Interpolation] \n
39
+ * Discrete = Round(Continuous - 0.5) [Sampling/Quantization] \n
40
+ * \par
41
+ * Notice that must check 0-max limits when converting from Continuous to Discrete.
42
+ * \par
43
+ * When converting between discrete and discrete use: \n
44
+ * integer src_size, dst_len, src_i, dst_i \n
45
+ * real factor = (real)(dst_size)/(real)(src_size) \n
46
+ * dst_i = Round(factor*(src_i + 0.5) - 0.5)
47
+ * \par
48
+ * See \ref im_math.h
49
+ * \ingroup util */
50
+
51
+
52
+ /** Round a real to the nearest integer.
53
+ * \ingroup math */
54
+ inline int imRound(float x)
55
+ {
56
+ return (int)(x < 0? x-0.5f: x+0.5f);
57
+ }
58
+ inline int imRound(double x)
59
+ {
60
+ return (int)(x < 0? x-0.5: x+0.5);
61
+ }
62
+
63
+ /** Converts between two discrete grids.
64
+ * factor is "dst_size/src_size".
65
+ * \ingroup math */
66
+ inline int imResample(int x, float factor)
67
+ {
68
+ float xr = factor*(x + 0.5f) - 0.5f;
69
+ return (int)(xr < 0? xr-0.5f: xr+0.5f); /* Round */
70
+ }
71
+
72
+ /** Does Zero Order Decimation (Mean).
73
+ * \ingroup math */
74
+ template <class T, class TU>
75
+ inline T imZeroOrderDecimation(int width, int height, T *map, float xl, float yl, float box_width, float box_height, TU Dummy)
76
+ {
77
+ int x0,x1,y0,y1;
78
+ (void)Dummy;
79
+
80
+ x0 = (int)floor(xl - box_width/2.0 - 0.5) + 1;
81
+ y0 = (int)floor(yl - box_height/2.0 - 0.5) + 1;
82
+ x1 = (int)floor(xl + box_width/2.0 - 0.5);
83
+ y1 = (int)floor(yl + box_height/2.0 - 0.5);
84
+
85
+ if (x0 == x1) x1++;
86
+ if (y0 == y1) y1++;
87
+
88
+ x0 = x0<0? 0: x0>width-1? width-1: x0;
89
+ y0 = y0<0? 0: y0>height-1? height-1: y0;
90
+ x1 = x1<0? 0: x1>width-1? width-1: x1;
91
+ y1 = y1<0? 0: y1>height-1? height-1: y1;
92
+
93
+ TU Value;
94
+ int Count = 0;
95
+
96
+ Value = 0;
97
+
98
+ for (int y = y0; y <= y1; y++)
99
+ {
100
+ for (int x = x0; x <= x1; x++)
101
+ {
102
+ Value += map[y*width+x];
103
+ Count++;
104
+ }
105
+ }
106
+
107
+ if (Count == 0)
108
+ {
109
+ Value = 0;
110
+ return (T)Value;
111
+ }
112
+
113
+ return (T)(Value/(float)Count);
114
+ }
115
+
116
+ /** Does Bilinear Decimation.
117
+ * \ingroup math */
118
+ template <class T, class TU>
119
+ inline T imBilinearDecimation(int width, int height, T *map, float xl, float yl, float box_width, float box_height, TU Dummy)
120
+ {
121
+ int x0,x1,y0,y1;
122
+ (void)Dummy;
123
+
124
+ x0 = (int)floor(xl - box_width/2.0 - 0.5) + 1;
125
+ y0 = (int)floor(yl - box_height/2.0 - 0.5) + 1;
126
+ x1 = (int)floor(xl + box_width/2.0 - 0.5);
127
+ y1 = (int)floor(yl + box_height/2.0 - 0.5);
128
+
129
+ if (x0 == x1) x1++;
130
+ if (y0 == y1) y1++;
131
+
132
+ x0 = x0<0? 0: x0>width-1? width-1: x0;
133
+ y0 = y0<0? 0: y0>height-1? height-1: y0;
134
+ x1 = x1<0? 0: x1>width-1? width-1: x1;
135
+ y1 = y1<0? 0: y1>height-1? height-1: y1;
136
+
137
+ TU Value, LineValue;
138
+ float LineNorm, Norm, dxr, dyr;
139
+
140
+ Value = 0;
141
+ Norm = 0;
142
+
143
+ for (int y = y0; y <= y1; y++)
144
+ {
145
+ dyr = yl - (y+0.5f);
146
+ if (dyr < 0) dyr *= -1;
147
+
148
+ LineValue = 0;
149
+ LineNorm = 0;
150
+
151
+ for (int x = x0; x <= x1; x++)
152
+ {
153
+ dxr = xl - (x+0.5f);
154
+ if (dxr < 0) dxr *= -1;
155
+
156
+ LineValue += map[y*width+x] * dxr;
157
+ LineNorm += dxr;
158
+ }
159
+
160
+ Value += LineValue * dyr;
161
+ Norm += dyr * LineNorm;
162
+ }
163
+
164
+ if (Norm == 0)
165
+ {
166
+ Value = 0;
167
+ return (T)Value;
168
+ }
169
+
170
+ return (T)(Value/Norm);
171
+ }
172
+
173
+ /** Does Zero Order Interpolation (Nearest Neighborhood).
174
+ * \ingroup math */
175
+ template <class T>
176
+ inline T imZeroOrderInterpolation(int width, int height, T *map, float xl, float yl)
177
+ {
178
+ int x0 = imRound(xl-0.5f);
179
+ int y0 = imRound(yl-0.5f);
180
+ x0 = x0<0? 0: x0>width-1? width-1: x0;
181
+ y0 = y0<0? 0: y0>height-1? height-1: y0;
182
+ return map[y0*width + x0];
183
+ }
184
+
185
+ /** Does Bilinear Interpolation.
186
+ * \ingroup math */
187
+ template <class T>
188
+ inline T imBilinearInterpolation(int width, int height, T *map, float xl, float yl)
189
+ {
190
+ int x0, y0, x1, y1;
191
+ float t, u;
192
+
193
+ if (xl < 0.5)
194
+ {
195
+ x1 = x0 = 0;
196
+ t = 0;
197
+ }
198
+ else if (xl > width-0.5)
199
+ {
200
+ x1 = x0 = width-1;
201
+ t = 0;
202
+ }
203
+ else
204
+ {
205
+ x0 = (int)(xl-0.5f);
206
+ x1 = x0+1;
207
+ t = xl - (x0+0.5f);
208
+ }
209
+
210
+ if (yl < 0.5)
211
+ {
212
+ y1 = y0 = 0;
213
+ u = 0;
214
+ }
215
+ else if (yl > height-0.5)
216
+ {
217
+ y1 = y0 = height-1;
218
+ u = 0;
219
+ }
220
+ else
221
+ {
222
+ y0 = (int)(yl-0.5f);
223
+ y1 = y0+1;
224
+ u = yl - (y0+0.5f);
225
+ }
226
+
227
+ T fll = map[y0*width + x0];
228
+ T fhl = map[y0*width + x1];
229
+ T flh = map[y1*width + x0];
230
+ T fhh = map[y1*width + x1];
231
+
232
+ return (T)((fhh - flh - fhl + fll) * u * t +
233
+ (fhl - fll) * t +
234
+ (flh - fll) * u +
235
+ fll);
236
+ }
237
+
238
+ /** Does Bicubic Interpolation.
239
+ * \ingroup math */
240
+ template <class T, class TU>
241
+ inline T imBicubicInterpolation(int width, int height, T *map, float xl, float yl, TU Dummy)
242
+ {
243
+ int X[4], Y[4];
244
+ float t, u;
245
+ (void)Dummy;
246
+
247
+ if (xl > width-0.5)
248
+ {
249
+ X[3] = X[2] = X[1] = width-1;
250
+ X[0] = X[1]-1;
251
+ t = 0;
252
+ }
253
+ else
254
+ {
255
+ X[1] = (int)(xl-0.5f);
256
+ if (X[1] < 0) X[1] = 0;
257
+
258
+ X[0] = X[1]-1;
259
+ X[2] = X[1]+1;
260
+ X[3] = X[1]+2;
261
+
262
+ if (X[0] < 0) X[0] = 0;
263
+ if (X[3] > width-1) X[3] = width-1;
264
+
265
+ t = xl - (X[1]+0.5f);
266
+ }
267
+
268
+ if (yl > height-0.5)
269
+ {
270
+ Y[3] = Y[2] = Y[1] = height-1;
271
+ Y[0] = Y[1]-1;
272
+ u = 0;
273
+ }
274
+ else
275
+ {
276
+ Y[1] = (int)(yl-0.5f);
277
+ if (Y[1] < 0) Y[1] = 0;
278
+
279
+ Y[0] = Y[1]-1;
280
+ Y[2] = Y[1]+1;
281
+ Y[3] = Y[1]+2;
282
+
283
+ if (Y[0] < 0) Y[0] = 0;
284
+ if (Y[3] > height-1) Y[3] = height-1;
285
+
286
+ u = yl - (Y[1]+0.5f);
287
+ }
288
+
289
+ float CX[4], CY[4];
290
+
291
+ // Optimize calculations
292
+ {
293
+ float c, c2, c3;
294
+
295
+ #define C0 (-c3 + 2.0f*c2 - c)
296
+ #define C1 ( c3 - 2.0f*c2 + 1.0f)
297
+ #define C2 (-c3 + c2 + c)
298
+ #define C3 ( c3 - c2)
299
+
300
+ c = t;
301
+ c2 = c*c; c3 = c2*c;
302
+ CX[0] = C0; CX[1] = C1; CX[2] = C2; CX[3] = C3;
303
+
304
+ c = u;
305
+ c2 = c*c; c3 = c2*c;
306
+ CY[0] = C0; CY[1] = C1; CY[2] = C2; CY[3] = C3;
307
+
308
+ #undef C0
309
+ #undef C1
310
+ #undef C2
311
+ #undef C3
312
+ }
313
+
314
+ TU LineValue, Value;
315
+ float LineNorm, Norm;
316
+
317
+ Value = 0;
318
+ Norm = 0;
319
+
320
+ for (int y = 0; y < 4; y++)
321
+ {
322
+ LineValue = 0;
323
+ LineNorm = 0;
324
+
325
+ for (int x = 0; x < 4; x++)
326
+ {
327
+ LineValue += map[Y[y]*width+X[x]] * CX[x];
328
+ LineNorm += CX[x];
329
+ }
330
+
331
+ Value += LineValue * CY[y];
332
+ Norm += CY[y] * LineNorm;
333
+ }
334
+
335
+ if (Norm == 0)
336
+ {
337
+ Value = 0;
338
+ return (T)Value;
339
+ }
340
+
341
+ Value = (Value/Norm);
342
+
343
+ int size = sizeof(T);
344
+ if (size == 1)
345
+ return (T)(Value<=(TU)0? (TU)0: Value<=(TU)255? Value: (TU)255);
346
+ else
347
+ return (T)(Value);
348
+ }
349
+
350
+ /** Calculates minimum and maximum values.
351
+ * \ingroup math */
352
+ template <class T>
353
+ inline void imMinMax(const T *map, int count, T& min, T& max)
354
+ {
355
+ min = *map++;
356
+ max = min;
357
+ for (int i = 1; i < count; i++)
358
+ {
359
+ T value = *map++;
360
+
361
+ if (value > max)
362
+ max = value;
363
+ else if (value < min)
364
+ min = value;
365
+ }
366
+ }
367
+
368
+ #endif
@@ -0,0 +1,214 @@
1
+ /** \file
2
+ * \brief Math Operations
3
+ *
4
+ * See Copyright Notice in im_lib.h
5
+ */
6
+
7
+ #ifndef __IM_MATH_OP_H
8
+ #define __IM_MATH_OP_H
9
+
10
+ #include "im_complex.h"
11
+
12
+
13
+ /// Crop value to Byte limit
14
+ template <class T>
15
+ inline T crop_byte(const T& v)
16
+ {
17
+ return v < 0? 0: v > 255? 255: v;
18
+ }
19
+
20
+ /// Generic Addition with 2 template types
21
+ template <class T1, class T2>
22
+ inline T1 add_op(const T1& v1, const T2& v2)
23
+ {
24
+ return v2 + v1;
25
+ }
26
+
27
+ /// Generic Subtraction with 2 template types
28
+ template <class T1, class T2>
29
+ inline T1 sub_op(const T1& v1, const T2& v2)
30
+ {
31
+ return v2 - v1;
32
+ }
33
+
34
+ /// Generic Multiplication with 2 template types
35
+ template <class T1, class T2>
36
+ inline T1 mul_op(const T1& v1, const T2& v2)
37
+ {
38
+ return v2 * v1;
39
+ }
40
+
41
+ /// Generic Division with 2 template types
42
+ template <class T1, class T2>
43
+ inline T1 div_op(const T1& v1, const T2& v2)
44
+ {
45
+ return v1 / v2;
46
+ }
47
+
48
+ /// Generic Invert
49
+ template <class T>
50
+ inline T inv_op(const T& v)
51
+ {
52
+ return 1/v;
53
+ }
54
+
55
+ /// Generic Difference with 2 template types
56
+ template <class T1, class T2>
57
+ inline T1 diff_op(const T1& v1, const T2& v2)
58
+ {
59
+ if (v1 < v2)
60
+ return v2 - v1;
61
+ return v1 - v2;
62
+ }
63
+
64
+ /// Generic Minimum with 2 template types
65
+ template <class T1, class T2>
66
+ inline T1 min_op(const T1& v1, const T2& v2)
67
+ {
68
+ if (v1 < v2)
69
+ return v1;
70
+ return v2;
71
+ }
72
+
73
+ /// Generic Maximum with 2 template types
74
+ template <class T1, class T2>
75
+ inline T1 max_op(const T1& v1, const T2& v2)
76
+ {
77
+ if (v1 < v2)
78
+ return v2;
79
+ return v1;
80
+ }
81
+
82
+ inline imbyte pow_op(const imbyte& v1, const imbyte& v2)
83
+ {
84
+ return (imbyte)pow((float)v1, v2);
85
+ }
86
+
87
+ inline imushort pow_op(const imushort& v1, const imushort& v2)
88
+ {
89
+ return (imushort)pow((float)v1, v2);
90
+ }
91
+
92
+ inline int pow_op(const int& v1, const int& v2)
93
+ {
94
+ return (int)pow((float)v1, v2);
95
+ }
96
+
97
+ /// Generic Power with 2 template types
98
+ template <class T1, class T2>
99
+ inline T1 pow_op(const T1& v1, const T2& v2)
100
+ {
101
+ return (T1)pow(v1, v2);
102
+ }
103
+
104
+ /// Generic Abssolute
105
+ template <class T>
106
+ inline T abs_op(const T& v)
107
+ {
108
+ if (v < 0)
109
+ return -1*v;
110
+ return v;
111
+ }
112
+
113
+ /// Generic Less
114
+ template <class T>
115
+ inline T less_op(const T& v)
116
+ {
117
+ return -1*v;
118
+ }
119
+
120
+ /// Generic Square
121
+ template <class T>
122
+ inline T sqr_op(const T& v)
123
+ {
124
+ return v*v;
125
+ }
126
+
127
+ inline int sqrt(const int& C)
128
+ {
129
+ return (int)sqrt(float(C));
130
+ }
131
+
132
+ /// Generic Square Root
133
+ template <class T>
134
+ inline T sqrt_op(const T& v)
135
+ {
136
+ return (T)sqrt(v);
137
+ }
138
+
139
+ inline int exp(const int& v)
140
+ {
141
+ return (int)exp((float)v);
142
+ }
143
+
144
+ /// Generic Exponential
145
+ template <class T>
146
+ inline T exp_op(const T& v)
147
+ {
148
+ return (T)exp(v);
149
+ }
150
+
151
+ inline int log(const int& v)
152
+ {
153
+ return (int)log((float)v);
154
+ }
155
+
156
+ /// Generic Logarithm
157
+ template <class T>
158
+ inline T log_op(const T& v)
159
+ {
160
+ return (T)log(v);
161
+ }
162
+
163
+ // Dummy sin
164
+ inline imcfloat sin(const imcfloat& v)
165
+ {
166
+ return (v);
167
+ }
168
+
169
+ inline int sin(const int& v)
170
+ {
171
+ return (int)sin((float)v);
172
+ }
173
+
174
+ /// Generic Sine
175
+ template <class T>
176
+ inline T sin_op(const T& v)
177
+ {
178
+ return (T)sin(v);
179
+ }
180
+
181
+ inline int cos(const int& v)
182
+ {
183
+ return (int)cos((float)v);
184
+ }
185
+
186
+ // Dummy cos
187
+ inline imcfloat cos(const imcfloat& v)
188
+ {
189
+ return (v);
190
+ }
191
+
192
+ /// Generic Cosine
193
+ template <class T>
194
+ inline T cos_op(const T& v)
195
+ {
196
+ return (T)cos(v);
197
+ }
198
+
199
+ /// Sets a bit in an array
200
+ inline void imDataBitSet(imbyte* data, int index, int bit)
201
+ {
202
+ if (bit)
203
+ data[index / 8] |= (0x01 << (7 - (index % 8)));
204
+ else
205
+ data[index / 8] &= ~(0x01 << (7 - (index % 8)));
206
+ }
207
+
208
+ /// Gets a bit from an array
209
+ inline int imDataBitGet(imbyte* data, int index)
210
+ {
211
+ return (data[index / 8] >> (7 - (index % 8))) & 0x01;
212
+ }
213
+
214
+ #endif