ruby-processing 1.0.11 → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (818) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.travis.yml +6 -0
  4. data/.yardopts +5 -0
  5. data/CHANGELOG +81 -0
  6. data/CONTRIBUTING.md +33 -0
  7. data/Gemfile +6 -0
  8. data/{LICENSE → LICENSE.md} +6 -4
  9. data/README.md +114 -0
  10. data/Rakefile +37 -0
  11. data/bin/install_jruby_complete +13 -0
  12. data/lib/ruby-processing.rb +3 -10
  13. data/lib/ruby-processing/app.rb +92 -137
  14. data/lib/ruby-processing/config.rb +14 -3
  15. data/lib/ruby-processing/exporters/application_exporter.rb +9 -5
  16. data/lib/ruby-processing/exporters/base_exporter.rb +3 -3
  17. data/lib/ruby-processing/exporters/creator.rb +4 -4
  18. data/lib/ruby-processing/exporters/exporters.rb +7 -0
  19. data/lib/ruby-processing/helper_methods.rb +18 -7
  20. data/lib/ruby-processing/library_loader.rb +17 -16
  21. data/lib/ruby-processing/runner.rb +38 -34
  22. data/lib/ruby-processing/runners/base.rb +1 -13
  23. data/lib/ruby-processing/runners/run.rb +2 -1
  24. data/lib/ruby-processing/runners/watch.rb +1 -1
  25. data/lib/ruby-processing/version.rb +3 -0
  26. data/lib/templates/application/Contents/Info.plist.erb +2 -2
  27. data/lib/templates/application/lib/args.txt.erb +1 -1
  28. data/lib/templates/application/run.erb +2 -1
  29. data/lib/templates/create/blank_sketch.rb.erb +4 -12
  30. data/lib/templates/create/p3d_sketch.rb.erb +7 -0
  31. data/library/boids/boids.rb +76 -58
  32. data/library/control_panel/control_panel.rb +21 -18
  33. data/library/file_chooser/file_chooser.rb +90 -0
  34. data/library/vecmath/vecmath.rb +323 -0
  35. data/ruby-processing.gemspec +54 -0
  36. data/samples/contributed/animator.rb +9 -4
  37. data/samples/contributed/bezier_playground.rb +178 -184
  38. data/samples/contributed/circle_collision.rb +164 -171
  39. data/samples/contributed/drawolver.rb +111 -162
  40. data/samples/contributed/empathy.rb +14 -12
  41. data/samples/contributed/fern.rb +1 -1
  42. data/samples/contributed/fibonacci_sphere.rb +125 -0
  43. data/samples/contributed/flight_patterns.rb +7 -14
  44. data/samples/contributed/full_screen.rb +4 -6
  45. data/samples/contributed/grapher.rb +35 -0
  46. data/samples/contributed/gravity.rb +22 -24
  47. data/samples/contributed/jwishy.rb +75 -63
  48. data/samples/contributed/mandelbrot.rb +82 -0
  49. data/samples/contributed/orbit.rb +5 -4
  50. data/samples/contributed/pong.rb +152 -150
  51. data/samples/contributed/quadraticvertex.rb +98 -0
  52. data/samples/contributed/re_sample.rb +27 -0
  53. data/samples/contributed/simple_buffer.rb +38 -43
  54. data/samples/contributed/tree.rb +63 -70
  55. data/samples/external_library/java_processing/README +3 -0
  56. data/samples/external_library/java_processing/fisica/README +1 -0
  57. data/samples/external_library/java_processing/fisica/bubbles.rb +80 -0
  58. data/samples/external_library/java_processing/fisica/joints.rb +112 -0
  59. data/samples/external_library/java_processing/fisica/polygons.rb +79 -0
  60. data/samples/external_library/java_processing/fisica/raycast.rb +61 -0
  61. data/samples/external_library/java_processing/generative_design/mesh_example.rb +25 -0
  62. data/samples/external_library/java_processing/generative_design/node_spring_attractor.rb +83 -0
  63. data/samples/external_library/java_processing/generative_design/sub_class_example.rb +44 -0
  64. data/samples/external_library/java_processing/geomerative/data/FreeSans.ttf +0 -0
  65. data/samples/external_library/java_processing/geomerative/data/Toucan.svg +43 -0
  66. data/samples/external_library/java_processing/geomerative/hello_bot_ignore_styles.rb +38 -0
  67. data/samples/external_library/java_processing/geomerative/hello_world_rotate_firstletter.rb +43 -0
  68. data/samples/external_library/java_processing/geomerative/hola_mundo.rb +37 -0
  69. data/samples/external_library/java_processing/grafica/data/OktoberfestVSGermanElections.csv +118 -0
  70. data/samples/external_library/java_processing/grafica/default_plot.rb +30 -0
  71. data/samples/external_library/java_processing/grafica/multiple_panels.rb +117 -0
  72. data/samples/external_library/java_processing/grafica/oktoberfest_example.rb +83 -0
  73. data/samples/external_library/java_processing/hemesh/data/java_args.txt +2 -0
  74. data/samples/external_library/java_processing/hemesh/library/vbo/mesh_to_vbo.rb +43 -0
  75. data/samples/external_library/java_processing/hemesh/twin_iso.rb +71 -0
  76. data/samples/external_library/java_processing/pbox2d/bumpy_surface_noise.rb +57 -0
  77. data/samples/external_library/java_processing/pbox2d/contact_test.rb +23 -0
  78. data/samples/external_library/java_processing/pbox2d/data/java_args.txt +2 -0
  79. data/samples/external_library/java_processing/pbox2d/library/custom_shape/custom_shape.rb +158 -0
  80. data/samples/external_library/java_processing/pbox2d/library/particle_system/particle_system.rb +212 -0
  81. data/samples/external_library/java_processing/pbox2d/library/surface/surface.rb +154 -0
  82. data/samples/external_library/java_processing/pbox2d/liquidy.rb +58 -0
  83. data/samples/external_library/java_processing/pbox2d/polygons.rb +58 -0
  84. data/samples/{peasy_cam → external_library/java_processing/peasy_cam}/hello_peasy.rb +4 -4
  85. data/samples/external_library/java_processing/peasy_cam/hilbert_fractal.rb +34 -0
  86. data/samples/{peasy_cam → external_library/java_processing/peasy_cam}/library/hilbert/hilbert.rb +1 -1
  87. data/samples/external_library/java_processing/proscene/cad_camera.rb +57 -0
  88. data/samples/external_library/java_processing/proscene/camera_customization.rb +114 -0
  89. data/samples/external_library/java_processing/proscene/data/ti_yong.png +0 -0
  90. data/samples/external_library/java_processing/toxiclibs/data/ti_yong.png +0 -0
  91. data/samples/external_library/java_processing/toxiclibs/gray_scott_image.rb +79 -0
  92. data/samples/external_library/java_processing/toxiclibs/gray_scott_tone_map.rb +78 -0
  93. data/samples/external_library/java_processing/toxiclibs/implicit.rb +143 -0
  94. data/samples/external_library/java_processing/toxiclibs/library/vbo/mesh_to_vbo.rb +52 -0
  95. data/samples/external_library/java_processing/toxiclibs/model_align.rb +55 -0
  96. data/samples/external_library/ruby_gem/README +12 -0
  97. data/samples/external_library/ruby_gem/data/README.txt +1 -0
  98. data/samples/external_library/ruby_gem/data/java_args.txt +2 -0
  99. data/samples/external_library/ruby_gem/game_of_life.rb +127 -0
  100. data/samples/external_library/ruby_gem/mdarray_test.rb +28 -0
  101. data/samples/processing_app/basics/arrays/array.rb +23 -29
  102. data/samples/processing_app/basics/arrays/array_2d.rb +22 -28
  103. data/samples/processing_app/basics/arrays/array_objects.rb +50 -55
  104. data/samples/processing_app/basics/camera/move_eye.rb +24 -0
  105. data/samples/processing_app/{3D → basics}/camera/perspective.rb +0 -0
  106. data/samples/processing_app/basics/color/brightness.rb +15 -21
  107. data/samples/processing_app/basics/color/color_wheel.rb +72 -79
  108. data/samples/processing_app/basics/color/creating.rb +35 -24
  109. data/samples/processing_app/basics/color/hue.rb +16 -22
  110. data/samples/processing_app/basics/color/linear_gradient.rb +35 -40
  111. data/samples/processing_app/basics/color/radial_gradient.rb +26 -34
  112. data/samples/processing_app/basics/color/reading/reading.rb +2 -7
  113. data/samples/processing_app/basics/color/relativity.rb +19 -32
  114. data/samples/processing_app/basics/color/saturation.rb +15 -26
  115. data/samples/processing_app/basics/color/wave_gradient.rb +25 -36
  116. data/samples/processing_app/basics/control/conditionals1.rb +20 -25
  117. data/samples/processing_app/basics/control/conditionals2.rb +27 -32
  118. data/samples/processing_app/basics/control/embedded_iteration.rb +25 -33
  119. data/samples/processing_app/basics/control/iteration.rb +43 -54
  120. data/samples/processing_app/basics/control/logical_operators.rb +45 -48
  121. data/samples/processing_app/basics/data/characters_strings.rb +50 -0
  122. data/samples/processing_app/basics/data/datatype_conversion.rb +28 -32
  123. data/samples/processing_app/basics/data/integers_floats.rb +18 -24
  124. data/samples/processing_app/basics/data/true_false.rb +19 -25
  125. data/samples/processing_app/basics/data/variable_scope.rb +51 -57
  126. data/samples/processing_app/basics/data/variables.rb +27 -32
  127. data/samples/processing_app/basics/form/bezier.rb +11 -14
  128. data/samples/processing_app/basics/form/bezier_ellipse.rb +79 -90
  129. data/samples/processing_app/basics/form/brick_tower.rb +92 -0
  130. data/samples/processing_app/basics/form/cubic_grid.rb +39 -0
  131. data/samples/processing_app/{3D → basics}/form/icosahedra/icosahedra.rb +32 -36
  132. data/samples/processing_app/{3D → basics}/form/icosahedra/icosahedron.rb +1 -1
  133. data/samples/processing_app/{3D → basics}/form/icosahedra/shape_3D.rb +0 -0
  134. data/samples/processing_app/basics/form/pie_chart.rb +17 -21
  135. data/samples/processing_app/basics/form/points_lines.rb +11 -16
  136. data/samples/processing_app/{3D → basics}/form/primitives.rb +11 -25
  137. data/samples/processing_app/basics/form/regular_polygon.rb +46 -0
  138. data/samples/processing_app/basics/form/rgb_cube.rb +68 -0
  139. data/samples/processing_app/basics/form/shape_primitives.rb +15 -17
  140. data/samples/processing_app/basics/form/shape_transform.rb +88 -0
  141. data/samples/processing_app/basics/form/star.rb +48 -0
  142. data/samples/processing_app/basics/form/toroid.rb +127 -0
  143. data/samples/processing_app/basics/form/triangle_strip.rb +29 -33
  144. data/samples/processing_app/basics/form/vertices.rb +36 -40
  145. data/samples/processing_app/basics/image/alphamask.rb +10 -16
  146. data/samples/processing_app/basics/image/background_image.rb +16 -22
  147. data/samples/processing_app/basics/image/create_image.rb +10 -16
  148. data/samples/processing_app/{3D → basics}/image/data/ystone08.jpg +0 -0
  149. data/samples/processing_app/basics/image/extrusion.rb +46 -0
  150. data/samples/processing_app/basics/image/load_display_image.rb +12 -19
  151. data/samples/processing_app/basics/image/pointillism.rb +13 -19
  152. data/samples/processing_app/basics/image/request_image.rb +41 -50
  153. data/samples/processing_app/basics/image/sprite.rb +19 -25
  154. data/samples/processing_app/basics/image/transparency.rb +14 -20
  155. data/samples/processing_app/basics/image/zoom.rb +59 -0
  156. data/samples/processing_app/basics/input/clock.rb +32 -38
  157. data/samples/processing_app/basics/input/constrain.rb +25 -31
  158. data/samples/processing_app/basics/input/easing.rb +18 -20
  159. data/samples/processing_app/basics/input/keyboard.rb +16 -22
  160. data/samples/processing_app/basics/input/keyboard_functions.rb +49 -68
  161. data/samples/processing_app/basics/input/milliseconds.rb +11 -16
  162. data/samples/processing_app/basics/input/mouse_1d.rb +19 -26
  163. data/samples/processing_app/basics/input/mouse_2d.rb +14 -20
  164. data/samples/processing_app/basics/input/mouse_functions.rb +56 -61
  165. data/samples/processing_app/basics/input/mouse_press.rb +9 -15
  166. data/samples/processing_app/basics/input/mouse_signals.rb +29 -34
  167. data/samples/processing_app/basics/input/storing_input.rb +28 -29
  168. data/samples/processing_app/basics/lights/directional.rb +37 -0
  169. data/samples/processing_app/basics/lights/lights1.rb +35 -0
  170. data/samples/processing_app/basics/lights/lights2.rb +38 -0
  171. data/samples/processing_app/basics/lights/reflection.rb +35 -0
  172. data/samples/processing_app/basics/lights/spot.rb +36 -0
  173. data/samples/processing_app/basics/math/additive_wave.rb +51 -53
  174. data/samples/processing_app/basics/math/arctangent.rb +34 -44
  175. data/samples/processing_app/basics/math/distance1.rb +44 -50
  176. data/samples/processing_app/basics/math/distance2.rb +14 -30
  177. data/samples/processing_app/basics/math/double_random.rb +23 -30
  178. data/samples/processing_app/basics/math/graphing_2_d_equation.rb +30 -44
  179. data/samples/processing_app/basics/math/increment_decrement.rb +37 -42
  180. data/samples/processing_app/basics/math/interpolate.rb +34 -0
  181. data/samples/processing_app/basics/math/modulo.rb +25 -29
  182. data/samples/processing_app/basics/math/noise_1_d.rb +14 -30
  183. data/samples/processing_app/basics/math/noise_2_d.rb +22 -39
  184. data/samples/processing_app/basics/math/noise_3_d.rb +24 -44
  185. data/samples/processing_app/basics/math/noise_wave.rb +35 -55
  186. data/samples/processing_app/basics/math/operator_precedence.rb +24 -45
  187. data/samples/processing_app/basics/math/polar_to_cartesian.rb +22 -35
  188. data/samples/processing_app/basics/math/random.rb +13 -27
  189. data/samples/processing_app/basics/math/random_gaussian.rb +23 -0
  190. data/samples/processing_app/basics/math/sine.rb +27 -41
  191. data/samples/processing_app/basics/math/sine_cosine.rb +37 -49
  192. data/samples/processing_app/basics/math/sine_wave.rb +33 -52
  193. data/samples/processing_app/basics/objects/composite_objects.rb +94 -120
  194. data/samples/processing_app/basics/objects/inheritance.rb +64 -86
  195. data/samples/processing_app/basics/objects/multiple_constructors.rb +25 -38
  196. data/samples/processing_app/basics/objects/objects.rb +42 -57
  197. data/samples/processing_app/basics/shape/data/rocket.mtl +8 -0
  198. data/samples/processing_app/basics/shape/data/rocket.obj +1688 -0
  199. data/samples/processing_app/basics/shape/data/rocket.png +0 -0
  200. data/samples/processing_app/basics/shape/disable_style.rb +21 -25
  201. data/samples/processing_app/basics/shape/get_child.rb +27 -30
  202. data/samples/processing_app/basics/shape/load_display_obj.rb +25 -0
  203. data/samples/processing_app/basics/shape/load_display_shape.rb +10 -23
  204. data/samples/processing_app/basics/shape/load_display_svg.rb +22 -0
  205. data/samples/processing_app/basics/shape/scale_shape.rb +13 -23
  206. data/samples/processing_app/basics/structure/coordinates.rb +12 -25
  207. data/samples/processing_app/basics/structure/create_graphics.rb +18 -28
  208. data/samples/processing_app/basics/structure/functions.rb +19 -31
  209. data/samples/processing_app/basics/structure/loop.rb +21 -35
  210. data/samples/processing_app/basics/structure/noloop.rb +13 -25
  211. data/samples/processing_app/basics/structure/recursion1.rb +18 -33
  212. data/samples/processing_app/basics/structure/recursion2.rb +18 -34
  213. data/samples/processing_app/basics/structure/redraw.rb +16 -27
  214. data/samples/processing_app/basics/structure/setup_draw.rb +11 -22
  215. data/samples/processing_app/basics/structure/statements_comments.rb +7 -13
  216. data/samples/processing_app/basics/structure/width_height.rb +7 -14
  217. data/samples/processing_app/{3D → basics}/textures/data/berlin-1.jpg +0 -0
  218. data/samples/processing_app/basics/textures/texture1.rb +28 -0
  219. data/samples/processing_app/basics/textures/texture2.rb +33 -0
  220. data/samples/processing_app/basics/textures/texture3.rb +64 -0
  221. data/samples/processing_app/basics/textures/texture_cube.rb +86 -0
  222. data/samples/processing_app/basics/transform/arm.rb +22 -37
  223. data/samples/processing_app/basics/transform/bird.rb +57 -0
  224. data/samples/processing_app/basics/transform/birds.rb +38 -0
  225. data/samples/processing_app/basics/transform/cubes_in_cube.rb +99 -0
  226. data/samples/processing_app/{3D/transform/birds → basics/transform/library/bird}/bird.rb +0 -0
  227. data/samples/processing_app/{3D/transform/cubes_in_cube → basics/transform/library/cube}/cube.rb +10 -12
  228. data/samples/processing_app/basics/transform/rotate.rb +17 -31
  229. data/samples/processing_app/basics/transform/rotate1.rb +27 -0
  230. data/samples/processing_app/basics/transform/rotate_push_pop.rb +35 -0
  231. data/samples/processing_app/basics/transform/rotate_x_y.rb +36 -0
  232. data/samples/processing_app/basics/transform/scale.rb +19 -35
  233. data/samples/processing_app/basics/transform/translate.rb +18 -32
  234. data/samples/processing_app/basics/transform/triangle_flower.rb +38 -55
  235. data/samples/processing_app/{3D → basics}/typography/data/Univers45.vlw +0 -0
  236. data/samples/processing_app/{3D → basics}/typography/kinetic_type.rb +1 -5
  237. data/samples/processing_app/basics/typography/letters.rb +26 -44
  238. data/samples/processing_app/basics/typography/words.rb +29 -30
  239. data/samples/processing_app/basics/web/embedded_links.rb +39 -45
  240. data/samples/processing_app/basics/web/loading_images.rb +6 -16
  241. data/samples/processing_app/demos/graphics/bezier_patch.rb +227 -0
  242. data/samples/processing_app/demos/graphics/data/frag.glsl +30 -0
  243. data/samples/processing_app/demos/graphics/data/java_args.txt +2 -0
  244. data/samples/processing_app/demos/graphics/data/mercury.jpg +0 -0
  245. data/samples/processing_app/demos/graphics/data/planet.jpg +0 -0
  246. data/samples/processing_app/demos/graphics/data/starfield.jpg +0 -0
  247. data/samples/processing_app/demos/graphics/data/sun.jpg +0 -0
  248. data/samples/processing_app/demos/graphics/data/vert.glsl +31 -0
  249. data/samples/processing_app/demos/graphics/low_level_gl.rb +72 -0
  250. data/samples/processing_app/demos/graphics/planets.rb +51 -0
  251. data/samples/processing_app/demos/graphics/trefoil.rb +142 -0
  252. data/samples/processing_app/demos/graphics/wiggling.rb +289 -0
  253. data/samples/processing_app/demos/performance/cubic_grid_retained.rb +58 -0
  254. data/samples/processing_app/demos/performance/data/java_args.txt +1 -0
  255. data/samples/processing_app/demos/performance/esfera.rb +105 -0
  256. data/samples/processing_app/demos/performance/text_rendering.rb +14 -0
  257. data/samples/processing_app/demos/tests/no_background_test.rb +10 -0
  258. data/samples/processing_app/demos/tests/offscreen_test.rb +34 -0
  259. data/samples/processing_app/demos/tests/redraw_test.rb +14 -0
  260. data/samples/processing_app/demos/tests/resize_test.rb +10 -0
  261. data/samples/processing_app/demos/tests/restart_test.rb +22 -0
  262. data/samples/processing_app/demos/tests/smooth_test.rb +27 -0
  263. data/samples/processing_app/demos/tests/specs_test.rb +11 -0
  264. data/samples/processing_app/library/dxf/simple_export.rb +48 -0
  265. data/samples/processing_app/library/file_chooser/image_viewer.rb +24 -0
  266. data/samples/processing_app/library/minim/filter_example.rb +65 -0
  267. data/samples/processing_app/library/minim/frequency_modulation.rb +64 -0
  268. data/samples/processing_app/library/minim/sequence_sound.rb +59 -0
  269. data/samples/processing_app/library/minim/synthesize_sound.rb +35 -0
  270. data/samples/processing_app/library/movie/README +1 -0
  271. data/samples/processing_app/library/movie/data/transit.mkv +0 -0
  272. data/samples/processing_app/library/movie/data/transit.mov +0 -0
  273. data/samples/processing_app/library/movie/loop.rb +24 -0
  274. data/samples/processing_app/library/movie/pixelate.rb +50 -0
  275. data/samples/processing_app/library/movie/reverse.rb +47 -0
  276. data/samples/processing_app/library/movie/scratch.rb +36 -0
  277. data/samples/processing_app/library/movie/speed.rb +33 -0
  278. data/samples/processing_app/library/net/HTTPClient.rb +31 -0
  279. data/samples/processing_app/library/pdf/.gitignore +1 -0
  280. data/samples/processing_app/library/pdf/complex_3D.rb +160 -0
  281. data/samples/processing_app/library/pdf/large_page.rb +25 -0
  282. data/samples/processing_app/library/pdf/many_frames.rb +33 -0
  283. data/samples/processing_app/library/pdf/many_pages.rb +31 -0
  284. data/samples/processing_app/library/pdf/many_pdfs.rb +37 -0
  285. data/samples/processing_app/library/pdf/one_frame.rb +19 -0
  286. data/samples/processing_app/library/vecmath/README.txt +2 -0
  287. data/samples/processing_app/library/vecmath/acceleration_with_vectors.rb +75 -0
  288. data/samples/processing_app/library/vecmath/bouncing_ball.rb +51 -0
  289. data/samples/processing_app/library/vecmath/circle_collision.rb +174 -0
  290. data/samples/processing_app/library/vecmath/data/java_args.txt +2 -0
  291. data/samples/processing_app/library/vecmath/data/sprite.png +0 -0
  292. data/samples/processing_app/library/vecmath/data/texture.png +0 -0
  293. data/samples/processing_app/library/vecmath/drawolver.rb +111 -0
  294. data/samples/processing_app/library/vecmath/flocking.rb +33 -0
  295. data/samples/processing_app/library/vecmath/hilbert_fractal.rb +65 -0
  296. data/samples/processing_app/library/vecmath/library/flock/flock.rb +214 -0
  297. data/samples/processing_app/library/vecmath/library/hilbert/hilbert.rb +84 -0
  298. data/samples/processing_app/library/vecmath/library/particle/particle_system.rb +106 -0
  299. data/samples/processing_app/library/vecmath/library/wiggler/wiggler.rb +58 -0
  300. data/samples/processing_app/library/vecmath/morph.rb +86 -0
  301. data/samples/processing_app/library/vecmath/multiple_particle_systems.rb +158 -0
  302. data/samples/processing_app/library/vecmath/particle_system_pshape.rb +38 -0
  303. data/samples/processing_app/library/vecmath/reflection1.rb +108 -0
  304. data/samples/processing_app/library/vecmath/retained_menger.rb +150 -0
  305. data/samples/processing_app/library/vecmath/retained_test.rb +65 -0
  306. data/samples/processing_app/library/vecmath/retained_test2.rb +65 -0
  307. data/samples/processing_app/library/vecmath/simple_particle_system.rb +89 -0
  308. data/samples/processing_app/library/vecmath/smoke_particle_system.rb +138 -0
  309. data/samples/processing_app/library/vecmath/vector_math.rb +39 -0
  310. data/samples/processing_app/library/vecmath/wiggle_pshape.rb +22 -0
  311. data/samples/processing_app/topics/advanced_data/README +1 -0
  312. data/samples/processing_app/topics/advanced_data/counting_words.rb +79 -0
  313. data/samples/processing_app/topics/advanced_data/data/Georgia.ttf +0 -0
  314. data/samples/processing_app/topics/advanced_data/data/Merriweather-Light.ttf +0 -0
  315. data/samples/processing_app/topics/advanced_data/data/a000 copy.jpg +0 -0
  316. data/samples/processing_app/topics/advanced_data/data/a001 copy.jpg +0 -0
  317. data/samples/processing_app/topics/advanced_data/data/a002 copy.jpg +0 -0
  318. data/samples/processing_app/topics/advanced_data/data/a003 copy.jpg +0 -0
  319. data/samples/processing_app/topics/advanced_data/data/a004 copy.jpg +0 -0
  320. data/samples/processing_app/topics/advanced_data/data/a005 copy.jpg +0 -0
  321. data/samples/processing_app/topics/advanced_data/data/a006 copy.jpg +0 -0
  322. data/samples/processing_app/topics/advanced_data/data/a007 copy.jpg +0 -0
  323. data/samples/processing_app/topics/advanced_data/data/a008 copy.jpg +0 -0
  324. data/samples/processing_app/topics/advanced_data/data/a009 copy.jpg +0 -0
  325. data/samples/processing_app/topics/advanced_data/data/a010 copy.jpg +0 -0
  326. data/samples/processing_app/topics/advanced_data/data/a011 copy.jpg +0 -0
  327. data/samples/processing_app/topics/advanced_data/data/a012 copy.jpg +0 -0
  328. data/samples/processing_app/topics/advanced_data/data/a013 copy.jpg +0 -0
  329. data/samples/processing_app/topics/advanced_data/data/a014 copy.jpg +0 -0
  330. data/samples/processing_app/topics/advanced_data/data/a015 copy.jpg +0 -0
  331. data/samples/processing_app/topics/advanced_data/data/a016 copy.jpg +0 -0
  332. data/samples/processing_app/topics/advanced_data/data/a017 copy.jpg +0 -0
  333. data/samples/processing_app/topics/advanced_data/data/a018 copy.jpg +0 -0
  334. data/samples/processing_app/topics/advanced_data/data/a019 copy.jpg +0 -0
  335. data/samples/processing_app/topics/advanced_data/data/a020 copy.jpg +0 -0
  336. data/samples/processing_app/topics/advanced_data/data/a021 copy.jpg +0 -0
  337. data/samples/processing_app/topics/advanced_data/data/a022 copy.jpg +0 -0
  338. data/samples/processing_app/topics/advanced_data/data/a023 copy.jpg +0 -0
  339. data/samples/processing_app/topics/advanced_data/data/a024 copy.jpg +0 -0
  340. data/samples/processing_app/topics/advanced_data/data/a025 copy.jpg +0 -0
  341. data/samples/processing_app/topics/advanced_data/data/a026 copy.jpg +0 -0
  342. data/samples/processing_app/topics/advanced_data/data/a027 copy.jpg +0 -0
  343. data/samples/processing_app/topics/advanced_data/data/a028 copy.jpg +0 -0
  344. data/samples/processing_app/topics/advanced_data/data/a029 copy.jpg +0 -0
  345. data/samples/processing_app/topics/advanced_data/data/a030 copy.jpg +0 -0
  346. data/samples/processing_app/topics/advanced_data/data/a031 copy.jpg +0 -0
  347. data/samples/processing_app/topics/advanced_data/data/a032 copy.jpg +0 -0
  348. data/samples/processing_app/topics/advanced_data/data/a033 copy.jpg +0 -0
  349. data/samples/processing_app/topics/advanced_data/data/a034 copy.jpg +0 -0
  350. data/samples/processing_app/topics/advanced_data/data/a035 copy.jpg +0 -0
  351. data/samples/processing_app/topics/advanced_data/data/a036 copy.jpg +0 -0
  352. data/samples/processing_app/topics/advanced_data/data/a037 copy.jpg +0 -0
  353. data/samples/processing_app/topics/advanced_data/data/a038 copy.jpg +0 -0
  354. data/samples/processing_app/topics/advanced_data/data/a039 copy.jpg +0 -0
  355. data/samples/processing_app/topics/advanced_data/data/a040 copy.jpg +0 -0
  356. data/samples/processing_app/topics/advanced_data/data/a041 copy.jpg +0 -0
  357. data/samples/processing_app/topics/advanced_data/data/a042 copy.jpg +0 -0
  358. data/samples/processing_app/topics/advanced_data/data/a043 copy.jpg +0 -0
  359. data/samples/processing_app/topics/advanced_data/data/a044 copy.jpg +0 -0
  360. data/samples/processing_app/topics/advanced_data/data/a045 copy.jpg +0 -0
  361. data/samples/processing_app/topics/advanced_data/data/a046 copy.jpg +0 -0
  362. data/samples/processing_app/topics/advanced_data/data/a047 copy.jpg +0 -0
  363. data/samples/processing_app/topics/advanced_data/data/a048 copy.jpg +0 -0
  364. data/samples/processing_app/topics/advanced_data/data/a049 copy.jpg +0 -0
  365. data/samples/processing_app/topics/advanced_data/data/a050 copy.jpg +0 -0
  366. data/samples/processing_app/topics/advanced_data/data/a051 copy.jpg +0 -0
  367. data/samples/processing_app/topics/advanced_data/data/a052 copy.jpg +0 -0
  368. data/samples/processing_app/topics/advanced_data/data/a053 copy.jpg +0 -0
  369. data/samples/processing_app/topics/advanced_data/data/a054 copy.jpg +0 -0
  370. data/samples/processing_app/topics/advanced_data/data/a055 copy.jpg +0 -0
  371. data/samples/processing_app/topics/advanced_data/data/a056 copy.jpg +0 -0
  372. data/samples/processing_app/topics/advanced_data/data/a057 copy.jpg +0 -0
  373. data/samples/processing_app/topics/advanced_data/data/a058 copy.jpg +0 -0
  374. data/samples/processing_app/topics/advanced_data/data/a059 copy.jpg +0 -0
  375. data/samples/processing_app/topics/advanced_data/data/a060 copy.jpg +0 -0
  376. data/samples/processing_app/topics/advanced_data/data/a061 copy.jpg +0 -0
  377. data/samples/processing_app/topics/advanced_data/data/a062 copy.jpg +0 -0
  378. data/samples/processing_app/topics/advanced_data/data/a063 copy.jpg +0 -0
  379. data/samples/processing_app/topics/advanced_data/data/a064 copy.jpg +0 -0
  380. data/samples/processing_app/topics/advanced_data/data/a065 copy.jpg +0 -0
  381. data/samples/processing_app/topics/advanced_data/data/a066 copy.jpg +0 -0
  382. data/samples/processing_app/topics/advanced_data/data/a067 copy.jpg +0 -0
  383. data/samples/processing_app/topics/advanced_data/data/a068 copy.jpg +0 -0
  384. data/samples/processing_app/topics/advanced_data/data/a069 copy.jpg +0 -0
  385. data/samples/processing_app/topics/advanced_data/data/a070 copy.jpg +0 -0
  386. data/samples/processing_app/topics/advanced_data/data/a071 copy.jpg +0 -0
  387. data/samples/processing_app/topics/advanced_data/data/a072 copy.jpg +0 -0
  388. data/samples/processing_app/topics/advanced_data/data/a073 copy.jpg +0 -0
  389. data/samples/processing_app/topics/advanced_data/data/a074 copy.jpg +0 -0
  390. data/samples/processing_app/topics/advanced_data/data/a075 copy.jpg +0 -0
  391. data/samples/processing_app/topics/advanced_data/data/a076 copy.jpg +0 -0
  392. data/samples/processing_app/topics/advanced_data/data/a077 copy.jpg +0 -0
  393. data/samples/processing_app/topics/advanced_data/data/a078 copy.jpg +0 -0
  394. data/samples/processing_app/topics/advanced_data/data/a079 copy.jpg +0 -0
  395. data/samples/processing_app/topics/advanced_data/data/a080 copy.jpg +0 -0
  396. data/samples/processing_app/topics/advanced_data/data/a081 copy.jpg +0 -0
  397. data/samples/processing_app/topics/advanced_data/data/a082 copy.jpg +0 -0
  398. data/samples/processing_app/topics/advanced_data/data/a083 copy.jpg +0 -0
  399. data/samples/processing_app/topics/advanced_data/data/a084 copy.jpg +0 -0
  400. data/samples/processing_app/topics/advanced_data/data/a085 copy.jpg +0 -0
  401. data/samples/processing_app/topics/advanced_data/data/a086 copy.jpg +0 -0
  402. data/samples/processing_app/topics/advanced_data/data/a087 copy.jpg +0 -0
  403. data/samples/processing_app/topics/advanced_data/data/a088 copy.jpg +0 -0
  404. data/samples/processing_app/topics/advanced_data/data/a089 copy.jpg +0 -0
  405. data/samples/processing_app/topics/advanced_data/data/a090 copy.jpg +0 -0
  406. data/samples/processing_app/topics/advanced_data/data/a091 copy.jpg +0 -0
  407. data/samples/processing_app/topics/advanced_data/data/a092 copy.jpg +0 -0
  408. data/samples/processing_app/topics/advanced_data/data/a093 copy.jpg +0 -0
  409. data/samples/processing_app/topics/advanced_data/data/a094 copy.jpg +0 -0
  410. data/samples/processing_app/topics/advanced_data/data/a095 copy.jpg +0 -0
  411. data/samples/processing_app/topics/advanced_data/data/a096 copy.jpg +0 -0
  412. data/samples/processing_app/topics/advanced_data/data/a097 copy.jpg +0 -0
  413. data/samples/processing_app/topics/advanced_data/data/a098 copy.jpg +0 -0
  414. data/samples/processing_app/topics/advanced_data/data/a099 copy.jpg +0 -0
  415. data/samples/processing_app/topics/advanced_data/data/a100 copy.jpg +0 -0
  416. data/samples/processing_app/topics/advanced_data/data/a101 copy.jpg +0 -0
  417. data/samples/processing_app/topics/advanced_data/data/a102 copy.jpg +0 -0
  418. data/samples/processing_app/topics/advanced_data/data/a103 copy.jpg +0 -0
  419. data/samples/processing_app/topics/advanced_data/data/a104 copy.jpg +0 -0
  420. data/samples/processing_app/topics/advanced_data/data/a105 copy.jpg +0 -0
  421. data/samples/processing_app/topics/advanced_data/data/a106 copy.jpg +0 -0
  422. data/samples/processing_app/topics/advanced_data/data/a107 copy.jpg +0 -0
  423. data/samples/processing_app/topics/advanced_data/data/a108 copy.jpg +0 -0
  424. data/samples/processing_app/topics/advanced_data/data/a109 copy.jpg +0 -0
  425. data/samples/processing_app/topics/advanced_data/data/a110 copy.jpg +0 -0
  426. data/samples/processing_app/topics/advanced_data/data/a111 copy.jpg +0 -0
  427. data/samples/processing_app/topics/advanced_data/data/a112 copy.jpg +0 -0
  428. data/samples/processing_app/topics/advanced_data/data/a113 copy.jpg +0 -0
  429. data/samples/processing_app/topics/advanced_data/data/a114 copy.jpg +0 -0
  430. data/samples/processing_app/topics/advanced_data/data/a115 copy.jpg +0 -0
  431. data/samples/processing_app/topics/advanced_data/data/data.csv +5 -0
  432. data/samples/processing_app/topics/advanced_data/data/data.json +36 -0
  433. data/samples/processing_app/topics/advanced_data/data/data.xml +38 -0
  434. data/samples/processing_app/topics/advanced_data/data/data.yml +22 -0
  435. data/samples/processing_app/topics/advanced_data/data/dracula.txt +16624 -0
  436. data/samples/processing_app/topics/advanced_data/data/frankenstein.txt +7652 -0
  437. data/samples/processing_app/topics/advanced_data/data/struct_data.yml +22 -0
  438. data/samples/processing_app/topics/advanced_data/library/bubble/bubble.rb +45 -0
  439. data/samples/processing_app/topics/advanced_data/library/word/word.rb +64 -0
  440. data/samples/processing_app/topics/advanced_data/load_save_XML.rb +114 -0
  441. data/samples/processing_app/topics/advanced_data/load_save_json.rb +93 -0
  442. data/samples/processing_app/topics/advanced_data/load_save_struct_yaml.rb +85 -0
  443. data/samples/processing_app/topics/advanced_data/load_save_table.rb +85 -0
  444. data/samples/processing_app/topics/advanced_data/load_save_yaml.rb +89 -0
  445. data/samples/processing_app/topics/advanced_data/regex.rb +47 -0
  446. data/samples/processing_app/topics/advanced_data/threads.rb +96 -0
  447. data/samples/processing_app/topics/advanced_data/threads_two.rb +52 -0
  448. data/samples/processing_app/topics/advanced_data/word_frequency.rb +78 -0
  449. data/samples/processing_app/topics/advanced_data/yahoo_weather.rb +38 -0
  450. data/samples/processing_app/topics/animation/README.txt +1 -0
  451. data/samples/processing_app/topics/animation/animated_sprite.rb +58 -0
  452. data/samples/processing_app/topics/animation/data/PT_Shifty_0000.gif +0 -0
  453. data/samples/processing_app/topics/animation/data/PT_Shifty_0001.gif +0 -0
  454. data/samples/processing_app/topics/animation/data/PT_Shifty_0002.gif +0 -0
  455. data/samples/processing_app/topics/animation/data/PT_Shifty_0003.gif +0 -0
  456. data/samples/processing_app/topics/animation/data/PT_Shifty_0004.gif +0 -0
  457. data/samples/processing_app/topics/animation/data/PT_Shifty_0005.gif +0 -0
  458. data/samples/processing_app/topics/animation/data/PT_Shifty_0006.gif +0 -0
  459. data/samples/processing_app/topics/animation/data/PT_Shifty_0007.gif +0 -0
  460. data/samples/processing_app/topics/animation/data/PT_Shifty_0008.gif +0 -0
  461. data/samples/processing_app/topics/animation/data/PT_Shifty_0009.gif +0 -0
  462. data/samples/processing_app/topics/animation/data/PT_Shifty_0010.gif +0 -0
  463. data/samples/processing_app/topics/animation/data/PT_Shifty_0011.gif +0 -0
  464. data/samples/processing_app/topics/animation/data/PT_Shifty_0012.gif +0 -0
  465. data/samples/processing_app/topics/animation/data/PT_Shifty_0013.gif +0 -0
  466. data/samples/processing_app/topics/animation/data/PT_Shifty_0014.gif +0 -0
  467. data/samples/processing_app/topics/animation/data/PT_Shifty_0015.gif +0 -0
  468. data/samples/processing_app/topics/animation/data/PT_Shifty_0016.gif +0 -0
  469. data/samples/processing_app/topics/animation/data/PT_Shifty_0017.gif +0 -0
  470. data/samples/processing_app/topics/animation/data/PT_Shifty_0018.gif +0 -0
  471. data/samples/processing_app/topics/animation/data/PT_Shifty_0019.gif +0 -0
  472. data/samples/processing_app/topics/animation/data/PT_Shifty_0020.gif +0 -0
  473. data/samples/processing_app/topics/animation/data/PT_Shifty_0021.gif +0 -0
  474. data/samples/processing_app/topics/animation/data/PT_Shifty_0022.gif +0 -0
  475. data/samples/processing_app/topics/animation/data/PT_Shifty_0023.gif +0 -0
  476. data/samples/processing_app/topics/animation/data/PT_Shifty_0024.gif +0 -0
  477. data/samples/processing_app/topics/animation/data/PT_Shifty_0025.gif +0 -0
  478. data/samples/processing_app/topics/animation/data/PT_Shifty_0026.gif +0 -0
  479. data/samples/processing_app/topics/animation/data/PT_Shifty_0027.gif +0 -0
  480. data/samples/processing_app/topics/animation/data/PT_Shifty_0028.gif +0 -0
  481. data/samples/processing_app/topics/animation/data/PT_Shifty_0029.gif +0 -0
  482. data/samples/processing_app/topics/animation/data/PT_Shifty_0030.gif +0 -0
  483. data/samples/processing_app/topics/animation/data/PT_Shifty_0031.gif +0 -0
  484. data/samples/processing_app/topics/animation/data/PT_Shifty_0032.gif +0 -0
  485. data/samples/processing_app/topics/animation/data/PT_Shifty_0033.gif +0 -0
  486. data/samples/processing_app/topics/animation/data/PT_Shifty_0034.gif +0 -0
  487. data/samples/processing_app/topics/animation/data/PT_Shifty_0035.gif +0 -0
  488. data/samples/processing_app/topics/animation/data/PT_Shifty_0036.gif +0 -0
  489. data/samples/processing_app/topics/animation/data/PT_Shifty_0037.gif +0 -0
  490. data/samples/processing_app/topics/animation/data/PT_Teddy_0000.gif +0 -0
  491. data/samples/processing_app/topics/animation/data/PT_Teddy_0001.gif +0 -0
  492. data/samples/processing_app/topics/animation/data/PT_Teddy_0002.gif +0 -0
  493. data/samples/processing_app/topics/animation/data/PT_Teddy_0003.gif +0 -0
  494. data/samples/processing_app/topics/animation/data/PT_Teddy_0004.gif +0 -0
  495. data/samples/processing_app/topics/animation/data/PT_Teddy_0005.gif +0 -0
  496. data/samples/processing_app/topics/animation/data/PT_Teddy_0006.gif +0 -0
  497. data/samples/processing_app/topics/animation/data/PT_Teddy_0007.gif +0 -0
  498. data/samples/processing_app/topics/animation/data/PT_Teddy_0008.gif +0 -0
  499. data/samples/processing_app/topics/animation/data/PT_Teddy_0009.gif +0 -0
  500. data/samples/processing_app/topics/animation/data/PT_Teddy_0010.gif +0 -0
  501. data/samples/processing_app/topics/animation/data/PT_Teddy_0011.gif +0 -0
  502. data/samples/processing_app/topics/animation/data/PT_Teddy_0012.gif +0 -0
  503. data/samples/processing_app/topics/animation/data/PT_Teddy_0013.gif +0 -0
  504. data/samples/processing_app/topics/animation/data/PT_Teddy_0014.gif +0 -0
  505. data/samples/processing_app/topics/animation/data/PT_Teddy_0015.gif +0 -0
  506. data/samples/processing_app/topics/animation/data/PT_Teddy_0016.gif +0 -0
  507. data/samples/processing_app/topics/animation/data/PT_Teddy_0017.gif +0 -0
  508. data/samples/processing_app/topics/animation/data/PT_Teddy_0018.gif +0 -0
  509. data/samples/processing_app/topics/animation/data/PT_Teddy_0019.gif +0 -0
  510. data/samples/processing_app/topics/animation/data/PT_Teddy_0020.gif +0 -0
  511. data/samples/processing_app/topics/animation/data/PT_Teddy_0021.gif +0 -0
  512. data/samples/processing_app/topics/animation/data/PT_Teddy_0022.gif +0 -0
  513. data/samples/processing_app/topics/animation/data/PT_Teddy_0023.gif +0 -0
  514. data/samples/processing_app/topics/animation/data/PT_Teddy_0024.gif +0 -0
  515. data/samples/processing_app/topics/animation/data/PT_Teddy_0025.gif +0 -0
  516. data/samples/processing_app/topics/animation/data/PT_Teddy_0026.gif +0 -0
  517. data/samples/processing_app/topics/animation/data/PT_Teddy_0027.gif +0 -0
  518. data/samples/processing_app/topics/animation/data/PT_Teddy_0028.gif +0 -0
  519. data/samples/processing_app/topics/animation/data/PT_Teddy_0029.gif +0 -0
  520. data/samples/processing_app/topics/animation/data/PT_Teddy_0030.gif +0 -0
  521. data/samples/processing_app/topics/animation/data/PT_Teddy_0031.gif +0 -0
  522. data/samples/processing_app/topics/animation/data/PT_Teddy_0032.gif +0 -0
  523. data/samples/processing_app/topics/animation/data/PT_Teddy_0033.gif +0 -0
  524. data/samples/processing_app/topics/animation/data/PT_Teddy_0034.gif +0 -0
  525. data/samples/processing_app/topics/animation/data/PT_Teddy_0035.gif +0 -0
  526. data/samples/processing_app/topics/animation/data/PT_Teddy_0036.gif +0 -0
  527. data/samples/processing_app/topics/animation/data/PT_Teddy_0037.gif +0 -0
  528. data/samples/processing_app/topics/animation/data/PT_Teddy_0038.gif +0 -0
  529. data/samples/processing_app/topics/animation/data/PT_Teddy_0039.gif +0 -0
  530. data/samples/processing_app/topics/animation/data/PT_Teddy_0040.gif +0 -0
  531. data/samples/processing_app/topics/animation/data/PT_Teddy_0041.gif +0 -0
  532. data/samples/processing_app/topics/animation/data/PT_Teddy_0042.gif +0 -0
  533. data/samples/processing_app/topics/animation/data/PT_Teddy_0043.gif +0 -0
  534. data/samples/processing_app/topics/animation/data/PT_Teddy_0044.gif +0 -0
  535. data/samples/processing_app/topics/animation/data/PT_Teddy_0045.gif +0 -0
  536. data/samples/processing_app/topics/animation/data/PT_Teddy_0046.gif +0 -0
  537. data/samples/processing_app/topics/animation/data/PT_Teddy_0047.gif +0 -0
  538. data/samples/processing_app/topics/animation/data/PT_Teddy_0048.gif +0 -0
  539. data/samples/processing_app/topics/animation/data/PT_Teddy_0049.gif +0 -0
  540. data/samples/processing_app/topics/animation/data/PT_Teddy_0050.gif +0 -0
  541. data/samples/processing_app/topics/animation/data/PT_Teddy_0051.gif +0 -0
  542. data/samples/processing_app/topics/animation/data/PT_Teddy_0052.gif +0 -0
  543. data/samples/processing_app/topics/animation/data/PT_Teddy_0053.gif +0 -0
  544. data/samples/processing_app/topics/animation/data/PT_Teddy_0054.gif +0 -0
  545. data/samples/processing_app/topics/animation/data/PT_Teddy_0055.gif +0 -0
  546. data/samples/processing_app/topics/animation/data/PT_Teddy_0056.gif +0 -0
  547. data/samples/processing_app/topics/animation/data/PT_Teddy_0057.gif +0 -0
  548. data/samples/processing_app/topics/animation/data/PT_Teddy_0058.gif +0 -0
  549. data/samples/processing_app/topics/animation/data/PT_Teddy_0059.gif +0 -0
  550. data/samples/processing_app/topics/animation/data/PT_anim0000.gif +0 -0
  551. data/samples/processing_app/topics/animation/data/PT_anim0001.gif +0 -0
  552. data/samples/processing_app/topics/animation/data/PT_anim0002.gif +0 -0
  553. data/samples/processing_app/topics/animation/data/PT_anim0003.gif +0 -0
  554. data/samples/processing_app/topics/animation/data/PT_anim0004.gif +0 -0
  555. data/samples/processing_app/topics/animation/data/PT_anim0005.gif +0 -0
  556. data/samples/processing_app/topics/animation/data/PT_anim0006.gif +0 -0
  557. data/samples/processing_app/topics/animation/data/PT_anim0007.gif +0 -0
  558. data/samples/processing_app/topics/animation/data/PT_anim0008.gif +0 -0
  559. data/samples/processing_app/topics/animation/data/PT_anim0009.gif +0 -0
  560. data/samples/processing_app/topics/animation/data/PT_anim0010.gif +0 -0
  561. data/samples/processing_app/topics/animation/data/PT_anim0011.gif +0 -0
  562. data/samples/processing_app/topics/animation/sequential.rb +42 -0
  563. data/samples/processing_app/topics/cellular_automata/game_of_life.rb +125 -0
  564. data/samples/processing_app/topics/cellular_automata/library/ca/ca.rb +91 -0
  565. data/samples/processing_app/topics/cellular_automata/library/cell/cell.rb +99 -0
  566. data/samples/processing_app/topics/cellular_automata/library/simple_cell/simple_cell.rb +46 -0
  567. data/samples/processing_app/topics/cellular_automata/spore1.rb +94 -0
  568. data/samples/processing_app/topics/cellular_automata/spore2.rb +101 -0
  569. data/samples/processing_app/topics/cellular_automata/wolfram.rb +42 -0
  570. data/samples/processing_app/topics/create_shapes/begin_end_contour.rb +44 -0
  571. data/samples/processing_app/topics/create_shapes/data/sprite.png +0 -0
  572. data/samples/processing_app/topics/create_shapes/group_pshape.rb +69 -0
  573. data/samples/processing_app/topics/create_shapes/library/particle/particle_system.rb +107 -0
  574. data/samples/processing_app/topics/create_shapes/library/polygon/polygon.rb +35 -0
  575. data/samples/processing_app/topics/create_shapes/library/star/star.rb +47 -0
  576. data/samples/processing_app/topics/create_shapes/library/wiggler/wiggler.rb +57 -0
  577. data/samples/processing_app/topics/create_shapes/particle_system_pshape.rb +38 -0
  578. data/samples/processing_app/topics/create_shapes/path_pshape.rb +38 -0
  579. data/samples/processing_app/topics/create_shapes/polygon_pshape_oo3.rb +56 -0
  580. data/samples/processing_app/topics/create_shapes/polygon_pshape_oop.rb +29 -0
  581. data/samples/processing_app/topics/create_shapes/polygon_pshape_oop2.rb +52 -0
  582. data/samples/processing_app/topics/create_shapes/polygon_shape.rb +42 -0
  583. data/samples/processing_app/topics/create_shapes/primitive_pshape.rb +29 -0
  584. data/samples/processing_app/topics/create_shapes/wiggle_pshape.rb +22 -0
  585. data/samples/processing_app/topics/drawing/continuous_lines.rb +17 -0
  586. data/samples/processing_app/topics/drawing/pattern.rb +30 -0
  587. data/samples/processing_app/topics/drawing/pulses.rb +33 -0
  588. data/samples/processing_app/topics/drawing/scribble_plotter.rb +77 -0
  589. data/samples/processing_app/topics/effects/lens.rb +68 -70
  590. data/samples/processing_app/topics/file_io/data/positions.txt +206 -0
  591. data/samples/processing_app/topics/file_io/load_file1.rb +32 -0
  592. data/samples/processing_app/topics/file_io/save_frames.rb +70 -0
  593. data/samples/processing_app/topics/file_io/save_one_image.rb +22 -0
  594. data/samples/processing_app/topics/file_io/tile_images.rb +37 -0
  595. data/samples/processing_app/topics/gui/button.rb +74 -0
  596. data/samples/processing_app/topics/gui/data/seedBottom.jpg +0 -0
  597. data/samples/processing_app/topics/gui/data/seedTop.jpg +0 -0
  598. data/samples/processing_app/topics/gui/handles.rb +108 -0
  599. data/samples/processing_app/topics/gui/rollover.rb +63 -0
  600. data/samples/processing_app/topics/gui/scrollbar.rb +96 -0
  601. data/samples/processing_app/topics/image_processing/blending.rb +82 -0
  602. data/samples/processing_app/topics/image_processing/blur.rb +50 -0
  603. data/samples/processing_app/topics/image_processing/brightness.rb +39 -0
  604. data/samples/processing_app/topics/image_processing/convolution.rb +72 -0
  605. data/samples/processing_app/{3D/image → topics/image_processing}/data/eames.jpg +0 -0
  606. data/samples/processing_app/topics/image_processing/data/frontier.jpg +0 -0
  607. data/samples/processing_app/topics/image_processing/data/java_args.txt +3 -0
  608. data/samples/processing_app/topics/image_processing/data/layer1.jpg +0 -0
  609. data/samples/processing_app/topics/image_processing/data/layer2.jpg +0 -0
  610. data/samples/processing_app/topics/image_processing/data/moon-wide.jpg +0 -0
  611. data/samples/processing_app/topics/image_processing/data/moon.jpg +0 -0
  612. data/samples/processing_app/topics/image_processing/data/sea.jpg +0 -0
  613. data/samples/processing_app/topics/image_processing/data/ystone08.jpg +0 -0
  614. data/samples/processing_app/topics/image_processing/edge_detection.rb +47 -0
  615. data/samples/processing_app/topics/image_processing/explode.rb +35 -0
  616. data/samples/processing_app/topics/image_processing/extrusion.rb +49 -0
  617. data/samples/processing_app/topics/image_processing/histogram.rb +43 -0
  618. data/samples/processing_app/topics/image_processing/linear_image.rb +45 -0
  619. data/samples/processing_app/topics/image_processing/pixel_array.rb +48 -0
  620. data/samples/processing_app/topics/image_processing/zoom.rb +66 -0
  621. data/samples/processing_app/topics/lsystems/chequer.rb +72 -0
  622. data/samples/processing_app/topics/lsystems/csplant.rb +100 -0
  623. data/samples/processing_app/topics/lsystems/cstest.rb +20 -0
  624. data/samples/processing_app/topics/lsystems/data/java_args.txt +3 -0
  625. data/samples/processing_app/topics/lsystems/david_tour.rb +77 -0
  626. data/samples/processing_app/topics/lsystems/koch.rb +29 -0
  627. data/samples/processing_app/topics/lsystems/library/cs_grammar/cs_grammar.rb +88 -0
  628. data/samples/processing_app/topics/lsystems/library/grammar/grammar.rb +33 -0
  629. data/samples/processing_app/topics/lsystems/library/koch/koch_fractal.rb +117 -0
  630. data/samples/processing_app/topics/lsystems/library/stochastic_grammar/stochastic_grammar.rb +58 -0
  631. data/samples/processing_app/topics/lsystems/mpeano.rb +83 -0
  632. data/samples/processing_app/topics/lsystems/peano.rb +78 -0
  633. data/samples/processing_app/topics/lsystems/penrose.rb +123 -0
  634. data/samples/processing_app/topics/lsystems/penrose_snowflake.rb +93 -0
  635. data/samples/processing_app/topics/lsystems/pentagonal.rb +103 -0
  636. data/samples/processing_app/topics/lsystems/snake_kolam.rb +93 -0
  637. data/samples/processing_app/topics/lsystems/stochastic_test.rb +99 -0
  638. data/samples/processing_app/topics/lsystems/three_d_tree.rb +108 -0
  639. data/samples/processing_app/topics/motion/bounce.rb +40 -0
  640. data/samples/processing_app/topics/motion/bouncy_bubbles.rb +96 -0
  641. data/samples/processing_app/topics/motion/brownian.rb +40 -0
  642. data/samples/processing_app/topics/motion/circle_collision.rb +185 -0
  643. data/samples/processing_app/topics/motion/cubes_in_cube.rb +64 -0
  644. data/samples/processing_app/topics/motion/data/java_args.txt +3 -0
  645. data/samples/processing_app/topics/motion/library/cube/cube.rb +128 -0
  646. data/samples/processing_app/topics/motion/library/ground/ground.rb +42 -0
  647. data/samples/processing_app/topics/motion/linear.rb +25 -0
  648. data/samples/processing_app/topics/motion/morph.rb +84 -0
  649. data/samples/processing_app/topics/motion/moving_on_curves.rb +46 -0
  650. data/samples/processing_app/topics/motion/puff.rb +78 -0
  651. data/samples/processing_app/topics/motion/reflection1.rb +107 -0
  652. data/samples/processing_app/topics/motion/reflection2.rb +122 -0
  653. data/samples/processing_app/topics/shaders/README +1 -0
  654. data/samples/processing_app/topics/shaders/blur_filter.rb +25 -0
  655. data/samples/processing_app/topics/shaders/bw_shader.rb +40 -0
  656. data/samples/processing_app/topics/shaders/conway.rb +26 -0
  657. data/samples/processing_app/topics/shaders/data/GlossyFrag.glsl +44 -0
  658. data/samples/processing_app/topics/shaders/data/GlossyVert.glsl +33 -0
  659. data/samples/processing_app/topics/shaders/data/Texture01.jpg +0 -0
  660. data/samples/processing_app/topics/shaders/data/Texture02.jpg +0 -0
  661. data/samples/processing_app/topics/shaders/data/ToonFrag.glsl +25 -0
  662. data/samples/processing_app/topics/shaders/data/ToonVert.glsl +31 -0
  663. data/samples/processing_app/topics/shaders/data/blur.glsl +42 -0
  664. data/samples/processing_app/topics/shaders/data/bwfrag.glsl +23 -0
  665. data/samples/processing_app/topics/shaders/data/conway.glsl +57 -0
  666. data/samples/processing_app/topics/shaders/data/cubemapfrag.glsl +1 -0
  667. data/samples/processing_app/topics/shaders/data/cubemapvert.glsl +1 -0
  668. data/samples/processing_app/topics/shaders/data/deform.glsl +31 -0
  669. data/samples/processing_app/topics/shaders/data/displaceFrag.glsl +8 -0
  670. data/samples/processing_app/topics/shaders/data/displaceVert.glsl +201 -0
  671. data/samples/processing_app/topics/shaders/data/edges.glsl +40 -0
  672. data/samples/processing_app/topics/shaders/data/java_args.txt +2 -0
  673. data/samples/processing_app/topics/shaders/data/lachoy.jpg +0 -0
  674. data/samples/processing_app/topics/shaders/data/landscape.glsl +352 -0
  675. data/samples/processing_app/topics/shaders/data/leaves.jpg +0 -0
  676. data/samples/processing_app/topics/shaders/data/mask.glsl +19 -0
  677. data/samples/processing_app/topics/shaders/data/monjori.glsl +30 -0
  678. data/samples/processing_app/topics/shaders/data/nebula.glsl +111 -0
  679. data/samples/processing_app/topics/shaders/data/sep_blur.glsl +59 -0
  680. data/samples/processing_app/topics/shaders/data/tex1.jpg +0 -0
  681. data/samples/processing_app/topics/shaders/deform.rb +28 -0
  682. data/samples/processing_app/topics/shaders/dome_projection.rb +143 -0
  683. data/samples/processing_app/topics/shaders/edge_detect.rb +30 -0
  684. data/samples/processing_app/topics/shaders/glossy_fish_eye.rb +63 -0
  685. data/samples/processing_app/topics/shaders/glsl_heightmap_noise.rb +122 -0
  686. data/samples/processing_app/topics/shaders/image_mask.rb +31 -0
  687. data/samples/processing_app/topics/shaders/landscape.rb +32 -0
  688. data/samples/processing_app/topics/shaders/monjori.rb +28 -0
  689. data/samples/processing_app/topics/shaders/nebula.rb +18 -0
  690. data/samples/processing_app/topics/shaders/sep_blur.rb +64 -0
  691. data/samples/processing_app/topics/shaders/toon_shading.rb +43 -0
  692. data/samples/processing_app/topics/simulate/README +1 -0
  693. data/samples/processing_app/topics/simulate/chain.rb +34 -38
  694. data/samples/processing_app/topics/simulate/data/java_args.txt +2 -0
  695. data/samples/processing_app/topics/simulate/data/texture.gif +0 -0
  696. data/samples/processing_app/topics/simulate/data/texture.png +0 -0
  697. data/samples/processing_app/topics/simulate/flocking.rb +32 -0
  698. data/samples/processing_app/topics/simulate/library/flock/flock.rb +206 -0
  699. data/samples/processing_app/topics/simulate/multiple_particle_systems.rb +122 -110
  700. data/samples/processing_app/topics/simulate/simple_particle_system.rb +63 -86
  701. data/samples/processing_app/topics/simulate/smoke_particle_system.rb +136 -0
  702. data/samples/processing_app/topics/simulate/spring.rb +65 -69
  703. data/samples/processing_app/topics/simulate/springs.rb +35 -36
  704. data/samples/processing_app/topics/vectors/acceleration_with_vectors.rb +77 -0
  705. data/samples/processing_app/topics/vectors/bouncing_ball.rb +49 -0
  706. data/samples/processing_app/topics/vectors/vector_math.rb +38 -0
  707. data/test/README.md +6 -0
  708. data/test/basic.rb +14 -0
  709. data/test/draw_ex.rb +12 -0
  710. data/test/graphics.rb +7 -0
  711. data/test/p2d.rb +14 -0
  712. data/test/p3d.rb +14 -0
  713. data/test/rp5_test.rb +77 -0
  714. data/test/setup_ex.rb +12 -0
  715. data/vendors/Rakefile +36 -0
  716. metadata +718 -231
  717. data/README +0 -64
  718. data/lib/core/core.jar +0 -0
  719. data/lib/core/jruby-complete.jar +0 -0
  720. data/lib/ruby-processing/exporters/applet_exporter.rb +0 -78
  721. data/lib/templates/applet/images/built_with.jpg +0 -0
  722. data/lib/templates/applet/images/ruby.jpg +0 -0
  723. data/lib/templates/applet/images/top.png +0 -0
  724. data/lib/templates/applet/index.html.erb +0 -113
  725. data/lib/templates/applet/library/library.txt +0 -1
  726. data/lib/templates/create/bare_sketch.rb.erb +0 -7
  727. data/library/dxf/library/dxf.jar +0 -0
  728. data/library/dxf/library/export.txt +0 -1
  729. data/library/javascript/library/export.txt +0 -8
  730. data/library/javascript/library/javascript.jar +0 -0
  731. data/library/minim/library/export.txt +0 -1
  732. data/library/minim/library/jl1.0.jar +0 -0
  733. data/library/minim/library/jsminim.jar +0 -0
  734. data/library/minim/library/minim-spi.jar +0 -0
  735. data/library/minim/library/minim.jar +0 -0
  736. data/library/minim/library/mp3spi1.9.4.jar +0 -0
  737. data/library/minim/library/tritonus_aos.jar +0 -0
  738. data/library/minim/library/tritonus_share.jar +0 -0
  739. data/library/net/library/export.txt +0 -1
  740. data/library/net/library/net.jar +0 -0
  741. data/library/opengl/library/export.txt +0 -10
  742. data/library/opengl/library/gluegen-rt.jar +0 -0
  743. data/library/opengl/library/jogl.jar +0 -0
  744. data/library/opengl/library/linux32/libgluegen-rt.so +0 -0
  745. data/library/opengl/library/linux32/libjogl.so +0 -0
  746. data/library/opengl/library/linux32/libjogl_awt.so +0 -0
  747. data/library/opengl/library/linux32/libjogl_cg.so +0 -0
  748. data/library/opengl/library/linux64/libgluegen-rt.so +0 -0
  749. data/library/opengl/library/linux64/libjogl.so +0 -0
  750. data/library/opengl/library/linux64/libjogl_awt.so +0 -0
  751. data/library/opengl/library/linux64/libjogl_cg.so +0 -0
  752. data/library/opengl/library/macosx/libgluegen-rt.jnilib +0 -0
  753. data/library/opengl/library/macosx/libjogl.jnilib +0 -0
  754. data/library/opengl/library/macosx/libjogl_awt.jnilib +0 -0
  755. data/library/opengl/library/macosx/libjogl_cg.jnilib +0 -0
  756. data/library/opengl/library/opengl.jar +0 -0
  757. data/library/opengl/library/windows32/gluegen-rt.dll +0 -0
  758. data/library/opengl/library/windows32/jogl.dll +0 -0
  759. data/library/opengl/library/windows32/jogl_awt.dll +0 -0
  760. data/library/opengl/library/windows32/jogl_cg.dll +0 -0
  761. data/library/opengl/library/windows64/gluegen-rt.dll +0 -0
  762. data/library/opengl/library/windows64/jogl.dll +0 -0
  763. data/library/opengl/library/windows64/jogl_awt.dll +0 -0
  764. data/library/opengl/library/windows64/jogl_cg.dll +0 -0
  765. data/library/pdf/library/export.txt +0 -1
  766. data/library/pdf/library/itext.jar +0 -0
  767. data/library/pdf/library/pdf.jar +0 -0
  768. data/library/serial/library/RXTXcomm.jar +0 -0
  769. data/library/serial/library/export.txt +0 -1
  770. data/library/serial/library/linux32/librxtxSerial.so +0 -0
  771. data/library/serial/library/linux64/librxtxSerial.so +0 -0
  772. data/library/serial/library/macosx/librxtxSerial.jnilib +0 -0
  773. data/library/serial/library/serial.jar +0 -0
  774. data/library/serial/library/windows32/rxtxSerial.dll +0 -0
  775. data/library/serial/library/windows64/rxtxSerial.dll +0 -0
  776. data/library/video/library/export.txt +0 -1
  777. data/library/video/library/video.jar +0 -0
  778. data/samples/anar/data/java_args.txt +0 -1
  779. data/samples/anar/extrusion.rb +0 -49
  780. data/samples/anar/l_system.rb +0 -86
  781. data/samples/anar/library/anar/anar.jar +0 -0
  782. data/samples/anar/many_shapes.rb +0 -98
  783. data/samples/peasy_cam/data/java_args.txt +0 -1
  784. data/samples/peasy_cam/hilbert_fractal.rb +0 -40
  785. data/samples/peasy_cam/library/PeasyCam/PeasyCam.jar +0 -0
  786. data/samples/processing_app/3D/camera/move_eye.rb +0 -29
  787. data/samples/processing_app/3D/camera/ortho_vs_perspective.rb +0 -38
  788. data/samples/processing_app/3D/form/brick_tower.rb +0 -86
  789. data/samples/processing_app/3D/form/cubic_grid.rb +0 -51
  790. data/samples/processing_app/3D/form/rgb_cube.rb +0 -88
  791. data/samples/processing_app/3D/form/shape_transform.rb +0 -94
  792. data/samples/processing_app/3D/form/toroid.rb +0 -130
  793. data/samples/processing_app/3D/form/vertices.rb +0 -81
  794. data/samples/processing_app/3D/image/explode.rb +0 -56
  795. data/samples/processing_app/3D/image/extrusion.rb +0 -49
  796. data/samples/processing_app/3D/image/zoom.rb +0 -83
  797. data/samples/processing_app/3D/lights/directional.rb +0 -41
  798. data/samples/processing_app/3D/lights/lights1.rb +0 -39
  799. data/samples/processing_app/3D/lights/lights2.rb +0 -42
  800. data/samples/processing_app/3D/lights/reflection.rb +0 -38
  801. data/samples/processing_app/3D/lights/spot.rb +0 -39
  802. data/samples/processing_app/3D/textures/texture1.rb +0 -41
  803. data/samples/processing_app/3D/textures/texture2.rb +0 -38
  804. data/samples/processing_app/3D/textures/texture3.rb +0 -68
  805. data/samples/processing_app/3D/textures/texture_cube.rb +0 -106
  806. data/samples/processing_app/3D/transform/bird.rb +0 -61
  807. data/samples/processing_app/3D/transform/birds/birds.rb +0 -48
  808. data/samples/processing_app/3D/transform/cubes_in_cube/cubes_in_cube.rb +0 -102
  809. data/samples/processing_app/3D/transform/push_pop_cubes.rb +0 -152
  810. data/samples/processing_app/3D/transform/rotate1.rb +0 -43
  811. data/samples/processing_app/3D/transform/rotate2.rb +0 -45
  812. data/samples/processing_app/3D/typography/data/Univers66.vlw.gz +0 -0
  813. data/samples/processing_app/3D/typography/letter_k.rb +0 -136
  814. data/samples/processing_app/3D/typography/typing.rb +0 -77
  815. data/samples/processing_app/basics/data/characters_strings/characters_strings.rb +0 -85
  816. data/samples/processing_app/basics/data/characters_strings/data/Eureka-90.vlw +0 -0
  817. data/samples/processing_app/basics/data/characters_strings/data/rathausFrog.jpg +0 -0
  818. data/samples/processing_app/basics/input/keyboard_2.rb +0 -45
@@ -1,6 +1,17 @@
1
- require "yaml"
1
+ require 'psych'
2
2
 
3
3
  module Processing
4
- CONFIG_FILE_PATH = File.expand_path("~/.rp5rc")
5
- CONFIG = (YAML::load_file(CONFIG_FILE_PATH) rescue {}).freeze
4
+
5
+ if Processing.exported?
6
+ CONFIG = {'PROCESSING_ROOT' => RP5_ROOT}
7
+ end
8
+
9
+ unless defined? CONFIG
10
+ begin
11
+ CONFIG_FILE_PATH=File.expand_path("~/.rp5rc")
12
+ CONFIG = (Psych.load_file(CONFIG_FILE_PATH))
13
+ rescue
14
+ warn("WARNING: you need to set PROCESSING_ROOT in ~/.rp5rc")
15
+ end
16
+ end
6
17
  end
@@ -1,3 +1,5 @@
1
+ require 'rbconfig'
2
+
1
3
  module Processing
2
4
 
3
5
  # A utility class to export Ruby-Processing sketches as
@@ -40,6 +42,7 @@ module Processing
40
42
  @prefix = "lib"
41
43
  cp_r(Dir["#{RP5_ROOT}/lib/templates/application/{*,**}"], @dest)
42
44
  @necessary_files = [@main_file_path]
45
+ @necessary_files += Dir["#{CONFIG["PROCESSING_ROOT"]}/core/library/{*,**}"]
43
46
  @necessary_files += Dir["#{RP5_ROOT}/lib/{*,**}"]
44
47
  @necessary_files += @real_requires
45
48
  NECESSARY_FOLDERS.each do |folder|
@@ -55,10 +58,10 @@ module Processing
55
58
  end
56
59
 
57
60
  def calculate_substitutions
58
- file_list = ['lib/core/jruby-complete.jar']
61
+ file_list = ['lib/ruby/jruby-complete.jar']
59
62
  @class_path = file_list.map {|f| "$JAVAROOT/" + f.sub(@prefix+"/", "") }.join(":")
60
- @linux_class_path = file_list.map{|f| f.sub(@prefix+"/", "")}.join(":")
61
- @windows_class_path = file_list.map{|f| f.sub(@prefix+"/", "")}.join(",")
63
+ @linux_class_path = ".:../lib/ruby/*:../lib/*:../lib/library/*"
64
+ @windows_class_path = ".;../lib/ruby/*;../lib/*;../lib/library/*"
62
65
  end
63
66
 
64
67
  def create_executables
@@ -76,7 +79,8 @@ module Processing
76
79
  cd @dest + "/Contents/Resources"
77
80
  # Poor ol' windows can't symlink.
78
81
  # TODO...
79
- win = RUBY_PLATFORM.match(/mswin/i) || (RUBY_PLATFORM == 'java' && ENV_JAVA['os.name'].match(/windows/i))
82
+ win ||= RbConfig::CONFIG['host_os'].match(/mswin/i)
83
+ win ||= RbConfig::CONFIG['host_os'].match(/windows/i)
80
84
  puts "\n[warning] Applications exported from Windows won't run on Macs...\n" if win
81
85
  ln_s('../../lib', 'Java') unless win
82
86
  end
@@ -88,4 +92,4 @@ module Processing
88
92
  end
89
93
 
90
94
  end
91
- end
95
+ end
@@ -8,7 +8,7 @@ module Processing
8
8
  # code-munging needed to generate apps and applets.
9
9
  class BaseExporter
10
10
  include FileUtils
11
-
11
+ ## hashes with strings as keys need to retain old hash syntax
12
12
  DEFAULT_DIMENSIONS = {'width' => '100', 'height' => '100'}
13
13
  DEFAULT_DESCRIPTION = ''
14
14
  NECESSARY_FOLDERS = ['data', 'lib', 'vendor']
@@ -84,10 +84,10 @@ module Processing
84
84
  requirements = []
85
85
  partial_paths = []
86
86
  loop do
87
- matchdata = code.match(/^.*[^::\.\w](require|load)\b.*$/)
87
+ matchdata = code.match(/^.*[^::\.\w](require_relative|require|load)\b.*$/)
88
88
  break unless matchdata
89
89
  line = matchdata[0].gsub('__FILE__', "'#{@main_file_path}'")
90
- line = line.gsub(/\b(require|load)\b/, 'partial_paths << ')
90
+ line = line.gsub(/\b(require_relative|require|load)\b/, 'partial_paths << ')
91
91
  eval(line)
92
92
  where = "{#{local_dir}/,}{#{partial_paths.join(',')}}"
93
93
  unless line =~ /\.[^.]+$/
@@ -6,7 +6,7 @@ module Processing
6
6
  ALL_DIGITS = /\A\d+\Z/
7
7
 
8
8
  # Create a blank sketch, given a path.
9
- def create!(path, args, bare)
9
+ def create!(path, args, p3d)
10
10
  usage path
11
11
  main_file = File.basename(path, ".rb")
12
12
  # Check to make sure that the main file exists
@@ -28,12 +28,12 @@ module Processing
28
28
  # Make the file
29
29
  dir = File.dirname path
30
30
  mkdir_p dir
31
- template_name = bare ? 'bare_sketch.rb.erb' : 'blank_sketch.rb.erb'
31
+ template_name = p3d ? 'p3d_sketch.rb.erb' : 'blank_sketch.rb.erb'
32
32
  template = File.new("#{RP5_ROOT}/lib/templates/create/#{template_name}")
33
33
  rendered = render_erb_from_string_with_binding(template.read, binding)
34
34
  full_path = File.join(dir, "#{@file_name}.rb")
35
35
  File.open(full_path, "w") {|f| f.print(rendered) }
36
- puts "Created Sketch \"#{@title}\" in #{full_path.sub(/\A\.\//, '')}"
36
+ puts "Created Sketch \"#{@name}\" in #{full_path.sub(/\A\.\//, '')}"
37
37
  end
38
38
 
39
39
  # Show the help/usage message for create.
@@ -51,4 +51,4 @@ module Processing
51
51
  end
52
52
  end
53
53
  end
54
- end
54
+ end
@@ -0,0 +1,7 @@
1
+ def setup
2
+
3
+ end
4
+
5
+ def draw
6
+
7
+ end
@@ -45,7 +45,9 @@ module Processing
45
45
  end
46
46
  super(*args)
47
47
  end
48
-
48
+
49
+ # Overrides convenience function loop, to add ability to loop over a block
50
+ # if supplied, otherwise perform as the PApplet class would
49
51
  def loop(&block)
50
52
  if block_given?
51
53
  while true do
@@ -55,6 +57,16 @@ module Processing
55
57
  super
56
58
  end
57
59
  end
60
+
61
+ # Overrides Processing convenience function thread, which takes a String
62
+ # arg (for a function) to more rubylike version, takes a block...
63
+ def thread(*args, &block)
64
+ if block_given?
65
+ Thread.new *args, &block
66
+ else
67
+ raise ArgumentError, "thread must be called with a block" , caller
68
+ end
69
+ end
58
70
 
59
71
  # There's just so many functions in Processing,
60
72
  # Here's a convenient way to look for them.
@@ -67,7 +79,7 @@ module Processing
67
79
  # some methods. Add to this list as needed.
68
80
  def proxy_java_fields
69
81
  @declared_fields = {}
70
- fields = %w(sketchPath key frameRate frame)
82
+ fields = %w(sketchPath key frameRate frame mousePressed keyPressed)
71
83
  fields.each {|f| @declared_fields[f] = java_class.declared_field(f) }
72
84
  end
73
85
 
@@ -89,7 +101,7 @@ module Processing
89
101
 
90
102
  # Provide a convenient handle for the Java-space version of self.
91
103
  def java_self
92
- @java_self ||= Java.ruby_to_java self
104
+ @java_self ||= self.to_java(Java::ProcessingCore::PApplet)
93
105
  end
94
106
 
95
107
 
@@ -127,13 +139,12 @@ module Processing
127
139
 
128
140
  # Is the mouse pressed for this frame?
129
141
  def mouse_pressed?
130
- Java.java_to_primitive(java_class.field("mousePressed").value(java_object))
142
+ field = @declared_fields['mousePressed'].value(java_self)
131
143
  end
132
144
 
133
145
  # Is a key pressed for this frame?
134
- def key_pressed?
135
- Java.java_to_primitive(java_class.field("keyPressed").value(java_object))
146
+ def key_pressed?
147
+ field = @declared_fields['keyPressed'].value(java_self)
136
148
  end
137
-
138
149
  end
139
150
  end
@@ -20,7 +20,7 @@ module Processing
20
20
  def load_libraries(*args)
21
21
  args.each do |lib|
22
22
  loaded = load_ruby_library(lib) || load_java_library(lib)
23
- raise LoadError.new "no such file to load -- #{lib}" if !loaded
23
+ raise LoadError.new( "no such file to load -- #{lib}") if !loaded
24
24
  end
25
25
  end
26
26
  alias :load_library :load_libraries
@@ -31,17 +31,17 @@ module Processing
31
31
  def load_ruby_library(library_name)
32
32
  library_name = library_name.to_sym
33
33
  return true if @loaded_libraries[library_name]
34
- if Processing.online?
34
+ if Processing.exported?
35
35
  begin
36
- return @loaded_libraries[library_name] = (require "library/#{library_name}/#{library_name}")
36
+ return @loaded_libraries[library_name] = (require_relative "../library/#{library_name}")
37
37
  rescue LoadError => e
38
38
  return false
39
39
  end
40
- else
41
- path = get_library_paths(library_name, "rb").first
42
- return false unless path
43
- return @loaded_libraries[library_name] = (require path)
44
40
  end
41
+
42
+ path = get_library_paths(library_name, "rb").first
43
+ return false unless path
44
+ return @loaded_libraries[library_name] = (require path)
45
45
  end
46
46
 
47
47
 
@@ -54,9 +54,6 @@ module Processing
54
54
  def load_java_library(library_name)
55
55
  library_name = library_name.to_sym
56
56
  return true if @loaded_libraries[library_name]
57
- if Processing.online?
58
- return @loaded_libraries[library_name] = !!(JRUBY_APPLET.get_parameter("archive").match(%r(#{library_name})))
59
- end
60
57
  path = get_library_directory_path(library_name, "jar")
61
58
  jars = get_library_paths(library_name, "jar")
62
59
  return false if jars.empty?
@@ -83,9 +80,12 @@ module Processing
83
80
  end
84
81
 
85
82
  def get_platform_specific_library_paths(basename)
86
- bits = "32"
87
- if java.lang.System.getProperty("sun.arch.data.model") == "64" ||
88
- java.lang.System.getProperty("java.vm.name").index("64")
83
+ bits = "universal" # for MacOSX, but does this even work, or does Mac return "64"?
84
+ if java.lang.System.getProperty("sun.arch.data.model") == "32" ||
85
+ java.lang.System.getProperty("java.vm.name").index("32")
86
+ bits = "32"
87
+ elsif java.lang.System.getProperty("sun.arch.data.model") == "64" ||
88
+ java.lang.System.getProperty("java.vm.name").index("64")
89
89
  bits = "64"
90
90
  end
91
91
 
@@ -106,7 +106,8 @@ module Processing
106
106
  def get_library_directory_path(library_name, extension = nil)
107
107
  extensions = extension ? [extension] : %w{jar rb}
108
108
  extensions.each do |ext|
109
- [ "#{SKETCH_ROOT}/library/#{library_name}",
109
+ [ "#{SKETCH_ROOT}/library/#{library_name}",
110
+ "#{Processing::CONFIG["PROCESSING_ROOT"]}/modes/java/libraries/#{library_name}/library",
110
111
  "#{RP5_ROOT}/library/#{library_name}/library",
111
112
  "#{RP5_ROOT}/library/#{library_name}",
112
113
  "#{@sketchbook_library_path}/#{library_name}/library",
@@ -123,10 +124,10 @@ module Processing
123
124
  def find_sketchbook_path
124
125
  preferences_paths = []
125
126
  sketchbook_paths = []
126
- if sketchbook_path = CONFIG["sketchbook_path"]
127
+ if sketchbook_path = Processing::CONFIG["sketchbook_path"]
127
128
  return File.expand_path(sketchbook_path)
128
129
  else
129
- ["Application Data/Processing", "AppData/Roaming/Processing",
130
+ ["'Application Data/Processing'", "AppData/Roaming/Processing",
130
131
  "Library/Processing", "Documents/Processing",
131
132
  ".processing", "sketchbook"].each do |prefix|
132
133
  path = "#{ENV["HOME"]}/#{prefix}"
@@ -1,36 +1,37 @@
1
1
  require 'ostruct'
2
2
  require 'fileutils'
3
- require 'ruby-processing/config'
3
+ require 'rbconfig'
4
+ require_relative 'config'
5
+ require_relative 'version'
6
+
4
7
 
5
8
  module Processing
6
9
 
7
10
  # Utility class to handle the different commands that the 'rp5' command
8
- # offers. Able to run, watch, live, create, app, applet, and unpack
11
+ # offers. Able to run, watch, live, create, app, and unpack
9
12
  class Runner
10
-
11
13
  HELP_MESSAGE = <<-EOS
12
- Version: #{Processing::VERSION}
14
+ Version: #{RubyProcessing::VERSION}
13
15
 
14
16
  Ruby-Processing is a little shim between Processing and JRuby that helps
15
17
  you create sketches of code art.
16
18
 
17
19
  Usage:
18
- rp5 [run | watch | live | create [width height] | app | applet | unpack] path/to/sketch
20
+ rp5 [run | watch | live | create [width height] | app | unpack] path/to/sketch
19
21
 
20
22
  run: run sketch once
21
23
  watch: watch for changes on the file and relaunch it on the fly
22
24
  live: launch sketch and give an interactive IRB shell
23
25
  create: create new sketch. Use --bare to generate simpler sketches without a class
24
26
  app: create an application version of the sketch
25
- applet: create an applet version of the sketch
26
27
  unpack: unpack samples or library
27
28
 
28
29
  Common options:
29
- --jruby: passed, use the installed version of jruby, instead of
30
- our vendored jarred one (useful for gems).
30
+ --nojruby: do not use the installed version of jruby, instead use our vendored
31
+ jarred one (required for shader sketches, and some others).
31
32
 
32
33
  Configuration file:
33
- A YAML configuration file is located at #{Processing::CONFIG_FILE_PATH}
34
+ A YAML configuration file is located at {Processing::CONFIG_FILE_PATH}
34
35
 
35
36
  Possible options are:
36
37
 
@@ -43,9 +44,9 @@ module Processing
43
44
  Examples:
44
45
  rp5 unpack samples
45
46
  rp5 run samples/contributed/jwishy.rb
46
- rp5 create some_new_sketch --bare 640 480
47
+ rp5 create some_new_sketch 640 480
48
+ rp5 create some_new_sketch --p3d 640 480
47
49
  rp5 watch some_new_sketch.rb
48
- rp5 applet some_new_sketch.rb
49
50
 
50
51
  Everything Else:
51
52
  http://wiki.github.com/jashkenas/ruby-processing
@@ -54,7 +55,7 @@ module Processing
54
55
 
55
56
  # Start running a ruby-processing sketch from the passed-in arguments
56
57
  def self.execute
57
- runner = new
58
+ runner = self.new
58
59
  runner.parse_options(ARGV)
59
60
  runner.execute!
60
61
  end
@@ -65,9 +66,8 @@ module Processing
65
66
  when 'run' then run(@options.path, @options.args)
66
67
  when 'watch' then watch(@options.path, @options.args)
67
68
  when 'live' then live(@options.path, @options.args)
68
- when 'create' then create(@options.path, @options.args, @options.bare)
69
+ when 'create' then create(@options.path, @options.args, @options.p3d)
69
70
  when 'app' then app(@options.path)
70
- when 'applet' then applet(@options.path)
71
71
  when 'unpack' then unpack(@options.path)
72
72
  when /-v/ then show_version
73
73
  when /-h/ then show_help
@@ -79,8 +79,9 @@ module Processing
79
79
  # Parse the command-line options. Keep it simple.
80
80
  def parse_options(args)
81
81
  @options = OpenStruct.new
82
- @options.bare = !!args.delete('--bare')
82
+ @options.p3d = !!args.delete('--p3d')
83
83
  @options.jruby = !!args.delete('--jruby')
84
+ @options.nojruby = !!args.delete('--nojruby')
84
85
  @options.action = args[0] || nil
85
86
  @options.path = args[1] || File.basename(Dir.pwd + '.rb')
86
87
  @options.args = args[2..-1] || []
@@ -88,8 +89,8 @@ module Processing
88
89
 
89
90
  # Create a fresh Ruby-Processing sketch, with the necessary
90
91
  # boilerplate filled out.
91
- def create(sketch, args, bare)
92
- Processing::Creator.new.create!(sketch, args, bare)
92
+ def create(sketch, args, p3d)
93
+ Processing::Creator.new.create!(sketch, args, p3d)
93
94
  end
94
95
 
95
96
  # Just simply run a ruby-processing sketch.
@@ -116,11 +117,6 @@ module Processing
116
117
  Processing::ApplicationExporter.new.export!(sketch)
117
118
  end
118
119
 
119
- # Generate an applet and HTML page for a given sketch.
120
- def applet(sketch)
121
- Processing::AppletExporter.new.export!(sketch)
122
- end
123
-
124
120
  # Install the included samples to a given path, where you can run and
125
121
  # alter them to your heart's content.
126
122
  def unpack(dir)
@@ -132,7 +128,7 @@ module Processing
132
128
 
133
129
  # Display the current version of Ruby-Processing.
134
130
  def show_version
135
- puts "Ruby-Processing version #{Processing::VERSION}"
131
+ puts "Ruby-Processing version #{RubyProcessing::VERSION}"
136
132
  end
137
133
 
138
134
  # Show the standard help/usage message.
@@ -145,20 +141,21 @@ module Processing
145
141
 
146
142
  # Trade in this Ruby instance for a JRuby instance, loading in a
147
143
  # starter script and passing it some arguments.
148
- # If --jruby is passed, use the installed version of jruby, instead of
149
- # our vendored jarred one (useful for gems).
144
+ # Unless --nojruby is passed, use the installed version of jruby, instead of
145
+ # our vendored jarred one (vendored version is required for some sketches eg shaders).
150
146
  def spin_up(starter_script, sketch, args)
151
147
  runner = "#{RP5_ROOT}/lib/ruby-processing/runners/#{starter_script}"
152
148
  java_args = discover_java_args(sketch)
153
- command = @options.jruby ?
154
- ['jruby', java_args, runner, sketch, args].flatten :
155
- ['java', java_args, '-cp', jruby_complete, 'org.jruby.Main', runner, sketch, args].flatten
149
+ warn("The --jruby flag is no longer required") if @options.jruby
150
+ command = @options.nojruby ?
151
+ ['java', java_args, '-cp', jruby_complete, 'org.jruby.Main', runner, sketch, args].flatten :
152
+ ['jruby', java_args, runner, sketch, args].flatten
156
153
  exec *command
157
154
  # exec replaces the Ruby process with the JRuby one.
158
155
  end
159
156
 
160
157
  # If you need to pass in arguments to Java, such as the ones on this page:
161
- # http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/java.html
158
+ # http://docs.oracle.com/javase/1.5.0/docs/tooldocs/windows/java.html
162
159
  # then type them into a java_args.txt in your data directory next to your sketch.
163
160
  def discover_java_args(sketch)
164
161
  arg_file = "#{File.dirname(sketch)}/data/java_args.txt"
@@ -166,10 +163,10 @@ module Processing
166
163
  args += dock_icon
167
164
  if File.exists?(arg_file)
168
165
  args += File.read(arg_file).split(/\s+/)
169
- elsif CONFIG["java_args"]
170
- args += CONFIG["java_args"].split(/\s+/)
166
+ elsif Processing::CONFIG["java_args"]
167
+ args += Processing::CONFIG["java_args"].split(/\s+/)
171
168
  end
172
- args.map! {|arg| "-J#{arg}" } if @options.jruby
169
+ args.map! {|arg| "-J#{arg}" } unless @options.nojruby
173
170
  args
174
171
  end
175
172
 
@@ -178,12 +175,19 @@ module Processing
178
175
  end
179
176
 
180
177
  def jruby_complete
181
- File.join(RP5_ROOT, 'lib/core/jruby-complete.jar')
178
+ rcomplete = File.join(RP5_ROOT, 'lib/ruby/jruby-complete.jar')
179
+ if File.exists?(rcomplete)
180
+ return rcomplete
181
+ else
182
+ warn "#{rcomplete} does not exist\nTry running `install_jruby_complete`"
183
+ exit
184
+ end
182
185
  end
183
186
 
184
187
  # On the Mac, we can display a fat, shiny ruby in the Dock.
185
188
  def dock_icon
186
- mac = RUBY_PLATFORM.match(/darwin/i) || (RUBY_PLATFORM == 'java' && ENV_JAVA['os.name'].match(/mac/i))
189
+ mac ||= RbConfig::CONFIG['host_os'].match(/darwin/i)
190
+ mac ||= RbConfig::CONFIG['host_os'].match(/mac/i)
187
191
  mac ? ["-Xdock:name=Ruby-Processing", "-Xdock:icon=#{RP5_ROOT}/lib/templates/application/Contents/Resources/sketch.icns"] : []
188
192
  end
189
193
 
@@ -29,7 +29,7 @@ module Processing
29
29
  has_methods = !!source.match(/^[^#]*(def\s+setup|def\s+draw)/)
30
30
 
31
31
  if has_sketch
32
- load SKETCH_PATH
32
+ load File.join(SKETCH_ROOT, SKETCH_PATH)
33
33
  Processing::App.sketch_class.new if !$app
34
34
  else
35
35
  require 'erb'
@@ -42,19 +42,7 @@ module Processing
42
42
 
43
43
  # Read in the sketch source code. Needs to work both online and offline.
44
44
  def self.read_sketch_source
45
- if Processing.online?
46
- # Fuck the following lines. Fucking Java can go sit on broken glass.
47
- source = ''
48
- url = java.net.URL.new(JRUBY_APPLET.java_send(:getCodeBase), SKETCH_PATH)
49
- input = java.io.BufferedReader.new(java.io.InputStreamReader.new(url.java_send(:openStream)))
50
- while line = input.java_send(:readLine) do
51
- source << (line + "\n") if line
52
- end
53
- input.close
54
- else
55
- # Ahhh, much better.
56
45
  source = File.read(SKETCH_PATH)
57
- end
58
46
  source
59
47
  end
60
48