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.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.travis.yml +6 -0
- data/.yardopts +5 -0
- data/CHANGELOG +81 -0
- data/CONTRIBUTING.md +33 -0
- data/Gemfile +6 -0
- data/{LICENSE → LICENSE.md} +6 -4
- data/README.md +114 -0
- data/Rakefile +37 -0
- data/bin/install_jruby_complete +13 -0
- data/lib/ruby-processing.rb +3 -10
- data/lib/ruby-processing/app.rb +92 -137
- data/lib/ruby-processing/config.rb +14 -3
- data/lib/ruby-processing/exporters/application_exporter.rb +9 -5
- data/lib/ruby-processing/exporters/base_exporter.rb +3 -3
- data/lib/ruby-processing/exporters/creator.rb +4 -4
- data/lib/ruby-processing/exporters/exporters.rb +7 -0
- data/lib/ruby-processing/helper_methods.rb +18 -7
- data/lib/ruby-processing/library_loader.rb +17 -16
- data/lib/ruby-processing/runner.rb +38 -34
- data/lib/ruby-processing/runners/base.rb +1 -13
- data/lib/ruby-processing/runners/run.rb +2 -1
- data/lib/ruby-processing/runners/watch.rb +1 -1
- data/lib/ruby-processing/version.rb +3 -0
- data/lib/templates/application/Contents/Info.plist.erb +2 -2
- data/lib/templates/application/lib/args.txt.erb +1 -1
- data/lib/templates/application/run.erb +2 -1
- data/lib/templates/create/blank_sketch.rb.erb +4 -12
- data/lib/templates/create/p3d_sketch.rb.erb +7 -0
- data/library/boids/boids.rb +76 -58
- data/library/control_panel/control_panel.rb +21 -18
- data/library/file_chooser/file_chooser.rb +90 -0
- data/library/vecmath/vecmath.rb +323 -0
- data/ruby-processing.gemspec +54 -0
- data/samples/contributed/animator.rb +9 -4
- data/samples/contributed/bezier_playground.rb +178 -184
- data/samples/contributed/circle_collision.rb +164 -171
- data/samples/contributed/drawolver.rb +111 -162
- data/samples/contributed/empathy.rb +14 -12
- data/samples/contributed/fern.rb +1 -1
- data/samples/contributed/fibonacci_sphere.rb +125 -0
- data/samples/contributed/flight_patterns.rb +7 -14
- data/samples/contributed/full_screen.rb +4 -6
- data/samples/contributed/grapher.rb +35 -0
- data/samples/contributed/gravity.rb +22 -24
- data/samples/contributed/jwishy.rb +75 -63
- data/samples/contributed/mandelbrot.rb +82 -0
- data/samples/contributed/orbit.rb +5 -4
- data/samples/contributed/pong.rb +152 -150
- data/samples/contributed/quadraticvertex.rb +98 -0
- data/samples/contributed/re_sample.rb +27 -0
- data/samples/contributed/simple_buffer.rb +38 -43
- data/samples/contributed/tree.rb +63 -70
- data/samples/external_library/java_processing/README +3 -0
- data/samples/external_library/java_processing/fisica/README +1 -0
- data/samples/external_library/java_processing/fisica/bubbles.rb +80 -0
- data/samples/external_library/java_processing/fisica/joints.rb +112 -0
- data/samples/external_library/java_processing/fisica/polygons.rb +79 -0
- data/samples/external_library/java_processing/fisica/raycast.rb +61 -0
- data/samples/external_library/java_processing/generative_design/mesh_example.rb +25 -0
- data/samples/external_library/java_processing/generative_design/node_spring_attractor.rb +83 -0
- data/samples/external_library/java_processing/generative_design/sub_class_example.rb +44 -0
- data/samples/external_library/java_processing/geomerative/data/FreeSans.ttf +0 -0
- data/samples/external_library/java_processing/geomerative/data/Toucan.svg +43 -0
- data/samples/external_library/java_processing/geomerative/hello_bot_ignore_styles.rb +38 -0
- data/samples/external_library/java_processing/geomerative/hello_world_rotate_firstletter.rb +43 -0
- data/samples/external_library/java_processing/geomerative/hola_mundo.rb +37 -0
- data/samples/external_library/java_processing/grafica/data/OktoberfestVSGermanElections.csv +118 -0
- data/samples/external_library/java_processing/grafica/default_plot.rb +30 -0
- data/samples/external_library/java_processing/grafica/multiple_panels.rb +117 -0
- data/samples/external_library/java_processing/grafica/oktoberfest_example.rb +83 -0
- data/samples/external_library/java_processing/hemesh/data/java_args.txt +2 -0
- data/samples/external_library/java_processing/hemesh/library/vbo/mesh_to_vbo.rb +43 -0
- data/samples/external_library/java_processing/hemesh/twin_iso.rb +71 -0
- data/samples/external_library/java_processing/pbox2d/bumpy_surface_noise.rb +57 -0
- data/samples/external_library/java_processing/pbox2d/contact_test.rb +23 -0
- data/samples/external_library/java_processing/pbox2d/data/java_args.txt +2 -0
- data/samples/external_library/java_processing/pbox2d/library/custom_shape/custom_shape.rb +158 -0
- data/samples/external_library/java_processing/pbox2d/library/particle_system/particle_system.rb +212 -0
- data/samples/external_library/java_processing/pbox2d/library/surface/surface.rb +154 -0
- data/samples/external_library/java_processing/pbox2d/liquidy.rb +58 -0
- data/samples/external_library/java_processing/pbox2d/polygons.rb +58 -0
- data/samples/{peasy_cam → external_library/java_processing/peasy_cam}/hello_peasy.rb +4 -4
- data/samples/external_library/java_processing/peasy_cam/hilbert_fractal.rb +34 -0
- data/samples/{peasy_cam → external_library/java_processing/peasy_cam}/library/hilbert/hilbert.rb +1 -1
- data/samples/external_library/java_processing/proscene/cad_camera.rb +57 -0
- data/samples/external_library/java_processing/proscene/camera_customization.rb +114 -0
- data/samples/external_library/java_processing/proscene/data/ti_yong.png +0 -0
- data/samples/external_library/java_processing/toxiclibs/data/ti_yong.png +0 -0
- data/samples/external_library/java_processing/toxiclibs/gray_scott_image.rb +79 -0
- data/samples/external_library/java_processing/toxiclibs/gray_scott_tone_map.rb +78 -0
- data/samples/external_library/java_processing/toxiclibs/implicit.rb +143 -0
- data/samples/external_library/java_processing/toxiclibs/library/vbo/mesh_to_vbo.rb +52 -0
- data/samples/external_library/java_processing/toxiclibs/model_align.rb +55 -0
- data/samples/external_library/ruby_gem/README +12 -0
- data/samples/external_library/ruby_gem/data/README.txt +1 -0
- data/samples/external_library/ruby_gem/data/java_args.txt +2 -0
- data/samples/external_library/ruby_gem/game_of_life.rb +127 -0
- data/samples/external_library/ruby_gem/mdarray_test.rb +28 -0
- data/samples/processing_app/basics/arrays/array.rb +23 -29
- data/samples/processing_app/basics/arrays/array_2d.rb +22 -28
- data/samples/processing_app/basics/arrays/array_objects.rb +50 -55
- data/samples/processing_app/basics/camera/move_eye.rb +24 -0
- data/samples/processing_app/{3D → basics}/camera/perspective.rb +0 -0
- data/samples/processing_app/basics/color/brightness.rb +15 -21
- data/samples/processing_app/basics/color/color_wheel.rb +72 -79
- data/samples/processing_app/basics/color/creating.rb +35 -24
- data/samples/processing_app/basics/color/hue.rb +16 -22
- data/samples/processing_app/basics/color/linear_gradient.rb +35 -40
- data/samples/processing_app/basics/color/radial_gradient.rb +26 -34
- data/samples/processing_app/basics/color/reading/reading.rb +2 -7
- data/samples/processing_app/basics/color/relativity.rb +19 -32
- data/samples/processing_app/basics/color/saturation.rb +15 -26
- data/samples/processing_app/basics/color/wave_gradient.rb +25 -36
- data/samples/processing_app/basics/control/conditionals1.rb +20 -25
- data/samples/processing_app/basics/control/conditionals2.rb +27 -32
- data/samples/processing_app/basics/control/embedded_iteration.rb +25 -33
- data/samples/processing_app/basics/control/iteration.rb +43 -54
- data/samples/processing_app/basics/control/logical_operators.rb +45 -48
- data/samples/processing_app/basics/data/characters_strings.rb +50 -0
- data/samples/processing_app/basics/data/datatype_conversion.rb +28 -32
- data/samples/processing_app/basics/data/integers_floats.rb +18 -24
- data/samples/processing_app/basics/data/true_false.rb +19 -25
- data/samples/processing_app/basics/data/variable_scope.rb +51 -57
- data/samples/processing_app/basics/data/variables.rb +27 -32
- data/samples/processing_app/basics/form/bezier.rb +11 -14
- data/samples/processing_app/basics/form/bezier_ellipse.rb +79 -90
- data/samples/processing_app/basics/form/brick_tower.rb +92 -0
- data/samples/processing_app/basics/form/cubic_grid.rb +39 -0
- data/samples/processing_app/{3D → basics}/form/icosahedra/icosahedra.rb +32 -36
- data/samples/processing_app/{3D → basics}/form/icosahedra/icosahedron.rb +1 -1
- data/samples/processing_app/{3D → basics}/form/icosahedra/shape_3D.rb +0 -0
- data/samples/processing_app/basics/form/pie_chart.rb +17 -21
- data/samples/processing_app/basics/form/points_lines.rb +11 -16
- data/samples/processing_app/{3D → basics}/form/primitives.rb +11 -25
- data/samples/processing_app/basics/form/regular_polygon.rb +46 -0
- data/samples/processing_app/basics/form/rgb_cube.rb +68 -0
- data/samples/processing_app/basics/form/shape_primitives.rb +15 -17
- data/samples/processing_app/basics/form/shape_transform.rb +88 -0
- data/samples/processing_app/basics/form/star.rb +48 -0
- data/samples/processing_app/basics/form/toroid.rb +127 -0
- data/samples/processing_app/basics/form/triangle_strip.rb +29 -33
- data/samples/processing_app/basics/form/vertices.rb +36 -40
- data/samples/processing_app/basics/image/alphamask.rb +10 -16
- data/samples/processing_app/basics/image/background_image.rb +16 -22
- data/samples/processing_app/basics/image/create_image.rb +10 -16
- data/samples/processing_app/{3D → basics}/image/data/ystone08.jpg +0 -0
- data/samples/processing_app/basics/image/extrusion.rb +46 -0
- data/samples/processing_app/basics/image/load_display_image.rb +12 -19
- data/samples/processing_app/basics/image/pointillism.rb +13 -19
- data/samples/processing_app/basics/image/request_image.rb +41 -50
- data/samples/processing_app/basics/image/sprite.rb +19 -25
- data/samples/processing_app/basics/image/transparency.rb +14 -20
- data/samples/processing_app/basics/image/zoom.rb +59 -0
- data/samples/processing_app/basics/input/clock.rb +32 -38
- data/samples/processing_app/basics/input/constrain.rb +25 -31
- data/samples/processing_app/basics/input/easing.rb +18 -20
- data/samples/processing_app/basics/input/keyboard.rb +16 -22
- data/samples/processing_app/basics/input/keyboard_functions.rb +49 -68
- data/samples/processing_app/basics/input/milliseconds.rb +11 -16
- data/samples/processing_app/basics/input/mouse_1d.rb +19 -26
- data/samples/processing_app/basics/input/mouse_2d.rb +14 -20
- data/samples/processing_app/basics/input/mouse_functions.rb +56 -61
- data/samples/processing_app/basics/input/mouse_press.rb +9 -15
- data/samples/processing_app/basics/input/mouse_signals.rb +29 -34
- data/samples/processing_app/basics/input/storing_input.rb +28 -29
- data/samples/processing_app/basics/lights/directional.rb +37 -0
- data/samples/processing_app/basics/lights/lights1.rb +35 -0
- data/samples/processing_app/basics/lights/lights2.rb +38 -0
- data/samples/processing_app/basics/lights/reflection.rb +35 -0
- data/samples/processing_app/basics/lights/spot.rb +36 -0
- data/samples/processing_app/basics/math/additive_wave.rb +51 -53
- data/samples/processing_app/basics/math/arctangent.rb +34 -44
- data/samples/processing_app/basics/math/distance1.rb +44 -50
- data/samples/processing_app/basics/math/distance2.rb +14 -30
- data/samples/processing_app/basics/math/double_random.rb +23 -30
- data/samples/processing_app/basics/math/graphing_2_d_equation.rb +30 -44
- data/samples/processing_app/basics/math/increment_decrement.rb +37 -42
- data/samples/processing_app/basics/math/interpolate.rb +34 -0
- data/samples/processing_app/basics/math/modulo.rb +25 -29
- data/samples/processing_app/basics/math/noise_1_d.rb +14 -30
- data/samples/processing_app/basics/math/noise_2_d.rb +22 -39
- data/samples/processing_app/basics/math/noise_3_d.rb +24 -44
- data/samples/processing_app/basics/math/noise_wave.rb +35 -55
- data/samples/processing_app/basics/math/operator_precedence.rb +24 -45
- data/samples/processing_app/basics/math/polar_to_cartesian.rb +22 -35
- data/samples/processing_app/basics/math/random.rb +13 -27
- data/samples/processing_app/basics/math/random_gaussian.rb +23 -0
- data/samples/processing_app/basics/math/sine.rb +27 -41
- data/samples/processing_app/basics/math/sine_cosine.rb +37 -49
- data/samples/processing_app/basics/math/sine_wave.rb +33 -52
- data/samples/processing_app/basics/objects/composite_objects.rb +94 -120
- data/samples/processing_app/basics/objects/inheritance.rb +64 -86
- data/samples/processing_app/basics/objects/multiple_constructors.rb +25 -38
- data/samples/processing_app/basics/objects/objects.rb +42 -57
- data/samples/processing_app/basics/shape/data/rocket.mtl +8 -0
- data/samples/processing_app/basics/shape/data/rocket.obj +1688 -0
- data/samples/processing_app/basics/shape/data/rocket.png +0 -0
- data/samples/processing_app/basics/shape/disable_style.rb +21 -25
- data/samples/processing_app/basics/shape/get_child.rb +27 -30
- data/samples/processing_app/basics/shape/load_display_obj.rb +25 -0
- data/samples/processing_app/basics/shape/load_display_shape.rb +10 -23
- data/samples/processing_app/basics/shape/load_display_svg.rb +22 -0
- data/samples/processing_app/basics/shape/scale_shape.rb +13 -23
- data/samples/processing_app/basics/structure/coordinates.rb +12 -25
- data/samples/processing_app/basics/structure/create_graphics.rb +18 -28
- data/samples/processing_app/basics/structure/functions.rb +19 -31
- data/samples/processing_app/basics/structure/loop.rb +21 -35
- data/samples/processing_app/basics/structure/noloop.rb +13 -25
- data/samples/processing_app/basics/structure/recursion1.rb +18 -33
- data/samples/processing_app/basics/structure/recursion2.rb +18 -34
- data/samples/processing_app/basics/structure/redraw.rb +16 -27
- data/samples/processing_app/basics/structure/setup_draw.rb +11 -22
- data/samples/processing_app/basics/structure/statements_comments.rb +7 -13
- data/samples/processing_app/basics/structure/width_height.rb +7 -14
- data/samples/processing_app/{3D → basics}/textures/data/berlin-1.jpg +0 -0
- data/samples/processing_app/basics/textures/texture1.rb +28 -0
- data/samples/processing_app/basics/textures/texture2.rb +33 -0
- data/samples/processing_app/basics/textures/texture3.rb +64 -0
- data/samples/processing_app/basics/textures/texture_cube.rb +86 -0
- data/samples/processing_app/basics/transform/arm.rb +22 -37
- data/samples/processing_app/basics/transform/bird.rb +57 -0
- data/samples/processing_app/basics/transform/birds.rb +38 -0
- data/samples/processing_app/basics/transform/cubes_in_cube.rb +99 -0
- data/samples/processing_app/{3D/transform/birds → basics/transform/library/bird}/bird.rb +0 -0
- data/samples/processing_app/{3D/transform/cubes_in_cube → basics/transform/library/cube}/cube.rb +10 -12
- data/samples/processing_app/basics/transform/rotate.rb +17 -31
- data/samples/processing_app/basics/transform/rotate1.rb +27 -0
- data/samples/processing_app/basics/transform/rotate_push_pop.rb +35 -0
- data/samples/processing_app/basics/transform/rotate_x_y.rb +36 -0
- data/samples/processing_app/basics/transform/scale.rb +19 -35
- data/samples/processing_app/basics/transform/translate.rb +18 -32
- data/samples/processing_app/basics/transform/triangle_flower.rb +38 -55
- data/samples/processing_app/{3D → basics}/typography/data/Univers45.vlw +0 -0
- data/samples/processing_app/{3D → basics}/typography/kinetic_type.rb +1 -5
- data/samples/processing_app/basics/typography/letters.rb +26 -44
- data/samples/processing_app/basics/typography/words.rb +29 -30
- data/samples/processing_app/basics/web/embedded_links.rb +39 -45
- data/samples/processing_app/basics/web/loading_images.rb +6 -16
- data/samples/processing_app/demos/graphics/bezier_patch.rb +227 -0
- data/samples/processing_app/demos/graphics/data/frag.glsl +30 -0
- data/samples/processing_app/demos/graphics/data/java_args.txt +2 -0
- data/samples/processing_app/demos/graphics/data/mercury.jpg +0 -0
- data/samples/processing_app/demos/graphics/data/planet.jpg +0 -0
- data/samples/processing_app/demos/graphics/data/starfield.jpg +0 -0
- data/samples/processing_app/demos/graphics/data/sun.jpg +0 -0
- data/samples/processing_app/demos/graphics/data/vert.glsl +31 -0
- data/samples/processing_app/demos/graphics/low_level_gl.rb +72 -0
- data/samples/processing_app/demos/graphics/planets.rb +51 -0
- data/samples/processing_app/demos/graphics/trefoil.rb +142 -0
- data/samples/processing_app/demos/graphics/wiggling.rb +289 -0
- data/samples/processing_app/demos/performance/cubic_grid_retained.rb +58 -0
- data/samples/processing_app/demos/performance/data/java_args.txt +1 -0
- data/samples/processing_app/demos/performance/esfera.rb +105 -0
- data/samples/processing_app/demos/performance/text_rendering.rb +14 -0
- data/samples/processing_app/demos/tests/no_background_test.rb +10 -0
- data/samples/processing_app/demos/tests/offscreen_test.rb +34 -0
- data/samples/processing_app/demos/tests/redraw_test.rb +14 -0
- data/samples/processing_app/demos/tests/resize_test.rb +10 -0
- data/samples/processing_app/demos/tests/restart_test.rb +22 -0
- data/samples/processing_app/demos/tests/smooth_test.rb +27 -0
- data/samples/processing_app/demos/tests/specs_test.rb +11 -0
- data/samples/processing_app/library/dxf/simple_export.rb +48 -0
- data/samples/processing_app/library/file_chooser/image_viewer.rb +24 -0
- data/samples/processing_app/library/minim/filter_example.rb +65 -0
- data/samples/processing_app/library/minim/frequency_modulation.rb +64 -0
- data/samples/processing_app/library/minim/sequence_sound.rb +59 -0
- data/samples/processing_app/library/minim/synthesize_sound.rb +35 -0
- data/samples/processing_app/library/movie/README +1 -0
- data/samples/processing_app/library/movie/data/transit.mkv +0 -0
- data/samples/processing_app/library/movie/data/transit.mov +0 -0
- data/samples/processing_app/library/movie/loop.rb +24 -0
- data/samples/processing_app/library/movie/pixelate.rb +50 -0
- data/samples/processing_app/library/movie/reverse.rb +47 -0
- data/samples/processing_app/library/movie/scratch.rb +36 -0
- data/samples/processing_app/library/movie/speed.rb +33 -0
- data/samples/processing_app/library/net/HTTPClient.rb +31 -0
- data/samples/processing_app/library/pdf/.gitignore +1 -0
- data/samples/processing_app/library/pdf/complex_3D.rb +160 -0
- data/samples/processing_app/library/pdf/large_page.rb +25 -0
- data/samples/processing_app/library/pdf/many_frames.rb +33 -0
- data/samples/processing_app/library/pdf/many_pages.rb +31 -0
- data/samples/processing_app/library/pdf/many_pdfs.rb +37 -0
- data/samples/processing_app/library/pdf/one_frame.rb +19 -0
- data/samples/processing_app/library/vecmath/README.txt +2 -0
- data/samples/processing_app/library/vecmath/acceleration_with_vectors.rb +75 -0
- data/samples/processing_app/library/vecmath/bouncing_ball.rb +51 -0
- data/samples/processing_app/library/vecmath/circle_collision.rb +174 -0
- data/samples/processing_app/library/vecmath/data/java_args.txt +2 -0
- data/samples/processing_app/library/vecmath/data/sprite.png +0 -0
- data/samples/processing_app/library/vecmath/data/texture.png +0 -0
- data/samples/processing_app/library/vecmath/drawolver.rb +111 -0
- data/samples/processing_app/library/vecmath/flocking.rb +33 -0
- data/samples/processing_app/library/vecmath/hilbert_fractal.rb +65 -0
- data/samples/processing_app/library/vecmath/library/flock/flock.rb +214 -0
- data/samples/processing_app/library/vecmath/library/hilbert/hilbert.rb +84 -0
- data/samples/processing_app/library/vecmath/library/particle/particle_system.rb +106 -0
- data/samples/processing_app/library/vecmath/library/wiggler/wiggler.rb +58 -0
- data/samples/processing_app/library/vecmath/morph.rb +86 -0
- data/samples/processing_app/library/vecmath/multiple_particle_systems.rb +158 -0
- data/samples/processing_app/library/vecmath/particle_system_pshape.rb +38 -0
- data/samples/processing_app/library/vecmath/reflection1.rb +108 -0
- data/samples/processing_app/library/vecmath/retained_menger.rb +150 -0
- data/samples/processing_app/library/vecmath/retained_test.rb +65 -0
- data/samples/processing_app/library/vecmath/retained_test2.rb +65 -0
- data/samples/processing_app/library/vecmath/simple_particle_system.rb +89 -0
- data/samples/processing_app/library/vecmath/smoke_particle_system.rb +138 -0
- data/samples/processing_app/library/vecmath/vector_math.rb +39 -0
- data/samples/processing_app/library/vecmath/wiggle_pshape.rb +22 -0
- data/samples/processing_app/topics/advanced_data/README +1 -0
- data/samples/processing_app/topics/advanced_data/counting_words.rb +79 -0
- data/samples/processing_app/topics/advanced_data/data/Georgia.ttf +0 -0
- data/samples/processing_app/topics/advanced_data/data/Merriweather-Light.ttf +0 -0
- data/samples/processing_app/topics/advanced_data/data/a000 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a001 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a002 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a003 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a004 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a005 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a006 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a007 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a008 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a009 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a010 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a011 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a012 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a013 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a014 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a015 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a016 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a017 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a018 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a019 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a020 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a021 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a022 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a023 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a024 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a025 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a026 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a027 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a028 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a029 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a030 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a031 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a032 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a033 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a034 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a035 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a036 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a037 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a038 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a039 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a040 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a041 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a042 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a043 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a044 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a045 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a046 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a047 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a048 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a049 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a050 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a051 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a052 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a053 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a054 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a055 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a056 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a057 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a058 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a059 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a060 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a061 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a062 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a063 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a064 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a065 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a066 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a067 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a068 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a069 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a070 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a071 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a072 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a073 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a074 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a075 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a076 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a077 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a078 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a079 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a080 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a081 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a082 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a083 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a084 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a085 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a086 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a087 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a088 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a089 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a090 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a091 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a092 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a093 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a094 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a095 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a096 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a097 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a098 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a099 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a100 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a101 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a102 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a103 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a104 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a105 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a106 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a107 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a108 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a109 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a110 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a111 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a112 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a113 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a114 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/a115 copy.jpg +0 -0
- data/samples/processing_app/topics/advanced_data/data/data.csv +5 -0
- data/samples/processing_app/topics/advanced_data/data/data.json +36 -0
- data/samples/processing_app/topics/advanced_data/data/data.xml +38 -0
- data/samples/processing_app/topics/advanced_data/data/data.yml +22 -0
- data/samples/processing_app/topics/advanced_data/data/dracula.txt +16624 -0
- data/samples/processing_app/topics/advanced_data/data/frankenstein.txt +7652 -0
- data/samples/processing_app/topics/advanced_data/data/struct_data.yml +22 -0
- data/samples/processing_app/topics/advanced_data/library/bubble/bubble.rb +45 -0
- data/samples/processing_app/topics/advanced_data/library/word/word.rb +64 -0
- data/samples/processing_app/topics/advanced_data/load_save_XML.rb +114 -0
- data/samples/processing_app/topics/advanced_data/load_save_json.rb +93 -0
- data/samples/processing_app/topics/advanced_data/load_save_struct_yaml.rb +85 -0
- data/samples/processing_app/topics/advanced_data/load_save_table.rb +85 -0
- data/samples/processing_app/topics/advanced_data/load_save_yaml.rb +89 -0
- data/samples/processing_app/topics/advanced_data/regex.rb +47 -0
- data/samples/processing_app/topics/advanced_data/threads.rb +96 -0
- data/samples/processing_app/topics/advanced_data/threads_two.rb +52 -0
- data/samples/processing_app/topics/advanced_data/word_frequency.rb +78 -0
- data/samples/processing_app/topics/advanced_data/yahoo_weather.rb +38 -0
- data/samples/processing_app/topics/animation/README.txt +1 -0
- data/samples/processing_app/topics/animation/animated_sprite.rb +58 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0000.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0001.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0002.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0003.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0004.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0005.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0006.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0007.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0008.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0009.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0010.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0011.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0012.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0013.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0014.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0015.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0016.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0017.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0018.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0019.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0020.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0021.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0022.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0023.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0024.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0025.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0026.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0027.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0028.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0029.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0030.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0031.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0032.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0033.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0034.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0035.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0036.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Shifty_0037.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0000.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0001.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0002.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0003.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0004.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0005.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0006.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0007.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0008.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0009.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0010.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0011.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0012.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0013.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0014.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0015.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0016.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0017.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0018.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0019.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0020.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0021.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0022.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0023.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0024.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0025.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0026.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0027.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0028.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0029.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0030.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0031.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0032.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0033.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0034.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0035.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0036.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0037.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0038.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0039.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0040.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0041.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0042.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0043.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0044.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0045.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0046.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0047.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0048.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0049.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0050.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0051.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0052.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0053.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0054.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0055.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0056.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0057.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0058.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_Teddy_0059.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_anim0000.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_anim0001.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_anim0002.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_anim0003.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_anim0004.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_anim0005.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_anim0006.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_anim0007.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_anim0008.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_anim0009.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_anim0010.gif +0 -0
- data/samples/processing_app/topics/animation/data/PT_anim0011.gif +0 -0
- data/samples/processing_app/topics/animation/sequential.rb +42 -0
- data/samples/processing_app/topics/cellular_automata/game_of_life.rb +125 -0
- data/samples/processing_app/topics/cellular_automata/library/ca/ca.rb +91 -0
- data/samples/processing_app/topics/cellular_automata/library/cell/cell.rb +99 -0
- data/samples/processing_app/topics/cellular_automata/library/simple_cell/simple_cell.rb +46 -0
- data/samples/processing_app/topics/cellular_automata/spore1.rb +94 -0
- data/samples/processing_app/topics/cellular_automata/spore2.rb +101 -0
- data/samples/processing_app/topics/cellular_automata/wolfram.rb +42 -0
- data/samples/processing_app/topics/create_shapes/begin_end_contour.rb +44 -0
- data/samples/processing_app/topics/create_shapes/data/sprite.png +0 -0
- data/samples/processing_app/topics/create_shapes/group_pshape.rb +69 -0
- data/samples/processing_app/topics/create_shapes/library/particle/particle_system.rb +107 -0
- data/samples/processing_app/topics/create_shapes/library/polygon/polygon.rb +35 -0
- data/samples/processing_app/topics/create_shapes/library/star/star.rb +47 -0
- data/samples/processing_app/topics/create_shapes/library/wiggler/wiggler.rb +57 -0
- data/samples/processing_app/topics/create_shapes/particle_system_pshape.rb +38 -0
- data/samples/processing_app/topics/create_shapes/path_pshape.rb +38 -0
- data/samples/processing_app/topics/create_shapes/polygon_pshape_oo3.rb +56 -0
- data/samples/processing_app/topics/create_shapes/polygon_pshape_oop.rb +29 -0
- data/samples/processing_app/topics/create_shapes/polygon_pshape_oop2.rb +52 -0
- data/samples/processing_app/topics/create_shapes/polygon_shape.rb +42 -0
- data/samples/processing_app/topics/create_shapes/primitive_pshape.rb +29 -0
- data/samples/processing_app/topics/create_shapes/wiggle_pshape.rb +22 -0
- data/samples/processing_app/topics/drawing/continuous_lines.rb +17 -0
- data/samples/processing_app/topics/drawing/pattern.rb +30 -0
- data/samples/processing_app/topics/drawing/pulses.rb +33 -0
- data/samples/processing_app/topics/drawing/scribble_plotter.rb +77 -0
- data/samples/processing_app/topics/effects/lens.rb +68 -70
- data/samples/processing_app/topics/file_io/data/positions.txt +206 -0
- data/samples/processing_app/topics/file_io/load_file1.rb +32 -0
- data/samples/processing_app/topics/file_io/save_frames.rb +70 -0
- data/samples/processing_app/topics/file_io/save_one_image.rb +22 -0
- data/samples/processing_app/topics/file_io/tile_images.rb +37 -0
- data/samples/processing_app/topics/gui/button.rb +74 -0
- data/samples/processing_app/topics/gui/data/seedBottom.jpg +0 -0
- data/samples/processing_app/topics/gui/data/seedTop.jpg +0 -0
- data/samples/processing_app/topics/gui/handles.rb +108 -0
- data/samples/processing_app/topics/gui/rollover.rb +63 -0
- data/samples/processing_app/topics/gui/scrollbar.rb +96 -0
- data/samples/processing_app/topics/image_processing/blending.rb +82 -0
- data/samples/processing_app/topics/image_processing/blur.rb +50 -0
- data/samples/processing_app/topics/image_processing/brightness.rb +39 -0
- data/samples/processing_app/topics/image_processing/convolution.rb +72 -0
- data/samples/processing_app/{3D/image → topics/image_processing}/data/eames.jpg +0 -0
- data/samples/processing_app/topics/image_processing/data/frontier.jpg +0 -0
- data/samples/processing_app/topics/image_processing/data/java_args.txt +3 -0
- data/samples/processing_app/topics/image_processing/data/layer1.jpg +0 -0
- data/samples/processing_app/topics/image_processing/data/layer2.jpg +0 -0
- data/samples/processing_app/topics/image_processing/data/moon-wide.jpg +0 -0
- data/samples/processing_app/topics/image_processing/data/moon.jpg +0 -0
- data/samples/processing_app/topics/image_processing/data/sea.jpg +0 -0
- data/samples/processing_app/topics/image_processing/data/ystone08.jpg +0 -0
- data/samples/processing_app/topics/image_processing/edge_detection.rb +47 -0
- data/samples/processing_app/topics/image_processing/explode.rb +35 -0
- data/samples/processing_app/topics/image_processing/extrusion.rb +49 -0
- data/samples/processing_app/topics/image_processing/histogram.rb +43 -0
- data/samples/processing_app/topics/image_processing/linear_image.rb +45 -0
- data/samples/processing_app/topics/image_processing/pixel_array.rb +48 -0
- data/samples/processing_app/topics/image_processing/zoom.rb +66 -0
- data/samples/processing_app/topics/lsystems/chequer.rb +72 -0
- data/samples/processing_app/topics/lsystems/csplant.rb +100 -0
- data/samples/processing_app/topics/lsystems/cstest.rb +20 -0
- data/samples/processing_app/topics/lsystems/data/java_args.txt +3 -0
- data/samples/processing_app/topics/lsystems/david_tour.rb +77 -0
- data/samples/processing_app/topics/lsystems/koch.rb +29 -0
- data/samples/processing_app/topics/lsystems/library/cs_grammar/cs_grammar.rb +88 -0
- data/samples/processing_app/topics/lsystems/library/grammar/grammar.rb +33 -0
- data/samples/processing_app/topics/lsystems/library/koch/koch_fractal.rb +117 -0
- data/samples/processing_app/topics/lsystems/library/stochastic_grammar/stochastic_grammar.rb +58 -0
- data/samples/processing_app/topics/lsystems/mpeano.rb +83 -0
- data/samples/processing_app/topics/lsystems/peano.rb +78 -0
- data/samples/processing_app/topics/lsystems/penrose.rb +123 -0
- data/samples/processing_app/topics/lsystems/penrose_snowflake.rb +93 -0
- data/samples/processing_app/topics/lsystems/pentagonal.rb +103 -0
- data/samples/processing_app/topics/lsystems/snake_kolam.rb +93 -0
- data/samples/processing_app/topics/lsystems/stochastic_test.rb +99 -0
- data/samples/processing_app/topics/lsystems/three_d_tree.rb +108 -0
- data/samples/processing_app/topics/motion/bounce.rb +40 -0
- data/samples/processing_app/topics/motion/bouncy_bubbles.rb +96 -0
- data/samples/processing_app/topics/motion/brownian.rb +40 -0
- data/samples/processing_app/topics/motion/circle_collision.rb +185 -0
- data/samples/processing_app/topics/motion/cubes_in_cube.rb +64 -0
- data/samples/processing_app/topics/motion/data/java_args.txt +3 -0
- data/samples/processing_app/topics/motion/library/cube/cube.rb +128 -0
- data/samples/processing_app/topics/motion/library/ground/ground.rb +42 -0
- data/samples/processing_app/topics/motion/linear.rb +25 -0
- data/samples/processing_app/topics/motion/morph.rb +84 -0
- data/samples/processing_app/topics/motion/moving_on_curves.rb +46 -0
- data/samples/processing_app/topics/motion/puff.rb +78 -0
- data/samples/processing_app/topics/motion/reflection1.rb +107 -0
- data/samples/processing_app/topics/motion/reflection2.rb +122 -0
- data/samples/processing_app/topics/shaders/README +1 -0
- data/samples/processing_app/topics/shaders/blur_filter.rb +25 -0
- data/samples/processing_app/topics/shaders/bw_shader.rb +40 -0
- data/samples/processing_app/topics/shaders/conway.rb +26 -0
- data/samples/processing_app/topics/shaders/data/GlossyFrag.glsl +44 -0
- data/samples/processing_app/topics/shaders/data/GlossyVert.glsl +33 -0
- data/samples/processing_app/topics/shaders/data/Texture01.jpg +0 -0
- data/samples/processing_app/topics/shaders/data/Texture02.jpg +0 -0
- data/samples/processing_app/topics/shaders/data/ToonFrag.glsl +25 -0
- data/samples/processing_app/topics/shaders/data/ToonVert.glsl +31 -0
- data/samples/processing_app/topics/shaders/data/blur.glsl +42 -0
- data/samples/processing_app/topics/shaders/data/bwfrag.glsl +23 -0
- data/samples/processing_app/topics/shaders/data/conway.glsl +57 -0
- data/samples/processing_app/topics/shaders/data/cubemapfrag.glsl +1 -0
- data/samples/processing_app/topics/shaders/data/cubemapvert.glsl +1 -0
- data/samples/processing_app/topics/shaders/data/deform.glsl +31 -0
- data/samples/processing_app/topics/shaders/data/displaceFrag.glsl +8 -0
- data/samples/processing_app/topics/shaders/data/displaceVert.glsl +201 -0
- data/samples/processing_app/topics/shaders/data/edges.glsl +40 -0
- data/samples/processing_app/topics/shaders/data/java_args.txt +2 -0
- data/samples/processing_app/topics/shaders/data/lachoy.jpg +0 -0
- data/samples/processing_app/topics/shaders/data/landscape.glsl +352 -0
- data/samples/processing_app/topics/shaders/data/leaves.jpg +0 -0
- data/samples/processing_app/topics/shaders/data/mask.glsl +19 -0
- data/samples/processing_app/topics/shaders/data/monjori.glsl +30 -0
- data/samples/processing_app/topics/shaders/data/nebula.glsl +111 -0
- data/samples/processing_app/topics/shaders/data/sep_blur.glsl +59 -0
- data/samples/processing_app/topics/shaders/data/tex1.jpg +0 -0
- data/samples/processing_app/topics/shaders/deform.rb +28 -0
- data/samples/processing_app/topics/shaders/dome_projection.rb +143 -0
- data/samples/processing_app/topics/shaders/edge_detect.rb +30 -0
- data/samples/processing_app/topics/shaders/glossy_fish_eye.rb +63 -0
- data/samples/processing_app/topics/shaders/glsl_heightmap_noise.rb +122 -0
- data/samples/processing_app/topics/shaders/image_mask.rb +31 -0
- data/samples/processing_app/topics/shaders/landscape.rb +32 -0
- data/samples/processing_app/topics/shaders/monjori.rb +28 -0
- data/samples/processing_app/topics/shaders/nebula.rb +18 -0
- data/samples/processing_app/topics/shaders/sep_blur.rb +64 -0
- data/samples/processing_app/topics/shaders/toon_shading.rb +43 -0
- data/samples/processing_app/topics/simulate/README +1 -0
- data/samples/processing_app/topics/simulate/chain.rb +34 -38
- data/samples/processing_app/topics/simulate/data/java_args.txt +2 -0
- data/samples/processing_app/topics/simulate/data/texture.gif +0 -0
- data/samples/processing_app/topics/simulate/data/texture.png +0 -0
- data/samples/processing_app/topics/simulate/flocking.rb +32 -0
- data/samples/processing_app/topics/simulate/library/flock/flock.rb +206 -0
- data/samples/processing_app/topics/simulate/multiple_particle_systems.rb +122 -110
- data/samples/processing_app/topics/simulate/simple_particle_system.rb +63 -86
- data/samples/processing_app/topics/simulate/smoke_particle_system.rb +136 -0
- data/samples/processing_app/topics/simulate/spring.rb +65 -69
- data/samples/processing_app/topics/simulate/springs.rb +35 -36
- data/samples/processing_app/topics/vectors/acceleration_with_vectors.rb +77 -0
- data/samples/processing_app/topics/vectors/bouncing_ball.rb +49 -0
- data/samples/processing_app/topics/vectors/vector_math.rb +38 -0
- data/test/README.md +6 -0
- data/test/basic.rb +14 -0
- data/test/draw_ex.rb +12 -0
- data/test/graphics.rb +7 -0
- data/test/p2d.rb +14 -0
- data/test/p3d.rb +14 -0
- data/test/rp5_test.rb +77 -0
- data/test/setup_ex.rb +12 -0
- data/vendors/Rakefile +36 -0
- metadata +718 -231
- data/README +0 -64
- data/lib/core/core.jar +0 -0
- data/lib/core/jruby-complete.jar +0 -0
- data/lib/ruby-processing/exporters/applet_exporter.rb +0 -78
- data/lib/templates/applet/images/built_with.jpg +0 -0
- data/lib/templates/applet/images/ruby.jpg +0 -0
- data/lib/templates/applet/images/top.png +0 -0
- data/lib/templates/applet/index.html.erb +0 -113
- data/lib/templates/applet/library/library.txt +0 -1
- data/lib/templates/create/bare_sketch.rb.erb +0 -7
- data/library/dxf/library/dxf.jar +0 -0
- data/library/dxf/library/export.txt +0 -1
- data/library/javascript/library/export.txt +0 -8
- data/library/javascript/library/javascript.jar +0 -0
- data/library/minim/library/export.txt +0 -1
- data/library/minim/library/jl1.0.jar +0 -0
- data/library/minim/library/jsminim.jar +0 -0
- data/library/minim/library/minim-spi.jar +0 -0
- data/library/minim/library/minim.jar +0 -0
- data/library/minim/library/mp3spi1.9.4.jar +0 -0
- data/library/minim/library/tritonus_aos.jar +0 -0
- data/library/minim/library/tritonus_share.jar +0 -0
- data/library/net/library/export.txt +0 -1
- data/library/net/library/net.jar +0 -0
- data/library/opengl/library/export.txt +0 -10
- data/library/opengl/library/gluegen-rt.jar +0 -0
- data/library/opengl/library/jogl.jar +0 -0
- data/library/opengl/library/linux32/libgluegen-rt.so +0 -0
- data/library/opengl/library/linux32/libjogl.so +0 -0
- data/library/opengl/library/linux32/libjogl_awt.so +0 -0
- data/library/opengl/library/linux32/libjogl_cg.so +0 -0
- data/library/opengl/library/linux64/libgluegen-rt.so +0 -0
- data/library/opengl/library/linux64/libjogl.so +0 -0
- data/library/opengl/library/linux64/libjogl_awt.so +0 -0
- data/library/opengl/library/linux64/libjogl_cg.so +0 -0
- data/library/opengl/library/macosx/libgluegen-rt.jnilib +0 -0
- data/library/opengl/library/macosx/libjogl.jnilib +0 -0
- data/library/opengl/library/macosx/libjogl_awt.jnilib +0 -0
- data/library/opengl/library/macosx/libjogl_cg.jnilib +0 -0
- data/library/opengl/library/opengl.jar +0 -0
- data/library/opengl/library/windows32/gluegen-rt.dll +0 -0
- data/library/opengl/library/windows32/jogl.dll +0 -0
- data/library/opengl/library/windows32/jogl_awt.dll +0 -0
- data/library/opengl/library/windows32/jogl_cg.dll +0 -0
- data/library/opengl/library/windows64/gluegen-rt.dll +0 -0
- data/library/opengl/library/windows64/jogl.dll +0 -0
- data/library/opengl/library/windows64/jogl_awt.dll +0 -0
- data/library/opengl/library/windows64/jogl_cg.dll +0 -0
- data/library/pdf/library/export.txt +0 -1
- data/library/pdf/library/itext.jar +0 -0
- data/library/pdf/library/pdf.jar +0 -0
- data/library/serial/library/RXTXcomm.jar +0 -0
- data/library/serial/library/export.txt +0 -1
- data/library/serial/library/linux32/librxtxSerial.so +0 -0
- data/library/serial/library/linux64/librxtxSerial.so +0 -0
- data/library/serial/library/macosx/librxtxSerial.jnilib +0 -0
- data/library/serial/library/serial.jar +0 -0
- data/library/serial/library/windows32/rxtxSerial.dll +0 -0
- data/library/serial/library/windows64/rxtxSerial.dll +0 -0
- data/library/video/library/export.txt +0 -1
- data/library/video/library/video.jar +0 -0
- data/samples/anar/data/java_args.txt +0 -1
- data/samples/anar/extrusion.rb +0 -49
- data/samples/anar/l_system.rb +0 -86
- data/samples/anar/library/anar/anar.jar +0 -0
- data/samples/anar/many_shapes.rb +0 -98
- data/samples/peasy_cam/data/java_args.txt +0 -1
- data/samples/peasy_cam/hilbert_fractal.rb +0 -40
- data/samples/peasy_cam/library/PeasyCam/PeasyCam.jar +0 -0
- data/samples/processing_app/3D/camera/move_eye.rb +0 -29
- data/samples/processing_app/3D/camera/ortho_vs_perspective.rb +0 -38
- data/samples/processing_app/3D/form/brick_tower.rb +0 -86
- data/samples/processing_app/3D/form/cubic_grid.rb +0 -51
- data/samples/processing_app/3D/form/rgb_cube.rb +0 -88
- data/samples/processing_app/3D/form/shape_transform.rb +0 -94
- data/samples/processing_app/3D/form/toroid.rb +0 -130
- data/samples/processing_app/3D/form/vertices.rb +0 -81
- data/samples/processing_app/3D/image/explode.rb +0 -56
- data/samples/processing_app/3D/image/extrusion.rb +0 -49
- data/samples/processing_app/3D/image/zoom.rb +0 -83
- data/samples/processing_app/3D/lights/directional.rb +0 -41
- data/samples/processing_app/3D/lights/lights1.rb +0 -39
- data/samples/processing_app/3D/lights/lights2.rb +0 -42
- data/samples/processing_app/3D/lights/reflection.rb +0 -38
- data/samples/processing_app/3D/lights/spot.rb +0 -39
- data/samples/processing_app/3D/textures/texture1.rb +0 -41
- data/samples/processing_app/3D/textures/texture2.rb +0 -38
- data/samples/processing_app/3D/textures/texture3.rb +0 -68
- data/samples/processing_app/3D/textures/texture_cube.rb +0 -106
- data/samples/processing_app/3D/transform/bird.rb +0 -61
- data/samples/processing_app/3D/transform/birds/birds.rb +0 -48
- data/samples/processing_app/3D/transform/cubes_in_cube/cubes_in_cube.rb +0 -102
- data/samples/processing_app/3D/transform/push_pop_cubes.rb +0 -152
- data/samples/processing_app/3D/transform/rotate1.rb +0 -43
- data/samples/processing_app/3D/transform/rotate2.rb +0 -45
- data/samples/processing_app/3D/typography/data/Univers66.vlw.gz +0 -0
- data/samples/processing_app/3D/typography/letter_k.rb +0 -136
- data/samples/processing_app/3D/typography/typing.rb +0 -77
- data/samples/processing_app/basics/data/characters_strings/characters_strings.rb +0 -85
- data/samples/processing_app/basics/data/characters_strings/data/Eureka-90.vlw +0 -0
- data/samples/processing_app/basics/data/characters_strings/data/rathausFrog.jpg +0 -0
- data/samples/processing_app/basics/input/keyboard_2.rb +0 -45
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 9e35013f3111ccdac477b271d45a0774a6dfd6cb
|
|
4
|
+
data.tar.gz: c0ba3dc3c1b5c87ded476f3bb189d363a0d160d4
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: ecdb759d819121d7e12b51e8cf718d5cbc9cb8ce1a5054ca1edee7360b3d798b08d3c6099c61f7a233bdd0e08f9dfffb4e7dd989324f7f4bbb38c06d86decd6d
|
|
7
|
+
data.tar.gz: fd8eff69ce65e76ba53c2225468e01f115659541edffa9ce80ed7c423764899fcb308811b7bd345894aac1b30ffdf0588b903fcdc47861aa29839ee543a5a46e
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/.yardopts
ADDED
data/CHANGELOG
CHANGED
|
@@ -1,3 +1,84 @@
|
|
|
1
|
+
v2.4.2 First release to to return to rubygems since processing 1.0.11
|
|
2
|
+
* Features a post-install download of jruby-complete (version 1.7.9)
|
|
3
|
+
* Features use of jars from an installed version of vanilla processing,
|
|
4
|
+
* on linux and windows use version 2.1.0 (later versions may also work).
|
|
5
|
+
* For Mac, especially if you are using Mac "java" stick with version 2.0.3
|
|
6
|
+
|
|
7
|
+
v2.4.1 Update gemspec to match modern expectations
|
|
8
|
+
|
|
9
|
+
v2.4.0 Returning to rubygems distribution, by not including any jars
|
|
10
|
+
* Use jars from an installed version of vanilla processing-2.0.3 (or version 2.1.0 linux and windows)
|
|
11
|
+
* Require an installed jruby (with an optional jruby-complete-1.7.8 post
|
|
12
|
+
* install)
|
|
13
|
+
|
|
14
|
+
v2.3.1 Revert to processing-2.0.3 for MacOSX
|
|
15
|
+
* Mac users may use Apple jvm java 6
|
|
16
|
+
* Windows and Linux users need at least java 7 jre (java 8 does now work)
|
|
17
|
+
|
|
18
|
+
v2.2.2 Update to JRuby-1.7.6
|
|
19
|
+
* Merge vec.rb, quaternion.rb and arcball.rb into vecmath.rb, stricter path
|
|
20
|
+
# requires ruby filename to match that of library
|
|
21
|
+
|
|
22
|
+
v2.2.1 Replacing 'arcball' library with 'vecmath' library
|
|
23
|
+
* Arcball functionality is retained (in vecmath library), Vec2D and Vec3D
|
|
24
|
+
* have been added to 'vecmath' library, they provide a pure ruby alternative
|
|
25
|
+
* to processings PVector class, and hence a more ruby like interface
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
v2.2.0 Update to JRuby-1.7.5
|
|
29
|
+
* Changed app.rb to only java_import used, core classes thus when mode JAVA2D
|
|
30
|
+
* ie default mode do not java_import opengl classes, removed event classes
|
|
31
|
+
* since we failed to address the directly
|
|
32
|
+
|
|
33
|
+
v2.1.6 In anticipation of JRuby-1.7.5
|
|
34
|
+
* Minor release to crystalize changes before JRuby-1.7.5
|
|
35
|
+
* Rakefile tries to detect Windows OS & warn possibly missing 'wget'
|
|
36
|
+
* Rubified and expanded Shiffmans advanced data examples
|
|
37
|
+
|
|
38
|
+
v2.1.5 Update to processing-2.0.3
|
|
39
|
+
* Minor changes to control_panel
|
|
40
|
+
* Introducing file_chooser, deprecate select_input
|
|
41
|
+
* Added display_width and display_height aliases
|
|
42
|
+
|
|
43
|
+
v2.1.4 Improved build file
|
|
44
|
+
* Build corrected to work on systems with directories containing spaces/etc
|
|
45
|
+
* Control panel extra feature to allow setting of look and feel
|
|
46
|
+
|
|
47
|
+
v2.1.3 Update to processing-2.0.2
|
|
48
|
+
* Minor update to samples
|
|
49
|
+
|
|
50
|
+
v2.1.2 Moved JRuby-Complete.jar (avoids classpath conflict)
|
|
51
|
+
* Change to using external jruby as default, introduce --nojruby
|
|
52
|
+
* flag to use provided jruby-complete
|
|
53
|
+
* Tests revised to be more compatible with minitest ethos (capture_io)
|
|
54
|
+
|
|
55
|
+
v2.1.1 Added Gemfile
|
|
56
|
+
* Support bundler usage
|
|
57
|
+
|
|
58
|
+
v2.1.0 gc-pruned ruby-processing-2.0
|
|
59
|
+
* Since BFG tool was used for archive pruning
|
|
60
|
+
* This repo is not compatible with forks of jashkenas prior to this release
|
|
61
|
+
|
|
62
|
+
v2.0.1 First minor revision for ruby-processing-2.0
|
|
63
|
+
* Changes for application export on Windows and linux
|
|
64
|
+
* Added support for 'require_relative' on export
|
|
65
|
+
|
|
66
|
+
v2.0.0 A major revision, now based on processing-2.0 and JRuby 1.7+
|
|
67
|
+
* Processing updated to processing-2.0.1 export to applet has disappeared, also P3D is
|
|
68
|
+
* the new OPENGL (except Jogl2 instead of Jogl1.1) if you've got an old graphics card or even some new netbook
|
|
69
|
+
* with onboard graphics you may have issues
|
|
70
|
+
* http://forum.processing.org/one/topic/processing-2-0-won-t-run-on-netbooks-and-older-cheaper-hardware.
|
|
71
|
+
* Processing-2.0 has its own event system (replacing java.awt.event), ruby-processing sketches will normally
|
|
72
|
+
* use this event system.
|
|
73
|
+
* JRuby upgraded to 1.7.4 (default is ruby 1.9 and 2.0 is possible with a switch)
|
|
74
|
+
* NB: bare sketches replace class wrapped sketches see samples...
|
|
75
|
+
* Samples have been extended to include vanilla processing library examples.
|
|
76
|
+
* References to the 'online' variable have been removed (deprecated in processing-2.0 slated for removal)
|
|
77
|
+
* test suite now uses MiniTest some old tests have been remove. Others that probably will fail anyway, are
|
|
78
|
+
* temporarily marked as skip.
|
|
79
|
+
* Samples now rely on ruby 1.9 (almost 2.0) and processing-2.0
|
|
80
|
+
* Where possible examples have been 'fixed' to run with new version (backward compability is not possible)
|
|
81
|
+
|
|
1
82
|
v1.0.11 Fixing broken stuffs...
|
|
2
83
|
* JRuby upgraded to 1.6.5
|
|
3
84
|
* applet export fixed
|
data/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
## Contributing
|
|
2
|
+
In the spirit of [free software][free-sw], **everyone** is encouraged to help improve this project.
|
|
3
|
+
|
|
4
|
+
Here are some ways *you* can contribute:
|
|
5
|
+
|
|
6
|
+
* by reporting bugs
|
|
7
|
+
* by suggesting/implementing new features ( _export to ruboto would be cool_ )
|
|
8
|
+
* by writing or editing documentation ( _expert Windows users could help write install instructions_ )
|
|
9
|
+
* by contributing examples ( _show your creativity, or translate someone elses masterpiece_ )
|
|
10
|
+
* by refactoring examples to be more rubyfied
|
|
11
|
+
* by closing [issues][]
|
|
12
|
+
* by proselytizing ruby-processing, we need more champions
|
|
13
|
+
* by supporting [Processing.org][], nothing to do with us but we rely on them
|
|
14
|
+
* by figuring out if we could replace swing with javafx for control_panel etc
|
|
15
|
+
|
|
16
|
+
## Submitting an Issue
|
|
17
|
+
We use the [GitHub issue tracker][issues] to track bugs and features. Before
|
|
18
|
+
submitting a bug report or feature request, check to make sure it hasn't
|
|
19
|
+
already been submitted. When submitting a bug report, ideally include a [Gist][]
|
|
20
|
+
that includes a stack trace and any details that may be necessary to reproduce
|
|
21
|
+
the bug, including your gem version, Ruby version, and operating system.
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
## Submitting a Pull Request
|
|
25
|
+
1. [Fork the repository.][fork]
|
|
26
|
+
2. [Submit a pull request.][pr]
|
|
27
|
+
|
|
28
|
+
[free-sw]: http://www.fsf.org/licensing/essays/free-sw.html
|
|
29
|
+
[issues]: https://github.com/rubygems/gems/issues
|
|
30
|
+
[gist]: https://gist.github.com/
|
|
31
|
+
[fork]: http://help.github.com/fork-a-repo/
|
|
32
|
+
[pr]: http://help.github.com/send-pull-requests/
|
|
33
|
+
[processing.org]: http://processing.org/foundation/
|
data/Gemfile
ADDED
data/{LICENSE → LICENSE.md}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Ruby-Processing is released under the MIT License.
|
|
2
2
|
You can do pretty much whatever you'd like with it.
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
___
|
|
5
5
|
|
|
6
6
|
Copyright (c) 2008 omygawshkenas
|
|
7
7
|
|
|
@@ -29,9 +29,11 @@ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
|
29
29
|
ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
30
30
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
___
|
|
33
33
|
|
|
34
34
|
Ruby-Processing also distributes core components
|
|
35
|
-
of both JRuby and Processing
|
|
36
|
-
under the GNU
|
|
35
|
+
of both [JRuby][] and [Processing][] both of which are
|
|
36
|
+
licensed under the GNU lesser public license
|
|
37
37
|
|
|
38
|
+
[jruby]: http://www.jruby.org/
|
|
39
|
+
[processing]: http://www.processing.org/
|
data/README.md
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Ruby-Processing
|
|
2
|
+
|
|
3
|
+
Is a ruby wrapper around the [Processing][] code art framework, built using [JRuby][].
|
|
4
|
+
|
|
5
|
+
[Processing][] provides a tidy API, with a bunch of handy methods you can call
|
|
6
|
+
from Ruby-Processing. Here's a smattering:
|
|
7
|
+
|
|
8
|
+
alpha, arc, background, blend, blue, ellipse, frame_rate, hue, lerp,
|
|
9
|
+
load_image, load_pixels, mouse_pressed, noise, rect, saturation, shape,
|
|
10
|
+
smooth, text_align, translate, triangle...
|
|
11
|
+
|
|
12
|
+
## Installation
|
|
13
|
+
|
|
14
|
+
Ideally you should install [jruby](http://jruby.org/download), at the very least you will have at least ruby-1.9.3 installed. You should [download][] and install vanilla [processing-2.0.3](https://processing.org/download/) (MacOSX) or [processing-2.1.0](https://processing.org/download/) (Windows, Linux) prior to installing this version of ruby-processing. You must also set the `PROCESSING_ROOT` in the .rp5rc yaml configuration file, the easiest way is by running the [SetProcessingRoot.pde](https://gist.github.com/monkstone/7438749) sketch in the processing ide. The vendored jruby-complete-1.7.9 is added by running `install_jruby_complete` post install (required for application export), see wiki.
|
|
15
|
+
|
|
16
|
+
Then install ruby-processing (from rubygems-org) in the usual way
|
|
17
|
+
|
|
18
|
+
`gem install ruby-processing` some systems eg Ubuntu my require `sudo` access
|
|
19
|
+
|
|
20
|
+
To install jruby-complete use our built in tool (relies on `wget` to download [jruby-complete-1.7.9](http://jruby.org/download))
|
|
21
|
+
|
|
22
|
+
`install_jruby_complete`
|
|
23
|
+
|
|
24
|
+
If you haven't got `wget` just download jruby-complete-1.7.9 to the vendors folder (then run above tool)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
## Documentation
|
|
28
|
+
|
|
29
|
+
See [Wiki][]
|
|
30
|
+
|
|
31
|
+
See also [FAQs][], [Contributing][] and [Samples][]
|
|
32
|
+
|
|
33
|
+
# Usage Example
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
rp5 run my_sketch.rb
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
or if not using system jruby
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
rp5 --nojruby run my_sketch.rb
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
where a simple ``my_sketch.rb`` could look like this
|
|
46
|
+
|
|
47
|
+
```ruby
|
|
48
|
+
def setup
|
|
49
|
+
size 400, 400
|
|
50
|
+
fill 255
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def draw
|
|
54
|
+
background 0
|
|
55
|
+
ellipse mouse_x, mouse_y, 100, 100
|
|
56
|
+
end
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
or a simple 3D sketch ``cube.rb``
|
|
60
|
+
|
|
61
|
+
```ruby
|
|
62
|
+
def setup
|
|
63
|
+
size 640, 360, P3D
|
|
64
|
+
@xmag = 0
|
|
65
|
+
@ymag = 0
|
|
66
|
+
@new_xmag = 0
|
|
67
|
+
@new_ymag = 0
|
|
68
|
+
fill 200, 50, 50
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def draw
|
|
72
|
+
background 100
|
|
73
|
+
push_matrix
|
|
74
|
+
translate width/2, height/2, -30
|
|
75
|
+
@new_xmag = mouse_x.to_f / width * TWO_PI
|
|
76
|
+
@new_ymag = mouse_y.to_f / height * TWO_PI
|
|
77
|
+
diff = @xmag - @new_xmag
|
|
78
|
+
@xmag -= diff / 4 if diff.abs > 0.01
|
|
79
|
+
diff = @ymag - @new_ymag
|
|
80
|
+
@ymag -= diff / 4 if diff.abs > 0.01
|
|
81
|
+
rotate_x(-@ymag)
|
|
82
|
+
rotate_y(-@xmag)
|
|
83
|
+
box 150, 150, 150
|
|
84
|
+
pop_matrix
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Supported Ruby Version
|
|
90
|
+
|
|
91
|
+
This library has been tested with the following ruby implementations
|
|
92
|
+
|
|
93
|
+
* Ruby 1.9.3
|
|
94
|
+
* Ruby 2.0.0
|
|
95
|
+
* [JRuby][] preferred (required to use rubygems in sketches)
|
|
96
|
+
|
|
97
|
+
[License][]
|
|
98
|
+
|
|
99
|
+
[license]:LICENSE.md
|
|
100
|
+
[contributing]:CONTRIBUTING.md
|
|
101
|
+
[jruby]:http://www.jruby.org/
|
|
102
|
+
[processing]: http://www.processing.org/
|
|
103
|
+
[download]:https://processing.org/download/
|
|
104
|
+
[samples]:https://github.com/jashkenas/ruby-processing/tree/master/samples/
|
|
105
|
+
[wiki]:http://github.com/jashkenas/ruby-processing/wikis/
|
|
106
|
+
[FAQs]:http://github.com/jashkenas/ruby-processing/wikis/FAQs/
|
|
107
|
+
[release]:https://github.com/jashkenas/ruby-processing/releases/
|
|
108
|
+
|
|
109
|
+
## What's new
|
|
110
|
+
|
|
111
|
+
New capabilities since processing-2.0 include ability to use OPENGL VBO (PShape) and GLSL shaders (PShader), to keep abreast of latest shader developments for processing check out the [codeanticode blog](http://codeanticode.wordpress.com/2013/06/04/processing-2-0-is-out-processing-2-0-is-in/). Some worked examples using new feature are included in the samples. The update to the latest jruby is also significant as the default is to run with ruby-1.9 support, and there have been many performance improvements. Some performance improvements will not be available on the Mac as they require at least java-7+, and there is even more to come with java-8+ (adventurous Mac users can read more about [Oracle java here](http://www.java.com/en/download/faq/java_mac.xml) ). More than 330 worked examples are included in the [Samples][], many of which are rubified version of the examples included with vanilla processing, and or the contributed libraries, additions are welcome.
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
|
data/Rakefile
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
|
|
2
|
+
desc 'build and test'
|
|
3
|
+
task :default => [:build_and_test]
|
|
4
|
+
|
|
5
|
+
task :build_and_test do
|
|
6
|
+
Rake::Task["build"].execute
|
|
7
|
+
Rake::Task["test"].execute
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
desc 'Build and install gem'
|
|
11
|
+
task :install => :build do
|
|
12
|
+
sh "gem install #{Dir.glob('*.gem').join(' ')} --no-ri --no-rdoc"
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
desc 'Uninstall gem'
|
|
16
|
+
task :uninstall do
|
|
17
|
+
sh "gem uninstall -x ruby-processing"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
desc 'Install jruby-complete'
|
|
21
|
+
task :install_jruby_complete do
|
|
22
|
+
begin
|
|
23
|
+
sh "cd vendors && rake"
|
|
24
|
+
rescue
|
|
25
|
+
warn("WARNING: you may not have wget installed")
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
desc 'Build gem'
|
|
30
|
+
task :build do
|
|
31
|
+
sh "gem build ruby-processing.gemspec"
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
desc 'Test'
|
|
35
|
+
task :test do
|
|
36
|
+
ruby "test/rp5_test.rb"
|
|
37
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
file = __FILE__
|
|
4
|
+
if test(?l,file)
|
|
5
|
+
require "pathname"
|
|
6
|
+
file = Pathname.new(file).realpath
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
begin
|
|
10
|
+
system "cd #{File.expand_path(File.dirname(file) +"/../vendors")} && rake"
|
|
11
|
+
rescue
|
|
12
|
+
warn("WARNING: you may not have wget installed, you could just copy jruby complete to vendors folder instead of installing wget")
|
|
13
|
+
end
|
data/lib/ruby-processing.rb
CHANGED
|
@@ -9,21 +9,15 @@ end
|
|
|
9
9
|
|
|
10
10
|
SKETCH_ROOT = Dir.pwd unless defined? SKETCH_ROOT
|
|
11
11
|
|
|
12
|
+
require 'ruby-processing/version'
|
|
12
13
|
require 'ruby-processing/helpers/string'
|
|
13
14
|
require 'ruby-processing/helpers/numeric'
|
|
14
15
|
|
|
15
16
|
# The top-level namespace, a home for all Ruby-Processing classes.
|
|
16
17
|
module Processing
|
|
17
|
-
VERSION = "1.0.11" unless defined? Processing::VERSION
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
@online ||= defined?(JRUBY_APPLET)
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
# Are we embedded -- inside the Processing IDE?
|
|
25
|
-
def self.embedded?
|
|
26
|
-
@embedded ||= defined?(RP5_EMBEDDED)
|
|
19
|
+
def self.exported?
|
|
20
|
+
@exported ||= ENV['EXPORTED'].eql?('true')
|
|
27
21
|
end
|
|
28
22
|
|
|
29
23
|
# Autoload a number of constants that we may end up using.
|
|
@@ -32,6 +26,5 @@ module Processing
|
|
|
32
26
|
autoload :Watcher, 'ruby-processing/runners/watch'
|
|
33
27
|
autoload :Creator, 'ruby-processing/exporters/creator'
|
|
34
28
|
autoload :BaseExporter, 'ruby-processing/exporters/base_exporter'
|
|
35
|
-
autoload :AppletExporter, 'ruby-processing/exporters/applet_exporter'
|
|
36
29
|
autoload :ApplicationExporter, 'ruby-processing/exporters/application_exporter'
|
|
37
30
|
end
|
data/lib/ruby-processing/app.rb
CHANGED
|
@@ -1,23 +1,22 @@
|
|
|
1
|
+
# version without embedded or online
|
|
1
2
|
# This class is a thin wrapper around Processing's PApplet.
|
|
2
3
|
# Most of the code here is for interfacing with Swing,
|
|
3
4
|
# web applets, going fullscreen and so on.
|
|
4
5
|
|
|
5
6
|
require 'java'
|
|
6
|
-
require 'ruby-processing/config'
|
|
7
7
|
require 'ruby-processing/helper_methods'
|
|
8
8
|
require 'ruby-processing/library_loader'
|
|
9
|
+
require 'ruby-processing/config'
|
|
9
10
|
|
|
10
|
-
#
|
|
11
|
-
require "#{RP5_ROOT}/lib/core/core.jar" unless Processing.online? || Processing.embedded?
|
|
11
|
+
Dir["#{Processing::CONFIG["PROCESSING_ROOT"]}/core/library/\*.jar"].each { |jar| require jar }
|
|
12
12
|
|
|
13
|
-
# Include some processing classes that we'd like to use:
|
|
14
|
-
%w(
|
|
15
|
-
|
|
13
|
+
# Include some core processing classes that we'd like to use:
|
|
14
|
+
%w(PApplet PConstants PFont PImage PShape PShapeOBJ PShapeSVG PStyle PGraphicsJava2D PGraphics PFont PVector PMatrix2D PMatrix3D).each do |klass|
|
|
15
|
+
java_import "processing.core.#{klass}"
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
module Processing
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
|
|
21
20
|
# This is the main Ruby-Processing class, and is what you'll
|
|
22
21
|
# inherit from when you create a sketch. This class can call
|
|
23
22
|
# all of the methods available in Processing, and has two
|
|
@@ -28,63 +27,63 @@ module Processing
|
|
|
28
27
|
class App < PApplet
|
|
29
28
|
include Math
|
|
30
29
|
include HelperMethods
|
|
31
|
-
|
|
30
|
+
|
|
32
31
|
# Alias some methods for familiarity for Shoes coders.
|
|
33
32
|
#attr_accessor :frame, :title
|
|
34
33
|
alias_method :oval, :ellipse
|
|
35
34
|
alias_method :stroke_width, :stroke_weight
|
|
36
35
|
alias_method :rgb, :color
|
|
37
36
|
alias_method :gray, :color
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
|
|
38
|
+
|
|
40
39
|
# When certain special methods get added to the sketch, we need to let
|
|
41
40
|
# Processing call them by their expected Java names.
|
|
42
41
|
def self.method_added(method_name) #:nodoc:
|
|
43
42
|
# Watch the definition of these methods, to make sure
|
|
44
43
|
# that Processing is able to call them during events.
|
|
45
44
|
methods_to_alias = {
|
|
46
|
-
:
|
|
47
|
-
:
|
|
48
|
-
:
|
|
49
|
-
:
|
|
50
|
-
:
|
|
51
|
-
:
|
|
52
|
-
:
|
|
53
|
-
:
|
|
45
|
+
mouse_pressed: :mousePressed,
|
|
46
|
+
mouse_dragged: :mouseDragged,
|
|
47
|
+
mouse_clicked: :mouseClicked,
|
|
48
|
+
mouse_moved: :mouseMoved,
|
|
49
|
+
mouse_released: :mouseReleased,
|
|
50
|
+
key_pressed: :keyPressed,
|
|
51
|
+
key_released: :keyReleased,
|
|
52
|
+
key_typed: :keyTyped
|
|
54
53
|
}
|
|
55
54
|
if methods_to_alias.keys.include?(method_name)
|
|
56
55
|
alias_method methods_to_alias[method_name], method_name
|
|
57
56
|
end
|
|
58
57
|
end
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
|
|
59
|
+
|
|
61
60
|
# Class methods that we should make available in the instance.
|
|
62
61
|
[:map, :pow, :norm, :lerp, :second, :minute, :hour, :day, :month, :year,
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
:sq, :constrain, :dist, :blend_color, :degrees, :radians, :mag, :println,
|
|
63
|
+
:hex, :min, :max, :abs, :binary, :ceil, :nf, :nfc, :nfp, :nfs,
|
|
64
|
+
:norm, :round, :trim, :unbinary, :unhex ].each do |meth|
|
|
66
65
|
method = <<-EOS
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
66
|
+
def #{meth}(*args)
|
|
67
|
+
self.class.#{meth}(*args)
|
|
68
|
+
end
|
|
70
69
|
EOS
|
|
71
70
|
eval method
|
|
72
71
|
end
|
|
73
|
-
|
|
72
|
+
|
|
74
73
|
# Handy getters and setters on the class go here:
|
|
75
74
|
def self.sketch_class; @sketch_class; end
|
|
76
|
-
|
|
75
|
+
@@full_screen = false
|
|
77
76
|
def self.full_screen; @@full_screen = true; end
|
|
78
77
|
def full_screen?; @@full_screen; end
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
|
|
79
|
+
|
|
81
80
|
# Keep track of what inherits from the Processing::App, because we're going
|
|
82
81
|
# to want to instantiate one.
|
|
83
82
|
def self.inherited(subclass)
|
|
84
83
|
super(subclass)
|
|
85
84
|
@sketch_class = subclass
|
|
86
85
|
end
|
|
87
|
-
|
|
86
|
+
|
|
88
87
|
def self.has_slider(*args) #:nodoc:
|
|
89
88
|
raise "has_slider has been replaced with a nicer control_panel library. Check it out."
|
|
90
89
|
end
|
|
@@ -95,24 +94,24 @@ module Processing
|
|
|
95
94
|
@@library_loader.load_library(*args)
|
|
96
95
|
end
|
|
97
96
|
alias :load_library :load_libraries
|
|
98
|
-
|
|
97
|
+
|
|
99
98
|
def library_loaded?(library_name)
|
|
100
99
|
@@library_loader.library_loaded?(library_name)
|
|
101
100
|
end
|
|
102
|
-
|
|
101
|
+
|
|
103
102
|
def load_ruby_library(*args)
|
|
104
103
|
@@library_loader.load_ruby_library(*args)
|
|
105
104
|
end
|
|
106
|
-
|
|
105
|
+
|
|
107
106
|
def load_java_library(*args)
|
|
108
107
|
@@library_loader.load_java_library(*args)
|
|
109
108
|
end
|
|
110
109
|
end
|
|
111
|
-
|
|
110
|
+
|
|
112
111
|
def library_loaded?(library_name)
|
|
113
112
|
self.class.library_loaded?(library_name)
|
|
114
113
|
end
|
|
115
|
-
|
|
114
|
+
|
|
116
115
|
# When you make a new sketch, you pass in (optionally),
|
|
117
116
|
# a width, height, x, y, title, and whether or not you want to
|
|
118
117
|
# run in full-screen.
|
|
@@ -123,119 +122,75 @@ module Processing
|
|
|
123
122
|
super()
|
|
124
123
|
$app = self
|
|
125
124
|
proxy_java_fields
|
|
126
|
-
set_sketch_path unless Processing.online?
|
|
125
|
+
set_sketch_path #unless Processing.online?
|
|
127
126
|
mix_proxy_into_inner_classes
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
close
|
|
136
|
-
end
|
|
127
|
+
#@started = false
|
|
128
|
+
|
|
129
|
+
java.lang.Thread.default_uncaught_exception_handler = proc do |thread, exception|
|
|
130
|
+
puts(exception.class.to_s)
|
|
131
|
+
puts(exception.message)
|
|
132
|
+
puts(exception.backtrace.collect { |trace| "\t" + trace })
|
|
133
|
+
close
|
|
137
134
|
end
|
|
138
|
-
|
|
135
|
+
|
|
139
136
|
# for the list of all available args, see
|
|
140
|
-
# http://processing.
|
|
141
|
-
args = []
|
|
137
|
+
# http://processing.org/reference/
|
|
142
138
|
|
|
139
|
+
args = []
|
|
140
|
+
|
|
143
141
|
@width, @height = options[:width], options[:height]
|
|
144
|
-
|
|
142
|
+
|
|
145
143
|
if @@full_screen || options[:full_screen]
|
|
146
144
|
@@full_screen = true
|
|
147
145
|
args << "--present"
|
|
148
|
-
end
|
|
149
|
-
|
|
146
|
+
end
|
|
150
147
|
@render_mode ||= JAVA2D
|
|
151
|
-
|
|
152
|
-
if Processing.online?
|
|
153
|
-
JRUBY_APPLET.background_color = nil
|
|
154
|
-
JRUBY_APPLET.double_buffered = false
|
|
155
|
-
JRUBY_APPLET.add self
|
|
156
|
-
JRUBY_APPLET.validate
|
|
157
|
-
# Add the callbacks to peacefully expire.
|
|
158
|
-
JRUBY_APPLET.on_stop { self.stop }
|
|
159
|
-
JRUBY_APPLET.on_destroy { self.destroy }
|
|
160
|
-
init
|
|
161
|
-
else
|
|
162
148
|
x = options[:x] || 0
|
|
163
149
|
y = options[:y] || 0
|
|
164
|
-
args << "--location=#{x}
|
|
165
|
-
|
|
166
|
-
title = options[:title] || File.basename(SKETCH_PATH).sub(/(\.rb
|
|
150
|
+
args << "--location=#{x}, #{y}"
|
|
151
|
+
|
|
152
|
+
title = options[:title] || File.basename(SKETCH_PATH).sub(/(\.rb)$/, '').titleize
|
|
167
153
|
args << title
|
|
168
154
|
PApplet.run_sketch(args, self)
|
|
169
|
-
end
|
|
170
|
-
end
|
|
171
|
-
|
|
172
|
-
def started?
|
|
173
|
-
@started
|
|
155
|
+
#end
|
|
174
156
|
end
|
|
175
157
|
|
|
176
|
-
def
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
158
|
+
def size(*args)
|
|
159
|
+
w, h, mode = *args
|
|
160
|
+
@width ||= w unless @width
|
|
161
|
+
@height ||= h unless @height
|
|
162
|
+
@render_mode ||= mode unless @render_mode
|
|
163
|
+
if [P3D, P2D].include? @render_mode
|
|
164
|
+
# Include some opengl processing classes that we'd like to use:
|
|
165
|
+
%w(FontTexture FrameBuffer LinePath LineStroker PGL PGraphics2D PGraphics3D PGraphicsOpenGL PShader PShapeOpenGL Texture).each do |klass|
|
|
166
|
+
java_import "processing.opengl.#{klass}"
|
|
167
|
+
end
|
|
181
168
|
end
|
|
182
|
-
|
|
183
|
-
|
|
169
|
+
super(*args)
|
|
170
|
+
end
|
|
171
|
+
|
|
184
172
|
# Make sure we set the size if we set it before we start the animation thread.
|
|
185
173
|
def start
|
|
186
174
|
self.size(@width, @height) if @width && @height
|
|
187
175
|
super()
|
|
188
176
|
end
|
|
189
|
-
|
|
177
|
+
|
|
190
178
|
# Provide a loggable string to represent this sketch.
|
|
191
179
|
def inspect
|
|
192
180
|
"#<Processing::App:#{self.class}:#{@title}>"
|
|
193
181
|
end
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
# We override size to support setting full_screen and to keep our
|
|
197
|
-
# internal @width and @height in line.
|
|
198
|
-
def size(*args)
|
|
199
|
-
args[0], args[1] = screenWidth, screenHeight if @@full_screen && !args.empty?
|
|
200
|
-
w, h, mode = *args
|
|
201
|
-
@width = w || @width
|
|
202
|
-
@height = h || @height
|
|
203
|
-
@render_mode = mode || @render_mode
|
|
204
|
-
@started = true
|
|
205
|
-
super(*args)
|
|
206
|
-
rescue Exception => e
|
|
207
|
-
raise e.cause
|
|
208
|
-
end
|
|
209
|
-
|
|
210
|
-
def handleDraw()
|
|
211
|
-
super
|
|
212
|
-
rescue Exception => exception
|
|
213
|
-
puts(exception.message)
|
|
214
|
-
puts(exception.backtrace.collect { |trace| "\t" + trace })
|
|
215
|
-
close
|
|
216
|
-
end
|
|
217
|
-
|
|
218
|
-
# Specify what rendering Processing should use, without needing to pass size.
|
|
219
|
-
def render_mode(mode_const)
|
|
220
|
-
@render_mode = mode_const
|
|
221
|
-
size(@width, @height, @render_mode)
|
|
222
|
-
end
|
|
223
|
-
|
|
182
|
+
|
|
183
|
+
|
|
224
184
|
# Cleanly close and shutter a running sketch.
|
|
225
185
|
def close
|
|
226
|
-
#$app = nil
|
|
227
|
-
if Processing.online?
|
|
228
|
-
JRUBY_APPLET.remove(self)
|
|
229
|
-
else
|
|
230
186
|
control_panel.remove if respond_to?(:control_panel)
|
|
231
187
|
self.dispose
|
|
232
188
|
self.frame.dispose
|
|
233
|
-
end
|
|
234
189
|
end
|
|
235
|
-
|
|
236
|
-
|
|
190
|
+
|
|
191
|
+
|
|
237
192
|
private
|
|
238
|
-
|
|
193
|
+
|
|
239
194
|
# Mix the Processing::Proxy into any inner classes defined for the
|
|
240
195
|
# sketch, attempting to mimic the behavior of Java's inner classes.
|
|
241
196
|
def mix_proxy_into_inner_classes
|
|
@@ -247,16 +202,16 @@ module Processing
|
|
|
247
202
|
const.class_eval 'include Processing::Proxy'
|
|
248
203
|
end
|
|
249
204
|
end
|
|
250
|
-
|
|
205
|
+
|
|
251
206
|
end # Processing::App
|
|
252
|
-
|
|
253
|
-
|
|
207
|
+
|
|
208
|
+
|
|
254
209
|
# This module will get automatically mixed in to any inner class of
|
|
255
210
|
# a Processing::App, in order to mimic Java's inner classes, which have
|
|
256
211
|
# unfettered access to the methods defined in the surrounding class.
|
|
257
212
|
module Proxy
|
|
258
213
|
include Math
|
|
259
|
-
|
|
214
|
+
|
|
260
215
|
# Generate the list of method names that we'd like to proxy for inner classes.
|
|
261
216
|
# Nothing camelCased, nothing __internal__, just the Processing API.
|
|
262
217
|
def self.desired_method_names(inner_class)
|
|
@@ -266,25 +221,25 @@ module Processing
|
|
|
266
221
|
methods = Processing::App.public_instance_methods
|
|
267
222
|
methods.reject {|m| unwanted.include?(m) || bad_method.match(m) || inner_class.method_defined?(m) }
|
|
268
223
|
end
|
|
269
|
-
|
|
270
|
-
|
|
224
|
+
|
|
225
|
+
|
|
271
226
|
# Proxy methods through to the sketch.
|
|
272
227
|
def self.proxy_methods(inner_class)
|
|
273
228
|
code = desired_method_names(inner_class).inject('') do |code, method|
|
|
274
229
|
code << <<-EOS
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
230
|
+
def #{method}(*args, &block) # def rect(*args, &block)
|
|
231
|
+
if block_given? # if block_given?
|
|
232
|
+
$app.send :'#{method}', *args, &block # $app.send(:rect, *args, &block)
|
|
233
|
+
else # else
|
|
234
|
+
$app.#{method} *args # $app.rect *args
|
|
235
|
+
end # end
|
|
236
|
+
end # end
|
|
282
237
|
EOS
|
|
283
238
|
end
|
|
284
239
|
inner_class.class_eval(code)
|
|
285
240
|
end
|
|
286
|
-
|
|
287
|
-
|
|
241
|
+
|
|
242
|
+
|
|
288
243
|
# Proxy the sketch's constants on to the inner classes.
|
|
289
244
|
def self.proxy_constants(inner_class)
|
|
290
245
|
Processing::App.constants.each do |name|
|
|
@@ -292,14 +247,14 @@ module Processing
|
|
|
292
247
|
inner_class.const_set(name, Processing::App.const_get(name))
|
|
293
248
|
end
|
|
294
249
|
end
|
|
295
|
-
|
|
296
|
-
|
|
250
|
+
|
|
251
|
+
|
|
297
252
|
# Don't do all of the work unless we have an inner class that needs it.
|
|
298
253
|
def self.included(inner_class)
|
|
299
254
|
proxy_methods(inner_class)
|
|
300
255
|
proxy_constants(inner_class)
|
|
301
256
|
end
|
|
302
|
-
|
|
257
|
+
|
|
303
258
|
end # Processing::Proxy
|
|
304
|
-
|
|
259
|
+
|
|
305
260
|
end # Processing
|