ruby-processing 2.6.3 → 2.6.4

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 (742) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rpextras.jar +0 -0
  3. data/lib/ruby-processing/app.rb +56 -48
  4. data/lib/ruby-processing/helper_methods.rb +11 -12
  5. data/lib/ruby-processing/library_loader.rb +19 -10
  6. data/lib/ruby-processing/runner.rb +49 -36
  7. data/lib/ruby-processing/version.rb +1 -1
  8. data/lib/templates/application/run.erb +3 -0
  9. data/library/boids/boids.rb +36 -32
  10. data/vendors/Rakefile +36 -7
  11. metadata +3 -734
  12. data/samples/Rakefile +0 -21
  13. data/samples/configRP5/configRP5.pde +0 -147
  14. data/samples/contributed/Rakefile +0 -30
  15. data/samples/contributed/animator.rb +0 -48
  16. data/samples/contributed/bezier_playground.rb +0 -204
  17. data/samples/contributed/circle_collision.rb +0 -129
  18. data/samples/contributed/drawolver.rb +0 -96
  19. data/samples/contributed/elegant_ball.rb +0 -165
  20. data/samples/contributed/empathy.rb +0 -78
  21. data/samples/contributed/fern.rb +0 -51
  22. data/samples/contributed/fibonacci_sphere.rb +0 -86
  23. data/samples/contributed/flight_patterns.rb +0 -63
  24. data/samples/contributed/full_screen.rb +0 -29
  25. data/samples/contributed/getting_started.rb +0 -24
  26. data/samples/contributed/grapher.rb +0 -36
  27. data/samples/contributed/gravity.rb +0 -106
  28. data/samples/contributed/jwishy.rb +0 -95
  29. data/samples/contributed/mandelbrot.rb +0 -79
  30. data/samples/contributed/orbit.rb +0 -41
  31. data/samples/contributed/quadraticvertex.rb +0 -106
  32. data/samples/contributed/re_sample.rb +0 -27
  33. data/samples/contributed/reflection.rb +0 -17
  34. data/samples/contributed/tree.rb +0 -72
  35. data/samples/external_library/java_processing/README +0 -3
  36. data/samples/external_library/java_processing/box2d_processing/bumpy_surface_noise.rb +0 -52
  37. data/samples/external_library/java_processing/box2d_processing/data/java_args.txt +0 -2
  38. data/samples/external_library/java_processing/box2d_processing/library/custom_shape/custom_shape.rb +0 -158
  39. data/samples/external_library/java_processing/box2d_processing/library/particle_system/particle_system.rb +0 -209
  40. data/samples/external_library/java_processing/box2d_processing/library/surface/surface.rb +0 -154
  41. data/samples/external_library/java_processing/box2d_processing/liquidy.rb +0 -58
  42. data/samples/external_library/java_processing/box2d_processing/polygons.rb +0 -53
  43. data/samples/external_library/java_processing/custom/README.md +0 -16
  44. data/samples/external_library/java_processing/custom/Rakefile +0 -22
  45. data/samples/external_library/java_processing/custom/ext/nn/Connection.java +0 -47
  46. data/samples/external_library/java_processing/custom/ext/nn/HiddenNeuron.java +0 -20
  47. data/samples/external_library/java_processing/custom/ext/nn/InputNeuron.java +0 -23
  48. data/samples/external_library/java_processing/custom/ext/nn/Network.java +0 -136
  49. data/samples/external_library/java_processing/custom/ext/nn/Neuron.java +0 -79
  50. data/samples/external_library/java_processing/custom/ext/nn/OutputNeuron.java +0 -7
  51. data/samples/external_library/java_processing/custom/landscape.rb +0 -60
  52. data/samples/external_library/java_processing/custom/xor.rb +0 -88
  53. data/samples/external_library/java_processing/fisica/README +0 -1
  54. data/samples/external_library/java_processing/fisica/bubbles.rb +0 -80
  55. data/samples/external_library/java_processing/fisica/joints.rb +0 -112
  56. data/samples/external_library/java_processing/fisica/polygons.rb +0 -79
  57. data/samples/external_library/java_processing/fisica/raycast.rb +0 -61
  58. data/samples/external_library/java_processing/generative_design/mesh_example.rb +0 -25
  59. data/samples/external_library/java_processing/generative_design/node_spring_attractor.rb +0 -83
  60. data/samples/external_library/java_processing/generative_design/sub_class_example.rb +0 -44
  61. data/samples/external_library/java_processing/geomerative/data/FreeSans.ttf +0 -0
  62. data/samples/external_library/java_processing/geomerative/data/Toucan.svg +0 -43
  63. data/samples/external_library/java_processing/geomerative/hello_bot_ignore_styles.rb +0 -38
  64. data/samples/external_library/java_processing/geomerative/hello_world_rotate_firstletter.rb +0 -43
  65. data/samples/external_library/java_processing/geomerative/hola_mundo.rb +0 -37
  66. data/samples/external_library/java_processing/grafica/data/OktoberfestVSGermanElections.csv +0 -118
  67. data/samples/external_library/java_processing/grafica/default_plot.rb +0 -30
  68. data/samples/external_library/java_processing/grafica/multiple_panels.rb +0 -117
  69. data/samples/external_library/java_processing/grafica/oktoberfest_example.rb +0 -83
  70. data/samples/external_library/java_processing/guido/slider.rb +0 -54
  71. data/samples/external_library/java_processing/hemesh/data/java_args.txt +0 -2
  72. data/samples/external_library/java_processing/hemesh/library/vbo/mesh_to_vbo.rb +0 -43
  73. data/samples/external_library/java_processing/hemesh/twin_iso.rb +0 -69
  74. data/samples/external_library/java_processing/pbox2d/bumpy_surface_noise.rb +0 -57
  75. data/samples/external_library/java_processing/pbox2d/contact_test.rb +0 -23
  76. data/samples/external_library/java_processing/pbox2d/data/java_args.txt +0 -2
  77. data/samples/external_library/java_processing/pbox2d/library/custom_shape/custom_shape.rb +0 -158
  78. data/samples/external_library/java_processing/pbox2d/library/particle_system/particle_system.rb +0 -212
  79. data/samples/external_library/java_processing/pbox2d/library/surface/surface.rb +0 -154
  80. data/samples/external_library/java_processing/pbox2d/liquidy.rb +0 -58
  81. data/samples/external_library/java_processing/pbox2d/polygons.rb +0 -58
  82. data/samples/external_library/java_processing/peasy_cam/hello_peasy.rb +0 -29
  83. data/samples/external_library/java_processing/peasy_cam/hilbert_fractal.rb +0 -34
  84. data/samples/external_library/java_processing/peasy_cam/library/hilbert/hilbert.rb +0 -100
  85. data/samples/external_library/java_processing/proscene/cad_camera.rb +0 -57
  86. data/samples/external_library/java_processing/proscene/camera_customization.rb +0 -114
  87. data/samples/external_library/java_processing/proscene/data/ti_yong.png +0 -0
  88. data/samples/external_library/java_processing/toxiclibs/data/ti_yong.png +0 -0
  89. data/samples/external_library/java_processing/toxiclibs/gray_scott_image.rb +0 -79
  90. data/samples/external_library/java_processing/toxiclibs/gray_scott_tone_map.rb +0 -78
  91. data/samples/external_library/java_processing/toxiclibs/implicit.rb +0 -143
  92. data/samples/external_library/java_processing/toxiclibs/library/vbo/mesh_to_vbo.rb +0 -52
  93. data/samples/external_library/java_processing/toxiclibs/library/vbo/vbo.rb +0 -52
  94. data/samples/external_library/java_processing/toxiclibs/model_align.rb +0 -48
  95. data/samples/external_library/ruby_gem/README +0 -12
  96. data/samples/external_library/ruby_gem/data/README.txt +0 -1
  97. data/samples/external_library/ruby_gem/data/data.json +0 -8
  98. data/samples/external_library/ruby_gem/data/java_args.txt +0 -2
  99. data/samples/external_library/ruby_gem/draw_test.rb +0 -171
  100. data/samples/external_library/ruby_gem/game_of_life.rb +0 -127
  101. data/samples/external_library/ruby_gem/mdarray_test.rb +0 -28
  102. data/samples/processing_app/ABOUT +0 -3
  103. data/samples/processing_app/basics/arrays/array.rb +0 -35
  104. data/samples/processing_app/basics/arrays/array_2d.rb +0 -32
  105. data/samples/processing_app/basics/arrays/array_objects.rb +0 -62
  106. data/samples/processing_app/basics/camera/move_eye.rb +0 -24
  107. data/samples/processing_app/basics/camera/perspective.rb +0 -36
  108. data/samples/processing_app/basics/color/blend_color.rb +0 -17
  109. data/samples/processing_app/basics/color/brightness.rb +0 -24
  110. data/samples/processing_app/basics/color/color_wheel.rb +0 -90
  111. data/samples/processing_app/basics/color/creating.rb +0 -48
  112. data/samples/processing_app/basics/color/hue.rb +0 -23
  113. data/samples/processing_app/basics/color/linear_gradient.rb +0 -42
  114. data/samples/processing_app/basics/color/radial_gradient.rb +0 -44
  115. data/samples/processing_app/basics/color/reading/data/cait.jpg +0 -0
  116. data/samples/processing_app/basics/color/reading/reading.rb +0 -29
  117. data/samples/processing_app/basics/color/relativity.rb +0 -25
  118. data/samples/processing_app/basics/color/saturation.rb +0 -24
  119. data/samples/processing_app/basics/color/wave_gradient.rb +0 -34
  120. data/samples/processing_app/basics/control/conditionals1.rb +0 -27
  121. data/samples/processing_app/basics/control/conditionals2.rb +0 -39
  122. data/samples/processing_app/basics/control/embedded_iteration.rb +0 -34
  123. data/samples/processing_app/basics/control/iteration.rb +0 -50
  124. data/samples/processing_app/basics/control/logical_operators.rb +0 -56
  125. data/samples/processing_app/basics/data/characters_strings.rb +0 -50
  126. data/samples/processing_app/basics/data/datatype_conversion.rb +0 -41
  127. data/samples/processing_app/basics/data/integers_floats.rb +0 -28
  128. data/samples/processing_app/basics/data/true_false.rb +0 -31
  129. data/samples/processing_app/basics/data/variable_scope.rb +0 -74
  130. data/samples/processing_app/basics/data/variables.rb +0 -35
  131. data/samples/processing_app/basics/form/bezier.rb +0 -20
  132. data/samples/processing_app/basics/form/bezier_ellipse.rb +0 -99
  133. data/samples/processing_app/basics/form/brick_tower.rb +0 -89
  134. data/samples/processing_app/basics/form/cubic_grid.rb +0 -39
  135. data/samples/processing_app/basics/form/icosahedra.rb +0 -39
  136. data/samples/processing_app/basics/form/library/icosahedron/icosahedron.rb +0 -60
  137. data/samples/processing_app/basics/form/pie_chart.rb +0 -27
  138. data/samples/processing_app/basics/form/points_lines.rb +0 -32
  139. data/samples/processing_app/basics/form/primitives.rb +0 -28
  140. data/samples/processing_app/basics/form/regular_polygon.rb +0 -46
  141. data/samples/processing_app/basics/form/rgb_cube.rb +0 -68
  142. data/samples/processing_app/basics/form/shape_primitives.rb +0 -23
  143. data/samples/processing_app/basics/form/shape_transform.rb +0 -83
  144. data/samples/processing_app/basics/form/star.rb +0 -48
  145. data/samples/processing_app/basics/form/toroid.rb +0 -108
  146. data/samples/processing_app/basics/form/triangle_strip.rb +0 -39
  147. data/samples/processing_app/basics/form/vertices.rb +0 -47
  148. data/samples/processing_app/basics/image/alphamask.rb +0 -17
  149. data/samples/processing_app/basics/image/background_image.rb +0 -24
  150. data/samples/processing_app/basics/image/create_image.rb +0 -17
  151. data/samples/processing_app/basics/image/data/construct.jpg +0 -0
  152. data/samples/processing_app/basics/image/data/eames.jpg +0 -0
  153. data/samples/processing_app/basics/image/data/jelly.jpg +0 -0
  154. data/samples/processing_app/basics/image/data/mask.jpg +0 -0
  155. data/samples/processing_app/basics/image/data/milan_rubbish.jpg +0 -0
  156. data/samples/processing_app/basics/image/data/teddy.gif +0 -0
  157. data/samples/processing_app/basics/image/data/test.jpg +0 -0
  158. data/samples/processing_app/basics/image/data/wash.jpg +0 -0
  159. data/samples/processing_app/basics/image/data/ystone08.jpg +0 -0
  160. data/samples/processing_app/basics/image/extrusion.rb +0 -46
  161. data/samples/processing_app/basics/image/load_display_image.rb +0 -18
  162. data/samples/processing_app/basics/image/pointillism.rb +0 -24
  163. data/samples/processing_app/basics/image/request_image.rb +0 -62
  164. data/samples/processing_app/basics/image/sprite.rb +0 -32
  165. data/samples/processing_app/basics/image/transparency.rb +0 -21
  166. data/samples/processing_app/basics/image/zoom.rb +0 -59
  167. data/samples/processing_app/basics/input/clock.rb +0 -46
  168. data/samples/processing_app/basics/input/constrain.rb +0 -33
  169. data/samples/processing_app/basics/input/easing.rb +0 -31
  170. data/samples/processing_app/basics/input/keyboard.rb +0 -24
  171. data/samples/processing_app/basics/input/keyboard_functions.rb +0 -59
  172. data/samples/processing_app/basics/input/milliseconds.rb +0 -20
  173. data/samples/processing_app/basics/input/mouse_1d.rb +0 -27
  174. data/samples/processing_app/basics/input/mouse_2d.rb +0 -19
  175. data/samples/processing_app/basics/input/mouse_functions.rb +0 -68
  176. data/samples/processing_app/basics/input/mouse_press.rb +0 -15
  177. data/samples/processing_app/basics/input/mouse_signals.rb +0 -40
  178. data/samples/processing_app/basics/input/storing_input.rb +0 -38
  179. data/samples/processing_app/basics/lights/directional.rb +0 -37
  180. data/samples/processing_app/basics/lights/lights1.rb +0 -35
  181. data/samples/processing_app/basics/lights/lights2.rb +0 -38
  182. data/samples/processing_app/basics/lights/reflection.rb +0 -35
  183. data/samples/processing_app/basics/lights/spot.rb +0 -36
  184. data/samples/processing_app/basics/math/additive_wave.rb +0 -64
  185. data/samples/processing_app/basics/math/arctangent.rb +0 -44
  186. data/samples/processing_app/basics/math/distance1.rb +0 -53
  187. data/samples/processing_app/basics/math/distance2.rb +0 -22
  188. data/samples/processing_app/basics/math/double_random.rb +0 -31
  189. data/samples/processing_app/basics/math/graphing_2_d_equation.rb +0 -39
  190. data/samples/processing_app/basics/math/increment_decrement.rb +0 -54
  191. data/samples/processing_app/basics/math/interpolate.rb +0 -34
  192. data/samples/processing_app/basics/math/modulo.rb +0 -39
  193. data/samples/processing_app/basics/math/noise_1_d.rb +0 -21
  194. data/samples/processing_app/basics/math/noise_2_d.rb +0 -30
  195. data/samples/processing_app/basics/math/noise_3_d.rb +0 -30
  196. data/samples/processing_app/basics/math/noise_wave.rb +0 -41
  197. data/samples/processing_app/basics/math/operator_precedence.rb +0 -49
  198. data/samples/processing_app/basics/math/polar_to_cartesian.rb +0 -31
  199. data/samples/processing_app/basics/math/random.rb +0 -21
  200. data/samples/processing_app/basics/math/random_gaussian.rb +0 -23
  201. data/samples/processing_app/basics/math/sine.rb +0 -35
  202. data/samples/processing_app/basics/math/sine_cosine.rb +0 -48
  203. data/samples/processing_app/basics/math/sine_wave.rb +0 -43
  204. data/samples/processing_app/basics/objects/composite_objects.rb +0 -113
  205. data/samples/processing_app/basics/objects/inheritance.rb +0 -84
  206. data/samples/processing_app/basics/objects/inheritance_two.rb +0 -88
  207. data/samples/processing_app/basics/objects/module.rb +0 -89
  208. data/samples/processing_app/basics/objects/module_two.rb +0 -111
  209. data/samples/processing_app/basics/objects/multiple_constructors.rb +0 -58
  210. data/samples/processing_app/basics/objects/objects.rb +0 -57
  211. data/samples/processing_app/basics/objects/struct.rb +0 -38
  212. data/samples/processing_app/basics/shape/data/bot1.svg +0 -160
  213. data/samples/processing_app/basics/shape/data/rocket.mtl +0 -8
  214. data/samples/processing_app/basics/shape/data/rocket.obj +0 -1688
  215. data/samples/processing_app/basics/shape/data/rocket.png +0 -0
  216. data/samples/processing_app/basics/shape/data/usa-wikipedia.svg +0 -452
  217. data/samples/processing_app/basics/shape/disable_style.rb +0 -32
  218. data/samples/processing_app/basics/shape/get_child.rb +0 -40
  219. data/samples/processing_app/basics/shape/load_display_obj.rb +0 -25
  220. data/samples/processing_app/basics/shape/load_display_shape.rb +0 -20
  221. data/samples/processing_app/basics/shape/load_display_svg.rb +0 -22
  222. data/samples/processing_app/basics/shape/scale_shape.rb +0 -23
  223. data/samples/processing_app/basics/structure/coordinates.rb +0 -42
  224. data/samples/processing_app/basics/structure/create_graphics.rb +0 -29
  225. data/samples/processing_app/basics/structure/functions.rb +0 -29
  226. data/samples/processing_app/basics/structure/loop.rb +0 -30
  227. data/samples/processing_app/basics/structure/noloop.rb +0 -21
  228. data/samples/processing_app/basics/structure/recursion1.rb +0 -27
  229. data/samples/processing_app/basics/structure/recursion2.rb +0 -23
  230. data/samples/processing_app/basics/structure/redraw.rb +0 -25
  231. data/samples/processing_app/basics/structure/setup_draw.rb +0 -19
  232. data/samples/processing_app/basics/structure/statements_comments.rb +0 -26
  233. data/samples/processing_app/basics/structure/width_height.rb +0 -22
  234. data/samples/processing_app/basics/textures/data/berlin-1.jpg +0 -0
  235. data/samples/processing_app/basics/textures/texture1.rb +0 -28
  236. data/samples/processing_app/basics/textures/texture2.rb +0 -33
  237. data/samples/processing_app/basics/textures/texture3.rb +0 -44
  238. data/samples/processing_app/basics/textures/texture_cube.rb +0 -86
  239. data/samples/processing_app/basics/transform/arm.rb +0 -32
  240. data/samples/processing_app/basics/transform/bird.rb +0 -57
  241. data/samples/processing_app/basics/transform/birds.rb +0 -29
  242. data/samples/processing_app/basics/transform/cubes_in_cube.rb +0 -102
  243. data/samples/processing_app/basics/transform/library/bird/bird.rb +0 -87
  244. data/samples/processing_app/basics/transform/library/cube/cube.rb +0 -55
  245. data/samples/processing_app/basics/transform/rotate.rb +0 -34
  246. data/samples/processing_app/basics/transform/rotate1.rb +0 -27
  247. data/samples/processing_app/basics/transform/rotate_push_pop.rb +0 -35
  248. data/samples/processing_app/basics/transform/rotate_x_y.rb +0 -36
  249. data/samples/processing_app/basics/transform/scale.rb +0 -29
  250. data/samples/processing_app/basics/transform/translate.rb +0 -27
  251. data/samples/processing_app/basics/transform/triangle_flower.rb +0 -52
  252. data/samples/processing_app/basics/typography/data/CourierNew36.vlw +0 -0
  253. data/samples/processing_app/basics/typography/data/Univers45.vlw +0 -0
  254. data/samples/processing_app/basics/typography/data/Ziggurat-HTF-Black-32.vlw +0 -0
  255. data/samples/processing_app/basics/typography/kinetic_type.rb +0 -76
  256. data/samples/processing_app/basics/typography/letters.rb +0 -34
  257. data/samples/processing_app/basics/typography/words.rb +0 -36
  258. data/samples/processing_app/basics/web/embedded_links.rb +0 -52
  259. data/samples/processing_app/basics/web/loading_images.rb +0 -15
  260. data/samples/processing_app/demos/graphics/bezier_patch.rb +0 -177
  261. data/samples/processing_app/demos/graphics/data/frag.glsl +0 -30
  262. data/samples/processing_app/demos/graphics/data/java_args.txt +0 -2
  263. data/samples/processing_app/demos/graphics/data/mercury.jpg +0 -0
  264. data/samples/processing_app/demos/graphics/data/planet.jpg +0 -0
  265. data/samples/processing_app/demos/graphics/data/starfield.jpg +0 -0
  266. data/samples/processing_app/demos/graphics/data/sun.jpg +0 -0
  267. data/samples/processing_app/demos/graphics/data/vert.glsl +0 -31
  268. data/samples/processing_app/demos/graphics/low_level_gl.rb +0 -72
  269. data/samples/processing_app/demos/graphics/planets.rb +0 -51
  270. data/samples/processing_app/demos/graphics/trefoil.rb +0 -152
  271. data/samples/processing_app/demos/graphics/wiggling.rb +0 -287
  272. data/samples/processing_app/demos/performance/cubic_grid_retained.rb +0 -58
  273. data/samples/processing_app/demos/performance/data/java_args.txt +0 -1
  274. data/samples/processing_app/demos/performance/esfera.rb +0 -93
  275. data/samples/processing_app/demos/performance/text_rendering.rb +0 -14
  276. data/samples/processing_app/demos/tests/no_background_test.rb +0 -10
  277. data/samples/processing_app/demos/tests/offscreen_test.rb +0 -34
  278. data/samples/processing_app/demos/tests/redraw_test.rb +0 -14
  279. data/samples/processing_app/demos/tests/resize_test.rb +0 -10
  280. data/samples/processing_app/demos/tests/restart_test.rb +0 -22
  281. data/samples/processing_app/demos/tests/smooth_test.rb +0 -27
  282. data/samples/processing_app/demos/tests/specs_test.rb +0 -11
  283. data/samples/processing_app/library/dxf/simple_export.rb +0 -48
  284. data/samples/processing_app/library/fastmath/clock.rb +0 -46
  285. data/samples/processing_app/library/file_chooser/image_viewer.rb +0 -23
  286. data/samples/processing_app/library/minim/filter_example.rb +0 -65
  287. data/samples/processing_app/library/minim/frequency_modulation.rb +0 -64
  288. data/samples/processing_app/library/minim/sequence_sound.rb +0 -59
  289. data/samples/processing_app/library/minim/synthesize_sound.rb +0 -35
  290. data/samples/processing_app/library/movie/README +0 -1
  291. data/samples/processing_app/library/movie/data/transit.mkv +0 -0
  292. data/samples/processing_app/library/movie/data/transit.mov +0 -0
  293. data/samples/processing_app/library/movie/loop.rb +0 -24
  294. data/samples/processing_app/library/movie/pixelate.rb +0 -50
  295. data/samples/processing_app/library/movie/reverse.rb +0 -47
  296. data/samples/processing_app/library/movie/scratch.rb +0 -36
  297. data/samples/processing_app/library/movie/speed.rb +0 -33
  298. data/samples/processing_app/library/net/HTTPClient.rb +0 -33
  299. data/samples/processing_app/library/pdf/complex_3D.rb +0 -162
  300. data/samples/processing_app/library/pdf/large_page.rb +0 -25
  301. data/samples/processing_app/library/pdf/many_frames.rb +0 -33
  302. data/samples/processing_app/library/pdf/many_pages.rb +0 -31
  303. data/samples/processing_app/library/pdf/many_pdfs.rb +0 -37
  304. data/samples/processing_app/library/pdf/one_frame.rb +0 -19
  305. data/samples/processing_app/library/vecmath/arcball/Rakefile +0 -30
  306. data/samples/processing_app/library/vecmath/arcball/arcball_box.rb +0 -23
  307. data/samples/processing_app/library/vecmath/arcball/arcball_radius.rb +0 -23
  308. data/samples/processing_app/library/vecmath/arcball/arcball_shape.rb +0 -29
  309. data/samples/processing_app/library/vecmath/vec2d/README.txt +0 -2
  310. data/samples/processing_app/library/vecmath/vec2d/Rakefile +0 -30
  311. data/samples/processing_app/library/vecmath/vec2d/acceleration_with_vectors.rb +0 -74
  312. data/samples/processing_app/library/vecmath/vec2d/bouncing_ball.rb +0 -45
  313. data/samples/processing_app/library/vecmath/vec2d/circle_collision.rb +0 -169
  314. data/samples/processing_app/library/vecmath/vec2d/data/java_args.txt +0 -2
  315. data/samples/processing_app/library/vecmath/vec2d/data/sprite.png +0 -0
  316. data/samples/processing_app/library/vecmath/vec2d/data/texture.png +0 -0
  317. data/samples/processing_app/library/vecmath/vec2d/flocking.rb +0 -30
  318. data/samples/processing_app/library/vecmath/vec2d/library/flock/flock.rb +0 -191
  319. data/samples/processing_app/library/vecmath/vec2d/library/particle/particle.rb +0 -113
  320. data/samples/processing_app/library/vecmath/vec2d/library/tile/tile.rb +0 -85
  321. data/samples/processing_app/library/vecmath/vec2d/morph.rb +0 -87
  322. data/samples/processing_app/library/vecmath/vec2d/particle_system_pshape.rb +0 -36
  323. data/samples/processing_app/library/vecmath/vec2d/penrose.rb +0 -71
  324. data/samples/processing_app/library/vecmath/vec2d/reflection1.rb +0 -108
  325. data/samples/processing_app/library/vecmath/vec2d/seeking_neural.rb +0 -169
  326. data/samples/processing_app/library/vecmath/vec2d/simple_particle_system.rb +0 -85
  327. data/samples/processing_app/library/vecmath/vec2d/vector_math.rb +0 -39
  328. data/samples/processing_app/library/vecmath/vec2d/wiggle_pshape.rb +0 -74
  329. data/samples/processing_app/library/vecmath/vec3d/Rakefile +0 -30
  330. data/samples/processing_app/library/vecmath/vec3d/drawolver.rb +0 -86
  331. data/samples/processing_app/library/vecmath/vec3d/frame_of_reference.rb +0 -103
  332. data/samples/processing_app/library/vecmath/vec3d/hilbert_fractal.rb +0 -37
  333. data/samples/processing_app/library/vecmath/vec3d/library/geometry/geometry.rb +0 -3
  334. data/samples/processing_app/library/vecmath/vec3d/library/geometry/lib/cylinder.rb +0 -44
  335. data/samples/processing_app/library/vecmath/vec3d/library/geometry/lib/mat4.rb +0 -28
  336. data/samples/processing_app/library/vecmath/vec3d/library/geometry/lib/plane.rb +0 -60
  337. data/samples/processing_app/library/vecmath/vec3d/library/hilbert/hilbert.rb +0 -84
  338. data/samples/processing_app/library/vecmath/vec3d/note.txt +0 -1
  339. data/samples/processing_app/library/vecmath/vec3d/retained_menger.rb +0 -115
  340. data/samples/processing_app/topics/advanced_data/README +0 -1
  341. data/samples/processing_app/topics/advanced_data/Rakefile +0 -30
  342. data/samples/processing_app/topics/advanced_data/counting_words.rb +0 -79
  343. data/samples/processing_app/topics/advanced_data/data/Georgia.ttf +0 -0
  344. data/samples/processing_app/topics/advanced_data/data/Merriweather-Light.ttf +0 -0
  345. data/samples/processing_app/topics/advanced_data/data/a000 copy.jpg +0 -0
  346. data/samples/processing_app/topics/advanced_data/data/a001 copy.jpg +0 -0
  347. data/samples/processing_app/topics/advanced_data/data/a002 copy.jpg +0 -0
  348. data/samples/processing_app/topics/advanced_data/data/a003 copy.jpg +0 -0
  349. data/samples/processing_app/topics/advanced_data/data/a004 copy.jpg +0 -0
  350. data/samples/processing_app/topics/advanced_data/data/a005 copy.jpg +0 -0
  351. data/samples/processing_app/topics/advanced_data/data/a006 copy.jpg +0 -0
  352. data/samples/processing_app/topics/advanced_data/data/a007 copy.jpg +0 -0
  353. data/samples/processing_app/topics/advanced_data/data/a008 copy.jpg +0 -0
  354. data/samples/processing_app/topics/advanced_data/data/a009 copy.jpg +0 -0
  355. data/samples/processing_app/topics/advanced_data/data/a010 copy.jpg +0 -0
  356. data/samples/processing_app/topics/advanced_data/data/a011 copy.jpg +0 -0
  357. data/samples/processing_app/topics/advanced_data/data/a012 copy.jpg +0 -0
  358. data/samples/processing_app/topics/advanced_data/data/a013 copy.jpg +0 -0
  359. data/samples/processing_app/topics/advanced_data/data/a014 copy.jpg +0 -0
  360. data/samples/processing_app/topics/advanced_data/data/a015 copy.jpg +0 -0
  361. data/samples/processing_app/topics/advanced_data/data/a016 copy.jpg +0 -0
  362. data/samples/processing_app/topics/advanced_data/data/a017 copy.jpg +0 -0
  363. data/samples/processing_app/topics/advanced_data/data/a018 copy.jpg +0 -0
  364. data/samples/processing_app/topics/advanced_data/data/a019 copy.jpg +0 -0
  365. data/samples/processing_app/topics/advanced_data/data/a020 copy.jpg +0 -0
  366. data/samples/processing_app/topics/advanced_data/data/a021 copy.jpg +0 -0
  367. data/samples/processing_app/topics/advanced_data/data/a022 copy.jpg +0 -0
  368. data/samples/processing_app/topics/advanced_data/data/a023 copy.jpg +0 -0
  369. data/samples/processing_app/topics/advanced_data/data/a024 copy.jpg +0 -0
  370. data/samples/processing_app/topics/advanced_data/data/a025 copy.jpg +0 -0
  371. data/samples/processing_app/topics/advanced_data/data/a026 copy.jpg +0 -0
  372. data/samples/processing_app/topics/advanced_data/data/a027 copy.jpg +0 -0
  373. data/samples/processing_app/topics/advanced_data/data/a028 copy.jpg +0 -0
  374. data/samples/processing_app/topics/advanced_data/data/a029 copy.jpg +0 -0
  375. data/samples/processing_app/topics/advanced_data/data/a030 copy.jpg +0 -0
  376. data/samples/processing_app/topics/advanced_data/data/a031 copy.jpg +0 -0
  377. data/samples/processing_app/topics/advanced_data/data/a032 copy.jpg +0 -0
  378. data/samples/processing_app/topics/advanced_data/data/a033 copy.jpg +0 -0
  379. data/samples/processing_app/topics/advanced_data/data/a034 copy.jpg +0 -0
  380. data/samples/processing_app/topics/advanced_data/data/a035 copy.jpg +0 -0
  381. data/samples/processing_app/topics/advanced_data/data/a036 copy.jpg +0 -0
  382. data/samples/processing_app/topics/advanced_data/data/a037 copy.jpg +0 -0
  383. data/samples/processing_app/topics/advanced_data/data/a038 copy.jpg +0 -0
  384. data/samples/processing_app/topics/advanced_data/data/a039 copy.jpg +0 -0
  385. data/samples/processing_app/topics/advanced_data/data/a040 copy.jpg +0 -0
  386. data/samples/processing_app/topics/advanced_data/data/a041 copy.jpg +0 -0
  387. data/samples/processing_app/topics/advanced_data/data/a042 copy.jpg +0 -0
  388. data/samples/processing_app/topics/advanced_data/data/a043 copy.jpg +0 -0
  389. data/samples/processing_app/topics/advanced_data/data/a044 copy.jpg +0 -0
  390. data/samples/processing_app/topics/advanced_data/data/a045 copy.jpg +0 -0
  391. data/samples/processing_app/topics/advanced_data/data/a046 copy.jpg +0 -0
  392. data/samples/processing_app/topics/advanced_data/data/a047 copy.jpg +0 -0
  393. data/samples/processing_app/topics/advanced_data/data/a048 copy.jpg +0 -0
  394. data/samples/processing_app/topics/advanced_data/data/a049 copy.jpg +0 -0
  395. data/samples/processing_app/topics/advanced_data/data/a050 copy.jpg +0 -0
  396. data/samples/processing_app/topics/advanced_data/data/a051 copy.jpg +0 -0
  397. data/samples/processing_app/topics/advanced_data/data/a052 copy.jpg +0 -0
  398. data/samples/processing_app/topics/advanced_data/data/a053 copy.jpg +0 -0
  399. data/samples/processing_app/topics/advanced_data/data/a054 copy.jpg +0 -0
  400. data/samples/processing_app/topics/advanced_data/data/a055 copy.jpg +0 -0
  401. data/samples/processing_app/topics/advanced_data/data/a056 copy.jpg +0 -0
  402. data/samples/processing_app/topics/advanced_data/data/a057 copy.jpg +0 -0
  403. data/samples/processing_app/topics/advanced_data/data/a058 copy.jpg +0 -0
  404. data/samples/processing_app/topics/advanced_data/data/a059 copy.jpg +0 -0
  405. data/samples/processing_app/topics/advanced_data/data/a060 copy.jpg +0 -0
  406. data/samples/processing_app/topics/advanced_data/data/a061 copy.jpg +0 -0
  407. data/samples/processing_app/topics/advanced_data/data/a062 copy.jpg +0 -0
  408. data/samples/processing_app/topics/advanced_data/data/a063 copy.jpg +0 -0
  409. data/samples/processing_app/topics/advanced_data/data/a064 copy.jpg +0 -0
  410. data/samples/processing_app/topics/advanced_data/data/a065 copy.jpg +0 -0
  411. data/samples/processing_app/topics/advanced_data/data/a066 copy.jpg +0 -0
  412. data/samples/processing_app/topics/advanced_data/data/a067 copy.jpg +0 -0
  413. data/samples/processing_app/topics/advanced_data/data/a068 copy.jpg +0 -0
  414. data/samples/processing_app/topics/advanced_data/data/a069 copy.jpg +0 -0
  415. data/samples/processing_app/topics/advanced_data/data/a070 copy.jpg +0 -0
  416. data/samples/processing_app/topics/advanced_data/data/a071 copy.jpg +0 -0
  417. data/samples/processing_app/topics/advanced_data/data/a072 copy.jpg +0 -0
  418. data/samples/processing_app/topics/advanced_data/data/a073 copy.jpg +0 -0
  419. data/samples/processing_app/topics/advanced_data/data/a074 copy.jpg +0 -0
  420. data/samples/processing_app/topics/advanced_data/data/a075 copy.jpg +0 -0
  421. data/samples/processing_app/topics/advanced_data/data/a076 copy.jpg +0 -0
  422. data/samples/processing_app/topics/advanced_data/data/a077 copy.jpg +0 -0
  423. data/samples/processing_app/topics/advanced_data/data/a078 copy.jpg +0 -0
  424. data/samples/processing_app/topics/advanced_data/data/a079 copy.jpg +0 -0
  425. data/samples/processing_app/topics/advanced_data/data/a080 copy.jpg +0 -0
  426. data/samples/processing_app/topics/advanced_data/data/a081 copy.jpg +0 -0
  427. data/samples/processing_app/topics/advanced_data/data/a082 copy.jpg +0 -0
  428. data/samples/processing_app/topics/advanced_data/data/a083 copy.jpg +0 -0
  429. data/samples/processing_app/topics/advanced_data/data/a084 copy.jpg +0 -0
  430. data/samples/processing_app/topics/advanced_data/data/a085 copy.jpg +0 -0
  431. data/samples/processing_app/topics/advanced_data/data/a086 copy.jpg +0 -0
  432. data/samples/processing_app/topics/advanced_data/data/a087 copy.jpg +0 -0
  433. data/samples/processing_app/topics/advanced_data/data/a088 copy.jpg +0 -0
  434. data/samples/processing_app/topics/advanced_data/data/a089 copy.jpg +0 -0
  435. data/samples/processing_app/topics/advanced_data/data/a090 copy.jpg +0 -0
  436. data/samples/processing_app/topics/advanced_data/data/a091 copy.jpg +0 -0
  437. data/samples/processing_app/topics/advanced_data/data/a092 copy.jpg +0 -0
  438. data/samples/processing_app/topics/advanced_data/data/a093 copy.jpg +0 -0
  439. data/samples/processing_app/topics/advanced_data/data/a094 copy.jpg +0 -0
  440. data/samples/processing_app/topics/advanced_data/data/a095 copy.jpg +0 -0
  441. data/samples/processing_app/topics/advanced_data/data/a096 copy.jpg +0 -0
  442. data/samples/processing_app/topics/advanced_data/data/a097 copy.jpg +0 -0
  443. data/samples/processing_app/topics/advanced_data/data/a098 copy.jpg +0 -0
  444. data/samples/processing_app/topics/advanced_data/data/a099 copy.jpg +0 -0
  445. data/samples/processing_app/topics/advanced_data/data/a100 copy.jpg +0 -0
  446. data/samples/processing_app/topics/advanced_data/data/a101 copy.jpg +0 -0
  447. data/samples/processing_app/topics/advanced_data/data/a102 copy.jpg +0 -0
  448. data/samples/processing_app/topics/advanced_data/data/a103 copy.jpg +0 -0
  449. data/samples/processing_app/topics/advanced_data/data/a104 copy.jpg +0 -0
  450. data/samples/processing_app/topics/advanced_data/data/a105 copy.jpg +0 -0
  451. data/samples/processing_app/topics/advanced_data/data/a106 copy.jpg +0 -0
  452. data/samples/processing_app/topics/advanced_data/data/a107 copy.jpg +0 -0
  453. data/samples/processing_app/topics/advanced_data/data/a108 copy.jpg +0 -0
  454. data/samples/processing_app/topics/advanced_data/data/a109 copy.jpg +0 -0
  455. data/samples/processing_app/topics/advanced_data/data/a110 copy.jpg +0 -0
  456. data/samples/processing_app/topics/advanced_data/data/a111 copy.jpg +0 -0
  457. data/samples/processing_app/topics/advanced_data/data/a112 copy.jpg +0 -0
  458. data/samples/processing_app/topics/advanced_data/data/a113 copy.jpg +0 -0
  459. data/samples/processing_app/topics/advanced_data/data/a114 copy.jpg +0 -0
  460. data/samples/processing_app/topics/advanced_data/data/a115 copy.jpg +0 -0
  461. data/samples/processing_app/topics/advanced_data/data/data.csv +0 -5
  462. data/samples/processing_app/topics/advanced_data/data/data.json +0 -36
  463. data/samples/processing_app/topics/advanced_data/data/data.xml +0 -23
  464. data/samples/processing_app/topics/advanced_data/data/data.yml +0 -22
  465. data/samples/processing_app/topics/advanced_data/data/dracula.txt +0 -16624
  466. data/samples/processing_app/topics/advanced_data/data/frankenstein.txt +0 -7652
  467. data/samples/processing_app/topics/advanced_data/data/struct_data.yml +0 -27
  468. data/samples/processing_app/topics/advanced_data/library/bubble/bubble.rb +0 -45
  469. data/samples/processing_app/topics/advanced_data/library/word/word.rb +0 -64
  470. data/samples/processing_app/topics/advanced_data/load_save_XML.rb +0 -113
  471. data/samples/processing_app/topics/advanced_data/load_save_json.rb +0 -93
  472. data/samples/processing_app/topics/advanced_data/load_save_struct_yaml.rb +0 -84
  473. data/samples/processing_app/topics/advanced_data/load_save_table.rb +0 -85
  474. data/samples/processing_app/topics/advanced_data/load_save_yaml.rb +0 -87
  475. data/samples/processing_app/topics/advanced_data/regex.rb +0 -46
  476. data/samples/processing_app/topics/advanced_data/threads.rb +0 -96
  477. data/samples/processing_app/topics/advanced_data/threads_two.rb +0 -52
  478. data/samples/processing_app/topics/advanced_data/word_frequency.rb +0 -80
  479. data/samples/processing_app/topics/advanced_data/yahoo_weather.rb +0 -39
  480. data/samples/processing_app/topics/animation/README.txt +0 -1
  481. data/samples/processing_app/topics/animation/animated_sprite.rb +0 -57
  482. data/samples/processing_app/topics/animation/data/PT_Shifty_0000.gif +0 -0
  483. data/samples/processing_app/topics/animation/data/PT_Shifty_0001.gif +0 -0
  484. data/samples/processing_app/topics/animation/data/PT_Shifty_0002.gif +0 -0
  485. data/samples/processing_app/topics/animation/data/PT_Shifty_0003.gif +0 -0
  486. data/samples/processing_app/topics/animation/data/PT_Shifty_0004.gif +0 -0
  487. data/samples/processing_app/topics/animation/data/PT_Shifty_0005.gif +0 -0
  488. data/samples/processing_app/topics/animation/data/PT_Shifty_0006.gif +0 -0
  489. data/samples/processing_app/topics/animation/data/PT_Shifty_0007.gif +0 -0
  490. data/samples/processing_app/topics/animation/data/PT_Shifty_0008.gif +0 -0
  491. data/samples/processing_app/topics/animation/data/PT_Shifty_0009.gif +0 -0
  492. data/samples/processing_app/topics/animation/data/PT_Shifty_0010.gif +0 -0
  493. data/samples/processing_app/topics/animation/data/PT_Shifty_0011.gif +0 -0
  494. data/samples/processing_app/topics/animation/data/PT_Shifty_0012.gif +0 -0
  495. data/samples/processing_app/topics/animation/data/PT_Shifty_0013.gif +0 -0
  496. data/samples/processing_app/topics/animation/data/PT_Shifty_0014.gif +0 -0
  497. data/samples/processing_app/topics/animation/data/PT_Shifty_0015.gif +0 -0
  498. data/samples/processing_app/topics/animation/data/PT_Shifty_0016.gif +0 -0
  499. data/samples/processing_app/topics/animation/data/PT_Shifty_0017.gif +0 -0
  500. data/samples/processing_app/topics/animation/data/PT_Shifty_0018.gif +0 -0
  501. data/samples/processing_app/topics/animation/data/PT_Shifty_0019.gif +0 -0
  502. data/samples/processing_app/topics/animation/data/PT_Shifty_0020.gif +0 -0
  503. data/samples/processing_app/topics/animation/data/PT_Shifty_0021.gif +0 -0
  504. data/samples/processing_app/topics/animation/data/PT_Shifty_0022.gif +0 -0
  505. data/samples/processing_app/topics/animation/data/PT_Shifty_0023.gif +0 -0
  506. data/samples/processing_app/topics/animation/data/PT_Shifty_0024.gif +0 -0
  507. data/samples/processing_app/topics/animation/data/PT_Shifty_0025.gif +0 -0
  508. data/samples/processing_app/topics/animation/data/PT_Shifty_0026.gif +0 -0
  509. data/samples/processing_app/topics/animation/data/PT_Shifty_0027.gif +0 -0
  510. data/samples/processing_app/topics/animation/data/PT_Shifty_0028.gif +0 -0
  511. data/samples/processing_app/topics/animation/data/PT_Shifty_0029.gif +0 -0
  512. data/samples/processing_app/topics/animation/data/PT_Shifty_0030.gif +0 -0
  513. data/samples/processing_app/topics/animation/data/PT_Shifty_0031.gif +0 -0
  514. data/samples/processing_app/topics/animation/data/PT_Shifty_0032.gif +0 -0
  515. data/samples/processing_app/topics/animation/data/PT_Shifty_0033.gif +0 -0
  516. data/samples/processing_app/topics/animation/data/PT_Shifty_0034.gif +0 -0
  517. data/samples/processing_app/topics/animation/data/PT_Shifty_0035.gif +0 -0
  518. data/samples/processing_app/topics/animation/data/PT_Shifty_0036.gif +0 -0
  519. data/samples/processing_app/topics/animation/data/PT_Shifty_0037.gif +0 -0
  520. data/samples/processing_app/topics/animation/data/PT_Teddy_0000.gif +0 -0
  521. data/samples/processing_app/topics/animation/data/PT_Teddy_0001.gif +0 -0
  522. data/samples/processing_app/topics/animation/data/PT_Teddy_0002.gif +0 -0
  523. data/samples/processing_app/topics/animation/data/PT_Teddy_0003.gif +0 -0
  524. data/samples/processing_app/topics/animation/data/PT_Teddy_0004.gif +0 -0
  525. data/samples/processing_app/topics/animation/data/PT_Teddy_0005.gif +0 -0
  526. data/samples/processing_app/topics/animation/data/PT_Teddy_0006.gif +0 -0
  527. data/samples/processing_app/topics/animation/data/PT_Teddy_0007.gif +0 -0
  528. data/samples/processing_app/topics/animation/data/PT_Teddy_0008.gif +0 -0
  529. data/samples/processing_app/topics/animation/data/PT_Teddy_0009.gif +0 -0
  530. data/samples/processing_app/topics/animation/data/PT_Teddy_0010.gif +0 -0
  531. data/samples/processing_app/topics/animation/data/PT_Teddy_0011.gif +0 -0
  532. data/samples/processing_app/topics/animation/data/PT_Teddy_0012.gif +0 -0
  533. data/samples/processing_app/topics/animation/data/PT_Teddy_0013.gif +0 -0
  534. data/samples/processing_app/topics/animation/data/PT_Teddy_0014.gif +0 -0
  535. data/samples/processing_app/topics/animation/data/PT_Teddy_0015.gif +0 -0
  536. data/samples/processing_app/topics/animation/data/PT_Teddy_0016.gif +0 -0
  537. data/samples/processing_app/topics/animation/data/PT_Teddy_0017.gif +0 -0
  538. data/samples/processing_app/topics/animation/data/PT_Teddy_0018.gif +0 -0
  539. data/samples/processing_app/topics/animation/data/PT_Teddy_0019.gif +0 -0
  540. data/samples/processing_app/topics/animation/data/PT_Teddy_0020.gif +0 -0
  541. data/samples/processing_app/topics/animation/data/PT_Teddy_0021.gif +0 -0
  542. data/samples/processing_app/topics/animation/data/PT_Teddy_0022.gif +0 -0
  543. data/samples/processing_app/topics/animation/data/PT_Teddy_0023.gif +0 -0
  544. data/samples/processing_app/topics/animation/data/PT_Teddy_0024.gif +0 -0
  545. data/samples/processing_app/topics/animation/data/PT_Teddy_0025.gif +0 -0
  546. data/samples/processing_app/topics/animation/data/PT_Teddy_0026.gif +0 -0
  547. data/samples/processing_app/topics/animation/data/PT_Teddy_0027.gif +0 -0
  548. data/samples/processing_app/topics/animation/data/PT_Teddy_0028.gif +0 -0
  549. data/samples/processing_app/topics/animation/data/PT_Teddy_0029.gif +0 -0
  550. data/samples/processing_app/topics/animation/data/PT_Teddy_0030.gif +0 -0
  551. data/samples/processing_app/topics/animation/data/PT_Teddy_0031.gif +0 -0
  552. data/samples/processing_app/topics/animation/data/PT_Teddy_0032.gif +0 -0
  553. data/samples/processing_app/topics/animation/data/PT_Teddy_0033.gif +0 -0
  554. data/samples/processing_app/topics/animation/data/PT_Teddy_0034.gif +0 -0
  555. data/samples/processing_app/topics/animation/data/PT_Teddy_0035.gif +0 -0
  556. data/samples/processing_app/topics/animation/data/PT_Teddy_0036.gif +0 -0
  557. data/samples/processing_app/topics/animation/data/PT_Teddy_0037.gif +0 -0
  558. data/samples/processing_app/topics/animation/data/PT_Teddy_0038.gif +0 -0
  559. data/samples/processing_app/topics/animation/data/PT_Teddy_0039.gif +0 -0
  560. data/samples/processing_app/topics/animation/data/PT_Teddy_0040.gif +0 -0
  561. data/samples/processing_app/topics/animation/data/PT_Teddy_0041.gif +0 -0
  562. data/samples/processing_app/topics/animation/data/PT_Teddy_0042.gif +0 -0
  563. data/samples/processing_app/topics/animation/data/PT_Teddy_0043.gif +0 -0
  564. data/samples/processing_app/topics/animation/data/PT_Teddy_0044.gif +0 -0
  565. data/samples/processing_app/topics/animation/data/PT_Teddy_0045.gif +0 -0
  566. data/samples/processing_app/topics/animation/data/PT_Teddy_0046.gif +0 -0
  567. data/samples/processing_app/topics/animation/data/PT_Teddy_0047.gif +0 -0
  568. data/samples/processing_app/topics/animation/data/PT_Teddy_0048.gif +0 -0
  569. data/samples/processing_app/topics/animation/data/PT_Teddy_0049.gif +0 -0
  570. data/samples/processing_app/topics/animation/data/PT_Teddy_0050.gif +0 -0
  571. data/samples/processing_app/topics/animation/data/PT_Teddy_0051.gif +0 -0
  572. data/samples/processing_app/topics/animation/data/PT_Teddy_0052.gif +0 -0
  573. data/samples/processing_app/topics/animation/data/PT_Teddy_0053.gif +0 -0
  574. data/samples/processing_app/topics/animation/data/PT_Teddy_0054.gif +0 -0
  575. data/samples/processing_app/topics/animation/data/PT_Teddy_0055.gif +0 -0
  576. data/samples/processing_app/topics/animation/data/PT_Teddy_0056.gif +0 -0
  577. data/samples/processing_app/topics/animation/data/PT_Teddy_0057.gif +0 -0
  578. data/samples/processing_app/topics/animation/data/PT_Teddy_0058.gif +0 -0
  579. data/samples/processing_app/topics/animation/data/PT_Teddy_0059.gif +0 -0
  580. data/samples/processing_app/topics/animation/data/PT_anim0000.gif +0 -0
  581. data/samples/processing_app/topics/animation/data/PT_anim0001.gif +0 -0
  582. data/samples/processing_app/topics/animation/data/PT_anim0002.gif +0 -0
  583. data/samples/processing_app/topics/animation/data/PT_anim0003.gif +0 -0
  584. data/samples/processing_app/topics/animation/data/PT_anim0004.gif +0 -0
  585. data/samples/processing_app/topics/animation/data/PT_anim0005.gif +0 -0
  586. data/samples/processing_app/topics/animation/data/PT_anim0006.gif +0 -0
  587. data/samples/processing_app/topics/animation/data/PT_anim0007.gif +0 -0
  588. data/samples/processing_app/topics/animation/data/PT_anim0008.gif +0 -0
  589. data/samples/processing_app/topics/animation/data/PT_anim0009.gif +0 -0
  590. data/samples/processing_app/topics/animation/data/PT_anim0010.gif +0 -0
  591. data/samples/processing_app/topics/animation/data/PT_anim0011.gif +0 -0
  592. data/samples/processing_app/topics/animation/sequential.rb +0 -41
  593. data/samples/processing_app/topics/cellular_automata/game_of_life.rb +0 -125
  594. data/samples/processing_app/topics/cellular_automata/library/ca/ca.rb +0 -91
  595. data/samples/processing_app/topics/cellular_automata/library/cell/cell.rb +0 -99
  596. data/samples/processing_app/topics/cellular_automata/library/simple_cell/simple_cell.rb +0 -46
  597. data/samples/processing_app/topics/cellular_automata/spore1.rb +0 -94
  598. data/samples/processing_app/topics/cellular_automata/spore2.rb +0 -101
  599. data/samples/processing_app/topics/cellular_automata/wolfram.rb +0 -42
  600. data/samples/processing_app/topics/create_shapes/begin_end_contour.rb +0 -44
  601. data/samples/processing_app/topics/create_shapes/data/sprite.png +0 -0
  602. data/samples/processing_app/topics/create_shapes/group_pshape.rb +0 -69
  603. data/samples/processing_app/topics/create_shapes/library/particle/particle_system.rb +0 -107
  604. data/samples/processing_app/topics/create_shapes/library/polygon/polygon.rb +0 -35
  605. data/samples/processing_app/topics/create_shapes/library/star/star.rb +0 -47
  606. data/samples/processing_app/topics/create_shapes/library/wiggler/wiggler.rb +0 -57
  607. data/samples/processing_app/topics/create_shapes/particle_system_pshape.rb +0 -38
  608. data/samples/processing_app/topics/create_shapes/path_pshape.rb +0 -38
  609. data/samples/processing_app/topics/create_shapes/polygon_pshape_oo3.rb +0 -56
  610. data/samples/processing_app/topics/create_shapes/polygon_pshape_oop.rb +0 -29
  611. data/samples/processing_app/topics/create_shapes/polygon_pshape_oop2.rb +0 -52
  612. data/samples/processing_app/topics/create_shapes/polygon_shape.rb +0 -42
  613. data/samples/processing_app/topics/create_shapes/primitive_pshape.rb +0 -29
  614. data/samples/processing_app/topics/create_shapes/wiggle_pshape.rb +0 -23
  615. data/samples/processing_app/topics/drawing/continuous_lines.rb +0 -17
  616. data/samples/processing_app/topics/drawing/pattern.rb +0 -30
  617. data/samples/processing_app/topics/drawing/pulses.rb +0 -33
  618. data/samples/processing_app/topics/drawing/scribble_plotter.rb +0 -77
  619. data/samples/processing_app/topics/effects/data/red_smoke.jpg +0 -0
  620. data/samples/processing_app/topics/effects/lens.rb +0 -94
  621. data/samples/processing_app/topics/file_io/data/positions.txt +0 -206
  622. data/samples/processing_app/topics/file_io/load_file1.rb +0 -32
  623. data/samples/processing_app/topics/file_io/save_frames.rb +0 -70
  624. data/samples/processing_app/topics/file_io/save_one_image.rb +0 -22
  625. data/samples/processing_app/topics/file_io/tile_images.rb +0 -37
  626. data/samples/processing_app/topics/gui/button.rb +0 -74
  627. data/samples/processing_app/topics/gui/data/seedBottom.jpg +0 -0
  628. data/samples/processing_app/topics/gui/data/seedTop.jpg +0 -0
  629. data/samples/processing_app/topics/gui/handles.rb +0 -108
  630. data/samples/processing_app/topics/gui/rollover.rb +0 -63
  631. data/samples/processing_app/topics/gui/scrollbar.rb +0 -91
  632. data/samples/processing_app/topics/image_processing/blending.rb +0 -82
  633. data/samples/processing_app/topics/image_processing/blur.rb +0 -50
  634. data/samples/processing_app/topics/image_processing/brightness.rb +0 -39
  635. data/samples/processing_app/topics/image_processing/convolution.rb +0 -72
  636. data/samples/processing_app/topics/image_processing/data/eames.jpg +0 -0
  637. data/samples/processing_app/topics/image_processing/data/frontier.jpg +0 -0
  638. data/samples/processing_app/topics/image_processing/data/java_args.txt +0 -3
  639. data/samples/processing_app/topics/image_processing/data/layer1.jpg +0 -0
  640. data/samples/processing_app/topics/image_processing/data/layer2.jpg +0 -0
  641. data/samples/processing_app/topics/image_processing/data/moon-wide.jpg +0 -0
  642. data/samples/processing_app/topics/image_processing/data/moon.jpg +0 -0
  643. data/samples/processing_app/topics/image_processing/data/sea.jpg +0 -0
  644. data/samples/processing_app/topics/image_processing/data/ystone08.jpg +0 -0
  645. data/samples/processing_app/topics/image_processing/edge_detection.rb +0 -47
  646. data/samples/processing_app/topics/image_processing/explode.rb +0 -35
  647. data/samples/processing_app/topics/image_processing/extrusion.rb +0 -49
  648. data/samples/processing_app/topics/image_processing/histogram.rb +0 -43
  649. data/samples/processing_app/topics/image_processing/linear_image.rb +0 -45
  650. data/samples/processing_app/topics/image_processing/pixel_array.rb +0 -48
  651. data/samples/processing_app/topics/image_processing/zoom.rb +0 -66
  652. data/samples/processing_app/topics/lsystems/Rakefile +0 -30
  653. data/samples/processing_app/topics/lsystems/chequer.rb +0 -66
  654. data/samples/processing_app/topics/lsystems/csplant.rb +0 -100
  655. data/samples/processing_app/topics/lsystems/cstest.rb +0 -25
  656. data/samples/processing_app/topics/lsystems/data/java_args.txt +0 -3
  657. data/samples/processing_app/topics/lsystems/david_tour.rb +0 -75
  658. data/samples/processing_app/topics/lsystems/koch.rb +0 -19
  659. data/samples/processing_app/topics/lsystems/library/cs_grammar/cs_grammar.rb +0 -82
  660. data/samples/processing_app/topics/lsystems/library/grammar/grammar.rb +0 -31
  661. data/samples/processing_app/topics/lsystems/library/koch/koch_fractal.rb +0 -99
  662. data/samples/processing_app/topics/lsystems/library/stochastic_grammar/stochastic_grammar.rb +0 -56
  663. data/samples/processing_app/topics/lsystems/mpeano.rb +0 -80
  664. data/samples/processing_app/topics/lsystems/peano.rb +0 -76
  665. data/samples/processing_app/topics/lsystems/penrose.rb +0 -117
  666. data/samples/processing_app/topics/lsystems/penrose_snowflake.rb +0 -88
  667. data/samples/processing_app/topics/lsystems/pentagonal.rb +0 -100
  668. data/samples/processing_app/topics/lsystems/snake_kolam.rb +0 -93
  669. data/samples/processing_app/topics/lsystems/stochastic_test.rb +0 -96
  670. data/samples/processing_app/topics/lsystems/three_d_tree.rb +0 -109
  671. data/samples/processing_app/topics/motion/Rakefile +0 -30
  672. data/samples/processing_app/topics/motion/bounce.rb +0 -40
  673. data/samples/processing_app/topics/motion/bouncy_bubbles.rb +0 -96
  674. data/samples/processing_app/topics/motion/brownian.rb +0 -40
  675. data/samples/processing_app/topics/motion/circle_collision.rb +0 -142
  676. data/samples/processing_app/topics/motion/cubes_in_cube.rb +0 -62
  677. data/samples/processing_app/topics/motion/data/java_args.txt +0 -3
  678. data/samples/processing_app/topics/motion/library/cube/cube.rb +0 -128
  679. data/samples/processing_app/topics/motion/library/ground/ground.rb +0 -42
  680. data/samples/processing_app/topics/motion/linear.rb +0 -25
  681. data/samples/processing_app/topics/motion/morph.rb +0 -84
  682. data/samples/processing_app/topics/motion/moving_on_curves.rb +0 -46
  683. data/samples/processing_app/topics/motion/puff.rb +0 -78
  684. data/samples/processing_app/topics/motion/reflection1.rb +0 -108
  685. data/samples/processing_app/topics/motion/reflection2.rb +0 -122
  686. data/samples/processing_app/topics/ruby_hook/hooky.rb +0 -26
  687. data/samples/processing_app/topics/ruby_hook/subclass.rb +0 -75
  688. data/samples/processing_app/topics/shaders/README +0 -1
  689. data/samples/processing_app/topics/shaders/Rakefile +0 -30
  690. data/samples/processing_app/topics/shaders/blur_filter.rb +0 -25
  691. data/samples/processing_app/topics/shaders/bw_shader.rb +0 -40
  692. data/samples/processing_app/topics/shaders/conway.rb +0 -26
  693. data/samples/processing_app/topics/shaders/data/FishEye.glsl +0 -59
  694. data/samples/processing_app/topics/shaders/data/GlossyFrag.glsl +0 -44
  695. data/samples/processing_app/topics/shaders/data/GlossyVert.glsl +0 -33
  696. data/samples/processing_app/topics/shaders/data/Texture01.jpg +0 -0
  697. data/samples/processing_app/topics/shaders/data/Texture02.jpg +0 -0
  698. data/samples/processing_app/topics/shaders/data/ToonFrag.glsl +0 -25
  699. data/samples/processing_app/topics/shaders/data/ToonVert.glsl +0 -31
  700. data/samples/processing_app/topics/shaders/data/blur.glsl +0 -42
  701. data/samples/processing_app/topics/shaders/data/bwfrag.glsl +0 -23
  702. data/samples/processing_app/topics/shaders/data/conway.glsl +0 -57
  703. data/samples/processing_app/topics/shaders/data/cubemapfrag.glsl +0 -1
  704. data/samples/processing_app/topics/shaders/data/cubemapvert.glsl +0 -1
  705. data/samples/processing_app/topics/shaders/data/deform.glsl +0 -31
  706. data/samples/processing_app/topics/shaders/data/displaceFrag.glsl +0 -8
  707. data/samples/processing_app/topics/shaders/data/displaceVert.glsl +0 -201
  708. data/samples/processing_app/topics/shaders/data/edges.glsl +0 -40
  709. data/samples/processing_app/topics/shaders/data/java_args.txt +0 -2
  710. data/samples/processing_app/topics/shaders/data/lachoy.jpg +0 -0
  711. data/samples/processing_app/topics/shaders/data/landscape.glsl +0 -352
  712. data/samples/processing_app/topics/shaders/data/leaves.jpg +0 -0
  713. data/samples/processing_app/topics/shaders/data/mask.glsl +0 -19
  714. data/samples/processing_app/topics/shaders/data/monjori.glsl +0 -30
  715. data/samples/processing_app/topics/shaders/data/nebula.glsl +0 -111
  716. data/samples/processing_app/topics/shaders/data/sep_blur.glsl +0 -59
  717. data/samples/processing_app/topics/shaders/data/tex1.jpg +0 -0
  718. data/samples/processing_app/topics/shaders/deform.rb +0 -28
  719. data/samples/processing_app/topics/shaders/edge_detect.rb +0 -28
  720. data/samples/processing_app/topics/shaders/glossy_fish_eye.rb +0 -57
  721. data/samples/processing_app/topics/shaders/glsl_heightmap_noise.rb +0 -125
  722. data/samples/processing_app/topics/shaders/image_mask.rb +0 -31
  723. data/samples/processing_app/topics/shaders/landscape.rb +0 -32
  724. data/samples/processing_app/topics/shaders/monjori.rb +0 -28
  725. data/samples/processing_app/topics/shaders/nebula.rb +0 -18
  726. data/samples/processing_app/topics/shaders/sep_blur.rb +0 -64
  727. data/samples/processing_app/topics/shaders/toon_shading.rb +0 -43
  728. data/samples/processing_app/topics/simulate/README +0 -1
  729. data/samples/processing_app/topics/simulate/chain.rb +0 -80
  730. data/samples/processing_app/topics/simulate/data/java_args.txt +0 -2
  731. data/samples/processing_app/topics/simulate/data/texture.gif +0 -0
  732. data/samples/processing_app/topics/simulate/data/texture.png +0 -0
  733. data/samples/processing_app/topics/simulate/flocking.rb +0 -32
  734. data/samples/processing_app/topics/simulate/library/flock/flock.rb +0 -203
  735. data/samples/processing_app/topics/simulate/multiple_particle_systems.rb +0 -133
  736. data/samples/processing_app/topics/simulate/simple_particle_system.rb +0 -78
  737. data/samples/processing_app/topics/simulate/smoke_particle_system.rb +0 -125
  738. data/samples/processing_app/topics/simulate/spring.rb +0 -80
  739. data/samples/processing_app/topics/simulate/springs.rb +0 -120
  740. data/samples/processing_app/topics/vectors/acceleration_with_vectors.rb +0 -78
  741. data/samples/processing_app/topics/vectors/bouncing_ball.rb +0 -50
  742. data/samples/processing_app/topics/vectors/vector_math.rb +0 -39
@@ -1,32 +0,0 @@
1
- #
2
- # Elevated
3
- # https://www.shadertoy.com/view/MdX3Rr by inigo quilez
4
- # Created by inigo quilez - iq/2013
5
- # License Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
6
- # Processing port by Raphaël de Courville.
7
- #
8
-
9
- attr_reader :landscape
10
-
11
- java_alias :background_int, :background, [Java::int]
12
-
13
- def setup
14
- size(640, 360, P2D)
15
- no_stroke
16
-
17
- # The code of this shader shows how to integrate shaders from shadertoy
18
- # into Processing with minimal changes.
19
- @landscape = load_shader('landscape.glsl')
20
- landscape.set('resolution', width.to_f, height.to_f)
21
- end
22
-
23
- def draw
24
- background_int 0
25
-
26
- landscape.set('time', (millis/1000.0).to_f)
27
- shader(landscape)
28
- rect(0, 0, width, height)
29
-
30
- frame.set_title "frame: #{frame_count} - fps: #{format('%0.2f', frame_rate)}"
31
- end
32
-
@@ -1,28 +0,0 @@
1
- ##
2
- # Monjori.
3
- #
4
- # GLSL version of the 1k intro Monjori from the demoscene
5
- # (http://www.pouet.net/prod.php?which=52761)
6
- # Ported from the webGL version available in ShaderToy:
7
- # http://www.iquilezles.org/apps/shadertoy/
8
- # (Look for Monjori under the Plane Deformations Presets)
9
-
10
-
11
- attr_reader :monjori
12
-
13
- def setup
14
- size(640, 360, P2D)
15
- no_stroke
16
- @monjori = load_shader('monjori.glsl')
17
- monjori.set('resolution', width.to_f, height.to_f)
18
- end
19
-
20
- def draw
21
- monjori.set('time', millis / 1000.0)
22
- shader(monjori)
23
- # This kind of effects are entirely implemented in the
24
- # fragment shader, they only need a quad covering the
25
- # entire view area so every pixel is pushed through the
26
- # shader.
27
- rect(0, 0, width, height)
28
- end
@@ -1,18 +0,0 @@
1
- attr_reader :nebula
2
-
3
- def setup
4
- size(512, 384, P2D)
5
- @nebula = load_shader('nebula.glsl')
6
- nebula.set('resolution', width.to_f, height.to_f)
7
- end
8
-
9
- def draw
10
- nebula.set('time', millis / 1000.0)
11
- shader(nebula)
12
- # The rect is needed to make the fragment shader go through every pixel of
13
- # the screen, but is not used for anything else since the rendering is entirely
14
- # generated by the shader.
15
- no_stroke
16
- fill(0)
17
- rect(0, 0, width, height)
18
- end
@@ -1,64 +0,0 @@
1
- #
2
- # Separate Blur Shader
3
- #
4
- # This blur shader works by applying two successive passes, one horizontal
5
- # and the other vertical.
6
- #
7
- #
8
-
9
- attr_reader :blur, :src, :pass1, :pass2
10
-
11
- def setup
12
- size(640, 360, P2D)
13
- @blur = load_shader('sep_blur.glsl')
14
- blur.set('blurSize', 9)
15
- blur.set('sigma', 5.0)
16
- @src = create_graphics(width, height, P2D)
17
- @pass1 = create_graphics(width, height, P2D)
18
- pass1.no_smooth
19
- @pass2 = create_graphics(width, height, P2D)
20
- pass2.no_smooth
21
- end
22
-
23
- def draw
24
- src.begin_draw
25
- src.background(0)
26
- src.fill(255)
27
- src.ellipse(width/2, height/2, 150, 150)
28
- src.end_draw
29
-
30
- # Applying the blur shader along the vertical direction
31
- blur.set('horizontalPass', 0)
32
- pass1.begin_draw
33
- pass1.shader(blur)
34
- pass1.image(src, 0, 0)
35
- pass1.end_draw
36
-
37
- # Applying the blur shader along the horizontal direction
38
- blur.set('horizontalPass', 1)
39
- pass2.begin_draw
40
- pass2.shader(blur)
41
- pass2.image(pass1, 0, 0)
42
- pass2.end_draw
43
- image(pass2, 0, 0)
44
- end
45
-
46
- def key_pressed
47
- case(key)
48
- when '9'
49
- blur.set('blurSize', 9)
50
- blur.set('sigma', 5.0)
51
- when '7'
52
- blur.set('blurSize', 7)
53
- blur.set('sigma', 3.0)
54
- when '5'
55
- blur.set('blurSize', 5)
56
- blur.set('sigma', 2.0)
57
- when '3'
58
- blur.set('blurSize', 5)
59
- blur.set('sigma', 1.0)
60
- else
61
- blur.set('blurSize', 9)
62
- blur.set('sigma', 5.0)
63
- end
64
- end
@@ -1,43 +0,0 @@
1
- #
2
- # Toon Shading.
3
- #
4
- # Example showing the use of a custom lighting shader in order
5
- # to apply a 'toon' effect on the scene. Based on the glsl tutorial
6
- # from lighthouse 3D:
7
- # http://www.lighthouse3d.com/tutorials/glsl-tutorial/toon-shader-version-ii/
8
- #
9
-
10
- attr_reader :toon, :shader_enabled
11
-
12
- def setup
13
- size(640, 360, P3D)
14
- @shader_enabled = true
15
- no_stroke
16
- fill(204)
17
- @toon = load_shader('ToonFrag.glsl', 'ToonVert.glsl')
18
- end
19
-
20
- def draw
21
- if (shader_enabled == true)
22
- shader(toon)
23
- end
24
-
25
- no_stroke
26
- background(0)
27
- dir_y = (mouse_y / height.to_f - 0.5) * 2
28
- dir_x = (mouse_x / width.to_f - 0.5) * 2
29
- directional_light(204, 204, 204, -dir_x, -dir_y, -1)
30
- translate(width/2, height/2)
31
- sphere(120)
32
- end
33
-
34
- def mouse_pressed
35
- if (shader_enabled)
36
- @shader_enabled = false
37
- reset_shader
38
-
39
- else
40
- @shader_enabled = true
41
- end
42
- end
43
-
@@ -1 +0,0 @@
1
- Some sketches in this folder may ned to be run with the --nojruby flag, eg smok_particle_system.rb.
@@ -1,80 +0,0 @@
1
- #
2
- # Ported from http://processing.org/learning/topics/chain.html
3
- #
4
- # One mass is attached to the mouse position and the other is attached the position of the other mass.
5
- # The gravity in the environment pulls down on both.
6
- #
7
- load_libraries :control_panel
8
-
9
- attr_reader :gravity, :panel
10
-
11
- def setup
12
- size 640, 340
13
- fill 0
14
-
15
- # Control panel for changing gravity
16
- control_panel do |c|
17
- c.slider :gravity, 0..30, 6
18
- @panel = c
19
- end
20
-
21
- @mass = 2.0
22
- @s1 = Spring2d.new(width/2, height/2, @mass, gravity)
23
- @s2 = Spring2d.new(width/2, height/2, @mass, gravity)
24
-
25
-
26
- end
27
-
28
- def draw
29
- panel.set_visible(true) if self.visible
30
- background 204
31
- @s1.update(mouse_x, mouse_y, gravity)
32
- display(@s1, mouse_x, mouse_y)
33
-
34
- @s2.update(@s1.x, @s1.y, gravity)
35
- display(@s2, @s1.x, @s1.y)
36
- end
37
-
38
- def display(spring, nx, ny)
39
- no_stroke
40
- ellipse(spring.x, spring.y, spring.diameter, spring.diameter)
41
- stroke 255
42
- line(spring.x, spring.y, nx, ny)
43
- end
44
-
45
-
46
-
47
- class Spring2d
48
- include Processing::Proxy
49
-
50
- attr_reader :x, :y, :gravity
51
-
52
- def initialize(xpos, ypos, mass, gravity)
53
- @x = xpos # The x-coordinate
54
- @y = ypos # The y-coordinate
55
- @gravity = gravity
56
- @mass = mass
57
- @vx, @vy = 0, 0 # The x- and y-axis velocities
58
- @radius = 20
59
- @stiffness = 0.2
60
- @damping = 0.7
61
- end
62
-
63
- def update(target_x, target_y, gravity)
64
- force_x = (target_x - self.x) * @stiffness
65
- ax = force_x / @mass
66
- @vx = @damping * (@vx + ax)
67
- @x += @vx
68
- @gravity = gravity
69
- force_y = (target_y - self.y) * @stiffness
70
- force_y += gravity
71
- ay = force_y / @mass
72
- @vy = @damping * (@vy + ay)
73
- @y += @vy
74
- end
75
-
76
- def diameter
77
- @radius * 2
78
- end
79
-
80
- end
@@ -1,2 +0,0 @@
1
- -XX:+OptimizeStringConcat -XX:CompileCommand=dontinline,org.jruby.runtime.invokedynamic.InvokeDynamicSupport::invocationFallback
2
-
@@ -1,32 +0,0 @@
1
- #
2
- # Flocking
3
- # by Daniel Shiffman.
4
- #
5
- # An implementation of Craig Reynold's Boids program to simulate
6
- # the flocking behavior of birds. Each boid steers itself based on
7
- # rules of avoidance, alignment, and coherence.
8
- #
9
- # Click the mouse to add a new boid.
10
- #
11
- load_libraries :flock, :vecmath
12
-
13
- attr_reader :flock
14
-
15
- def setup
16
- size(640, 360)
17
- @flock = Flock.new
18
- # Add an initial set of boids into the system
19
- 150.times do
20
- flock << Boid.new(width / 2, height / 2)
21
- end
22
- end
23
-
24
- def draw
25
- background(50)
26
- flock.run
27
- end
28
-
29
- # Add a new boid into the System
30
- def mouse_pressed
31
- flock << Boid.new(mouse_x, mouse_y)
32
- end
@@ -1,203 +0,0 @@
1
- # The Flock (a list of Boid objects)
2
- require 'forwardable'
3
-
4
- class Flock
5
- include Enumerable
6
- extend Forwardable
7
- def_delegators(:@boids, :<<, :each)
8
-
9
- attr_reader :boids
10
-
11
- def initialize
12
- @boids = []
13
- end
14
-
15
- def run
16
- each do |bird|
17
- bird.run(self) # Passing the entire list of boids to each boid individually
18
- end
19
- end
20
- end
21
-
22
- # The Boid class
23
-
24
- class Boid
25
- include Processing::Proxy
26
-
27
- MAXSPEED = 2
28
- MAXFORCE = 0.03
29
-
30
- attr_reader :width, :height
31
- attr_reader :location, :velocity, :acceleration, :sz
32
-
33
- def initialize(x, y)
34
- @width, @height = $app.width, $app.height
35
- @acceleration = Vec2D.new(0, 0)
36
- @velocity = Vec2D.new(rand(-1.0..1), rand(-1.0..1))
37
- @location = Vec2D.new(x, y)
38
- @sz = 4.0
39
- end
40
-
41
- def run(boids)
42
- flock(boids)
43
- update
44
- borders
45
- render
46
- end
47
-
48
- def apply_force(force)
49
- # We could add mass here if we want A = F / M
50
- @acceleration += force
51
- end
52
-
53
- # We accumulate a new acceleration each time based on three rules
54
- def flock boids
55
- sep = separate(boids) # Separation
56
- ali = align(boids) # Alignment
57
- coh = cohesion(boids) # Cohesion
58
- # Arbitrarily weight these forces
59
- sep *= 1.5
60
- ali *= 1.0
61
- coh *= 1.0
62
- # Add the force vectors to acceleration
63
- apply_force(sep)
64
- apply_force(ali)
65
- apply_force(coh)
66
- end
67
-
68
- # Method to update location
69
- def update
70
- # Update velocity
71
- @velocity += acceleration
72
- # Limit speed
73
- velocity.set_mag(MAXSPEED) {velocity.mag > MAXSPEED}
74
- @location += velocity
75
- # Reset accelertion to 0 each cycle
76
- @acceleration *= 0
77
- end
78
-
79
- # A method that calculates and applies a steering force towards a target
80
- # STEER = DESIRED MINUS VELOCITY
81
- def seek(target)
82
- desired = target - location # A vector pointing from the location to the target
83
- # Normalize desired and scale to maximum speed
84
- desired.normalize!
85
- desired *= MAXSPEED
86
- # Steering = Desired minus Velocity
87
- steer = desired - velocity
88
- steer.set_mag(MAXFORCE) {steer.mag > MAXFORCE} # Limit to maximum steering force
89
- steer
90
- end
91
-
92
- def render
93
- # Draw a triangle rotated in the direction of velocity
94
- theta = velocity.heading + 90.radians
95
- fill(200,100)
96
- stroke(255)
97
- push_matrix
98
- translate(location.x,location.y)
99
- rotate(theta)
100
- begin_shape(TRIANGLES)
101
- vertex(0, -sz)
102
- vertex(-sz * 0.5, sz)
103
- vertex(sz * 0.5, sz)
104
- end_shape
105
- pop_matrix
106
- end
107
-
108
- # Wraparound
109
- def borders
110
- if (location.x < -sz * 0.5)
111
- location.x = width + sz * 0.5
112
- end
113
- if (location.y < -sz * 0.5)
114
- location.y = height + sz * 0.5
115
- end
116
- if (location.x > width + sz * 0.5)
117
- location.x = -sz
118
- end
119
- if (location.y > height + sz * 0.5)
120
- location.y = -sz * 0.5
121
- end
122
- end
123
-
124
- # Separation
125
- # Method checks for nearby boids and steers away
126
- def separate boids
127
- desiredseparation = 25.0
128
- steer = Vec2D.new
129
- count = 0
130
- # For every boid in the system, check if it's too close
131
- boids.each do |other|
132
- d = location.dist(other.location)
133
- # If the distance is greater than 0 and less than an arbitrary amount (0 when you are yourself)
134
- if ((d > 0) && (d < desiredseparation))
135
- # Calculate vector pointing away from neighbor
136
- diff = location - other.location
137
- diff.normalize!
138
- diff /= d # Weight by distance
139
- steer += diff
140
- count += 1 # Keep track of how many
141
- end
142
- end
143
- # Average -- divide by how many
144
- if (count > 0)
145
- steer /= count.to_f
146
- end
147
-
148
- # As long as the vector is greater than 0
149
- if (steer.mag > 0)
150
- # Implement Reynolds: Steering = Desired - Velocity
151
- steer.normalize!
152
- steer *= MAXSPEED
153
- steer -= velocity
154
- steer.set_mag(MAXFORCE) {steer.mag > MAXFORCE}
155
- end
156
- return steer
157
- end
158
-
159
- # Alignment
160
- # For every nearby boid in the system, calculate the average velocity
161
- def align boids
162
- neighbordist = 50
163
- sum = Vec2D.new(0, 0)
164
- count = 0
165
- boids.each do |other|
166
- d = location.dist(other.location)
167
- if ((d > 0) && (d < neighbordist))
168
- sum += other.velocity
169
- count += 1
170
- end
171
- end
172
- if (count > 0)
173
- sum /= (count.to_f)
174
- sum.normalize!
175
- sum *= MAXSPEED
176
- steer = sum - velocity
177
- steer.set_mag(MAXFORCE) {steer.mag > MAXFORCE}
178
- return steer
179
- else
180
- return Vec2D.new
181
- end
182
- end
183
-
184
- # Cohesion
185
- # For the average location (i.e. center) of all nearby boids, calculate steering vector towards that location
186
- def cohesion boids
187
- neighbordist = 50
188
- sum = Vec2D.new # Start with empty vector to accumulate all locations
189
- count = 0
190
- boids.each do |other|
191
- d = location.dist(other.location)
192
- if ((d > 0) && (d < neighbordist))
193
- sum += other.location # Add location
194
- count += 1
195
- end
196
- end
197
- sum /= count unless (count == 0) # avoid div by zero
198
- return (count > 0)? seek(sum) : Vec2D.new
199
- end
200
- end
201
-
202
-
203
-