ruby-processing 1.0.3 → 1.0.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 (63) hide show
  1. data/CHANGELOG +12 -0
  2. data/README +3 -0
  3. data/lib/core/core.jar +0 -0
  4. data/lib/core/jruby-complete.jar +0 -0
  5. data/lib/patches/JRubyApplet.diff +24 -0
  6. data/lib/patches/PATCHES.txt +3 -0
  7. data/lib/patches/PApplet.diff +27 -0
  8. data/lib/ruby-processing.rb +4 -1
  9. data/lib/ruby-processing/app.rb +121 -75
  10. data/lib/ruby-processing/exporters/applet_exporter.rb +1 -1
  11. data/lib/ruby-processing/exporters/base_exporter.rb +21 -16
  12. data/lib/ruby-processing/exporters/creator.rb +12 -6
  13. data/lib/ruby-processing/runner.rb +2 -2
  14. data/lib/ruby-processing/runners/base.rb +59 -0
  15. data/lib/ruby-processing/runners/live.rb +2 -2
  16. data/lib/ruby-processing/runners/run.rb +2 -1
  17. data/lib/ruby-processing/runners/watch.rb +47 -11
  18. data/lib/templates/applet/index.html.erb +6 -6
  19. data/lib/templates/create/bare_sketch.rb.erb +7 -0
  20. data/lib/templates/create/blank_sketch.rb.erb +2 -2
  21. data/library/control_panel/control_panel.rb +6 -2
  22. data/library/opengl/library/export.txt +0 -0
  23. data/library/opengl/library/opengl.jar +0 -0
  24. data/library/pdf/library/itext.jar +0 -0
  25. data/library/pdf/library/pdf.jar +0 -0
  26. data/library/pdf/notes.txt +3 -4
  27. data/samples/animator.rb +35 -39
  28. data/samples/bezier_playground.rb +2 -4
  29. data/samples/fern.rb +34 -42
  30. data/samples/flight_patterns.rb +48 -54
  31. data/samples/full_screen.rb +20 -25
  32. data/samples/getting_started.rb +19 -39
  33. data/samples/learning_processing/chapter_01/1_stroke_and_fill.rb +14 -30
  34. data/samples/learning_processing/chapter_01/2_nofill.rb +18 -23
  35. data/samples/learning_processing/chapter_01/3_rgb_color.rb +16 -28
  36. data/samples/learning_processing/chapter_01/4_alpha_transparency.rb +7 -1
  37. data/samples/learning_processing/chapter_01/5_zoog.rb +20 -33
  38. data/samples/learning_processing/chapter_02/1_zoog_again.rb +3 -1
  39. data/samples/learning_processing/chapter_03/6_interactive_zoog.rb +34 -42
  40. data/samples/learning_processing/chapter_16/03_adjust_video_brightness.rb +49 -0
  41. data/samples/learning_processing/chapter_17/01_simple_displaying_text.rb +14 -0
  42. data/samples/learning_processing/chapter_17/02_text_align.rb +21 -0
  43. data/samples/learning_processing/chapter_17/03_scrolling_headlines.rb +35 -0
  44. data/samples/learning_processing/chapter_17/04_text_mirror.rb +68 -0
  45. data/samples/learning_processing/chapter_17/05_rotating_text.rb +22 -0
  46. data/samples/learning_processing/chapter_17/06_text_breaking_up.rb +73 -0
  47. data/samples/learning_processing/chapter_17/07_boxes_along_a_curve.rb +49 -0
  48. data/samples/learning_processing/chapter_17/08_characters_along_a_curve.rb +51 -0
  49. data/samples/learning_processing/chapter_17/data/ArialMT-16.vlw +0 -0
  50. data/samples/learning_processing/chapter_17/data/Courier-Bold-20.vlw +0 -0
  51. data/samples/learning_processing/chapter_18/01_user_input.rb +39 -0
  52. data/samples/learning_processing/chapter_18/02_graphing_comma_separated_numbers_from_a_text_file.rb +28 -0
  53. data/samples/learning_processing/chapter_18/03_creating_object_from_a_text_file.rb +64 -0
  54. data/samples/learning_processing/chapter_18/data/data-1.txt +1 -0
  55. data/samples/learning_processing/chapter_18/data/data-2.txt +10 -0
  56. data/samples/orbit.rb +45 -0
  57. data/samples/processing_app/basics/image/pointillism.rb +1 -1
  58. data/samples/processing_app/topics/effects/lens.rb +1 -0
  59. metadata +30 -13
  60. data/library/opengl/bin/processing/opengl/PGraphicsOpenGL$ImageCache.class +0 -0
  61. data/library/opengl/bin/processing/opengl/PGraphicsOpenGL$TessCallback.class +0 -0
  62. data/library/opengl/bin/processing/opengl/PGraphicsOpenGL.class +0 -0
  63. data/library/pdf/bin/processing/pdf/PGraphicsPDF.class +0 -0
@@ -0,0 +1,49 @@
1
+ def setup
2
+ size 320, 320
3
+ rect_mode CENTER
4
+ smooth
5
+ @r = 100 # The radius of a circle
6
+ @w, @h = 40, 40 # The width and height of the boxes
7
+ end
8
+
9
+ def draw
10
+ background 255
11
+
12
+ # Start in the center and draw the circle
13
+ translate width/2, height/2
14
+ no_fill
15
+ stroke 0
16
+
17
+ # Our curve is a circle with radius r in the center of the window.
18
+ ellipse 0, 0, @r*2, @r*2
19
+
20
+ # 10 boxes along the curve
21
+ total_boxes = 10
22
+
23
+ # @we must keep track of our position along the curve
24
+ arc_length = 0
25
+
26
+ # For every box
27
+ total_boxes.times do |i|
28
+ # Each box is centered so we move half the width
29
+ arc_length += @w / 2.0
30
+
31
+ # Angle in radians is the arclength divided by the radius
32
+ theta = arc_length / @r
33
+
34
+ push_matrix
35
+ # Polar to cartesian coordinate conversion
36
+ translate @r * cos(theta), @r * sin(theta)
37
+
38
+ # @rotate the box
39
+ rotate theta
40
+
41
+ # Display the box
42
+ fill 0, 100
43
+ rect 0, 0, @w, @h
44
+ pop_matrix
45
+
46
+ # Move halfway again
47
+ arc_length += @w / 2
48
+ end
49
+ end
@@ -0,0 +1,51 @@
1
+ def setup
2
+ size 320, 320
3
+ @message = "text along a curve" # The message to be displayed
4
+ @r = 100 # The radius of a circle
5
+ text_font create_font("Georgia", 40, true)
6
+ text_align CENTER # The text must be centered!
7
+ smooth
8
+ end
9
+
10
+ def draw
11
+ background 255
12
+
13
+ # Start in the center and draw the circle
14
+ translate width/2, height/2
15
+ no_fill
16
+ ellipse 0, 0, @r*2, @r*2
17
+
18
+ # We must keep track of our position along the curve
19
+ arc_length = 0
20
+
21
+ # For every box
22
+ @message.each_byte do |char|
23
+ # Instead of a constant width, we check the width of each character.
24
+ w = text_width(char.chr)
25
+
26
+ # Each box is centered so we move half the width
27
+ arc_length += w / 2
28
+
29
+ # Angle in radians is the arc_length divided by the radius
30
+ # Starting on the left side of the circle by adding PI
31
+ theta = PI + arc_length / @r
32
+
33
+ push_matrix
34
+
35
+ # Polar to Cartesian conversion allows us to find the point along the curve.
36
+ # See Chapter 13 for a review of this concept.
37
+ translate @r * cos(theta), @r * sin(theta)
38
+
39
+ # Rotate the box (rotation is offset by 90 degrees)
40
+ rotate theta + PI / 2
41
+
42
+ # Display the character
43
+ fill 0
44
+ text char, 0, 0
45
+
46
+ pop_matrix
47
+
48
+ # Move halfway again
49
+ arc_length += w / 2
50
+ end
51
+ end
@@ -0,0 +1,39 @@
1
+ # Example 18-1: User input
2
+ require 'ruby-processing'
3
+
4
+ class UserInput < Processing::App
5
+
6
+ def setup
7
+ size 300, 200
8
+ @typing = ""
9
+ @saved = ""
10
+ textFont createFont "Arial", 16, true # set the font for text
11
+ end
12
+
13
+ def draw
14
+ background 255
15
+ indent = 25
16
+ fill 0 # Set the fill for text
17
+
18
+ # Display everything
19
+ text "Click in this applet and type. \nHit return to save what you typed. ", indent, 40
20
+ text @typing, indent, 90
21
+ text @saved, indent, 130
22
+ end
23
+
24
+ def keyPressed
25
+ # If the return key is pressed, save the String and clear it
26
+ if key == "\n"
27
+ @saved = @typing
28
+ @typing = "" # A String can be cleared by setting it equal to ""
29
+ else
30
+ # Otherwise, concatenate the String
31
+ # Each character typed by the user is added to the
32
+ # end of the String variable.
33
+ @typing = @typing + key
34
+ end
35
+ end
36
+
37
+ end
38
+
39
+ UserInput.new :title => "01 User Input"
@@ -0,0 +1,28 @@
1
+ # Example 18-2: Graphing comma separated numbers from a text file
2
+ require 'ruby-processing'
3
+
4
+ class GraphingCommaSeparatedNumbersFromATextFile < Processing::App
5
+
6
+ def setup
7
+ size 200, 200
8
+ # The text from the file is loaded into an array.
9
+ stuff = loadStrings("data-1.txt")
10
+
11
+ # This array has one element because the file only has one line.
12
+ # Convert String into an array of integers using ',' as a delimiter
13
+ @data = stuff[0].split(",").collect{ |n| n.to_i } # XXX: int(split(stuff[0], ","))
14
+ end
15
+
16
+ def draw
17
+ background 255
18
+ stroke 0
19
+ @data.each_with_index do |data, i|
20
+ # The array of ints is used to set the color and height of each rectangle.
21
+ fill data
22
+ rect i * 20, 0, 20, data
23
+ end
24
+ end
25
+
26
+ end
27
+
28
+ GraphingCommaSeparatedNumbersFromATextFile.new :title => "02 Graphing Comma Separated Numbers From A Text File"
@@ -0,0 +1,64 @@
1
+ # Example 18-3: Creating objects from a text file
2
+ require 'ruby-processing'
3
+
4
+ class CreatingObjectFromATextFile < Processing::App
5
+
6
+ def setup
7
+ size 200, 200
8
+ smooth
9
+
10
+ # Load text file as an array of Strings
11
+ data = loadStrings("data-2.txt")
12
+
13
+ # The size of the array of Bubble objects is determined by the
14
+ # total number of lines in the text file.
15
+ @bubbles = []
16
+ data.each do |datum|
17
+ # Each line is split into an array of floating point numbers.
18
+ values = datum.split(",").collect{ |n| n.to_f } # XXX: float[] values = float(split(datum, "," ))
19
+ # The values in the array are passed into the Bubble class constructor.
20
+ @bubbles << Bubble.new(*values)
21
+ end
22
+ end
23
+
24
+ def draw
25
+ background 255
26
+ # Display and move all bubbles
27
+ @bubbles.each do |bubble|
28
+ bubble.display
29
+ bubble.drift
30
+ end
31
+ end
32
+
33
+ end
34
+
35
+ # A Class to describe a "Bubble"
36
+ class Bubble
37
+ # The constructor initializes color and size
38
+ # Location is filled randomly
39
+ def initialize(r, g, diameter)
40
+ @x = $app.random($app.width)
41
+ @y = $app.height
42
+ @r = r
43
+ @g = g
44
+ @diameter = diameter
45
+ end
46
+
47
+ # Display the Bubble
48
+ def display
49
+ $app.stroke 0
50
+ $app.fill @r, @g, 255, 150
51
+ $app.ellipse @x, @y, @diameter, @diameter
52
+ end
53
+
54
+ # Move the bubble
55
+ def drift
56
+ @y += $app.random(-3, -0.1)
57
+ @x += $app.random(-1, 1)
58
+ if @y < -@diameter * 2
59
+ @y = $app.height + @diameter * 2
60
+ end
61
+ end
62
+ end
63
+
64
+ CreatingObjectFromATextFile.new :title => " Creating Object From A Text File"
@@ -0,0 +1 @@
1
+ 102,75,192,178,78,23,144,181,125,55
@@ -0,0 +1,10 @@
1
+ 88,149,22
2
+ 193,78,8
3
+ 90,152,56
4
+ 136,18,37
5
+ 47,2,55
6
+ 36,142,57
7
+ 10,61,31
8
+ 9,121,49
9
+ 156,60,12
10
+ 71,200,21
data/samples/orbit.rb ADDED
@@ -0,0 +1,45 @@
1
+ # Ported from http://nodebox.net/code/index.php/Graphics_State
2
+
3
+ # This sketch demonstrates how to use the frame rate as orbital state,
4
+ # as well as how to use system fonts in Ruby-Processing.
5
+
6
+ require 'ruby-processing'
7
+
8
+ class Orbit < Processing::App
9
+ def setup
10
+ frame_rate 30
11
+ smooth
12
+ fill 0
13
+ @font = create_font('Helvetica', 40)
14
+ end
15
+
16
+ def draw
17
+ background 255
18
+ translate 225, 225
19
+
20
+ text_font @font
21
+ ellipse 0, 0, 10, 10
22
+ text 'sun', 10, 0
23
+
24
+ 3.times do |i|
25
+ push_matrix
26
+
27
+ rotate frame_count / -180.0 * PI + i * PI / -1.5
28
+ line 0, 0, 120, 0
29
+
30
+ translate 120, 0
31
+ ellipse 0, 0, 10, 10
32
+ text_font @font, 22
33
+ text 'planet', 10, 0
34
+
35
+ rotate frame_count / -30.0 * PI
36
+ line 0, 0, 30, 0
37
+ text_font @font, 15
38
+ text 'moon', 32, 0
39
+
40
+ pop_matrix
41
+ end
42
+ end
43
+ end
44
+
45
+ Orbit.new :width => 450, :height => 450, :title => 'Orbit'
@@ -21,7 +21,7 @@ class Pointillism < Processing::App
21
21
  pointillize = map mouse_x, 0, width, 2, 18
22
22
  x, y = rand(@a.width), rand(@a.height)
23
23
  pixel = @a.get(x, y)
24
- fill pixel
24
+ fill pixel, 126
25
25
  ellipse x, y, pointillize, pointillize
26
26
  end
27
27
 
@@ -16,6 +16,7 @@ require 'ruby-processing'
16
16
  class Lens < Processing::App
17
17
 
18
18
  def setup
19
+ render_mode P2D
19
20
  @lens_d = 160
20
21
  @lens_list = []
21
22
  @xx, @yy, @dx, @dy = 0, 0, 3, 3
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-processing
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Ashkenas
@@ -12,15 +12,16 @@ authors:
12
12
  - Peter Krenn
13
13
  - Florian Jenett
14
14
  - Andreas Haller
15
+ - Juris Galang
15
16
  autorequire:
16
17
  bindir: bin
17
18
  cert_chain: []
18
19
 
19
- date: 2009-03-03 00:00:00 -05:00
20
+ date: 2009-03-26 00:00:00 -04:00
20
21
  default_executable: rp5
21
22
  dependencies: []
22
23
 
23
- description: "Ruby-Processing is a Ruby wrapper for the Processing code art framework. It's this thin little shim that squeezes between Processing and JRuby, passing along some neat goodies like: * Applet and Application exporting of your sketches. Hand them out to your party guests, ready-to-run. * Live Coding via JRuby's IRB. Loads in your sketch so you can futz with variables and remake methods on the fly. * A \"Control Panel\" library, so that you can easily create sliders, buttons, checkboxes and drop-down menus, and hook them into your sketch's instance variables. * \"Watch\" mode, where Ruby-Processing keeps an eye on your sketch and reloads it from scratch every time you make a change. A pretty nice REPL-ish way to work on your Processing sketches."
24
+ description: "Ruby-Processing is a Ruby wrapper for the Processing code art framework. It's this thin little shim that squeezes between Processing and JRuby, passing along some neat goodies like: * Applet and Application exporting of your sketches. Hand them out to your party guests, ready-to-run. * Live Coding via JRuby's IRB. Loads in your sketch so you can futz with variables and remake methods on the fly. * Bare sketches. Write your Ruby-Processing sketches without having to define a class. Without defining methods, even. * A \"Control Panel\" library, so that you can easily create sliders, buttons, checkboxes and drop-down menus, and hook them into your sketch's instance variables. * \"Watch\" mode, where Ruby-Processing keeps an eye on your sketch and reloads it from scratch every time you make a change. A pretty nice REPL-ish way to work on your Processing sketches."
24
25
  email: jeremy@ashkenas.com
25
26
  executables:
26
27
  - rp5
@@ -35,6 +36,10 @@ files:
35
36
  - lib/core
36
37
  - lib/core/core.jar
37
38
  - lib/core/jruby-complete.jar
39
+ - lib/patches
40
+ - lib/patches/JRubyApplet.diff
41
+ - lib/patches/PApplet.diff
42
+ - lib/patches/PATCHES.txt
38
43
  - lib/ruby-processing
39
44
  - lib/ruby-processing/app.rb
40
45
  - lib/ruby-processing/exporters
@@ -77,6 +82,7 @@ files:
77
82
  - lib/templates/application/run.erb
78
83
  - lib/templates/application/run.exe
79
84
  - lib/templates/create
85
+ - lib/templates/create/bare_sketch.rb.erb
80
86
  - lib/templates/create/blank_sketch.rb.erb
81
87
  - library/boids
82
88
  - library/boids/boids.rb
@@ -114,12 +120,6 @@ files:
114
120
  - library/net/library
115
121
  - library/net/library/net.jar
116
122
  - library/opengl
117
- - library/opengl/bin
118
- - library/opengl/bin/processing
119
- - library/opengl/bin/processing/opengl
120
- - library/opengl/bin/processing/opengl/PGraphicsOpenGL$ImageCache.class
121
- - library/opengl/bin/processing/opengl/PGraphicsOpenGL$TessCallback.class
122
- - library/opengl/bin/processing/opengl/PGraphicsOpenGL.class
123
123
  - library/opengl/library
124
124
  - library/opengl/library/export.txt
125
125
  - library/opengl/library/gluegen-rt-natives-linux-amd64.jar
@@ -152,10 +152,6 @@ files:
152
152
  - library/opengl/library/libjogl_cg.so
153
153
  - library/opengl/library/opengl.jar
154
154
  - library/pdf
155
- - library/pdf/bin
156
- - library/pdf/bin/processing
157
- - library/pdf/bin/processing/pdf
158
- - library/pdf/bin/processing/pdf/PGraphicsPDF.class
159
155
  - library/pdf/library
160
156
  - library/pdf/library/itext.jar
161
157
  - library/pdf/library/pdf.jar
@@ -312,6 +308,27 @@ files:
312
308
  - samples/learning_processing/chapter_16
313
309
  - samples/learning_processing/chapter_16/01_display_video.rb
314
310
  - samples/learning_processing/chapter_16/02_manipulate_video_image.rb
311
+ - samples/learning_processing/chapter_16/03_adjust_video_brightness.rb
312
+ - samples/learning_processing/chapter_17
313
+ - samples/learning_processing/chapter_17/01_simple_displaying_text.rb
314
+ - samples/learning_processing/chapter_17/02_text_align.rb
315
+ - samples/learning_processing/chapter_17/03_scrolling_headlines.rb
316
+ - samples/learning_processing/chapter_17/04_text_mirror.rb
317
+ - samples/learning_processing/chapter_17/05_rotating_text.rb
318
+ - samples/learning_processing/chapter_17/06_text_breaking_up.rb
319
+ - samples/learning_processing/chapter_17/07_boxes_along_a_curve.rb
320
+ - samples/learning_processing/chapter_17/08_characters_along_a_curve.rb
321
+ - samples/learning_processing/chapter_17/data
322
+ - samples/learning_processing/chapter_17/data/ArialMT-16.vlw
323
+ - samples/learning_processing/chapter_17/data/Courier-Bold-20.vlw
324
+ - samples/learning_processing/chapter_18
325
+ - samples/learning_processing/chapter_18/01_user_input.rb
326
+ - samples/learning_processing/chapter_18/02_graphing_comma_separated_numbers_from_a_text_file.rb
327
+ - samples/learning_processing/chapter_18/03_creating_object_from_a_text_file.rb
328
+ - samples/learning_processing/chapter_18/data
329
+ - samples/learning_processing/chapter_18/data/data-1.txt
330
+ - samples/learning_processing/chapter_18/data/data-2.txt
331
+ - samples/orbit.rb
315
332
  - samples/processing_app
316
333
  - samples/processing_app/3D
317
334
  - samples/processing_app/3D/camera