propane 3.4.2-java → 3.8.0-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (140) hide show
  1. checksums.yaml +4 -4
  2. data/.mvn/extensions.xml +1 -1
  3. data/.mvn/wrapper/MavenWrapperDownloader.java +2 -2
  4. data/.mvn/wrapper/maven-wrapper.properties +2 -2
  5. data/.travis.yml +1 -1
  6. data/CHANGELOG.md +9 -1
  7. data/Gemfile +2 -0
  8. data/README.md +7 -10
  9. data/Rakefile +10 -11
  10. data/bin/propane +3 -1
  11. data/lib/propane.rb +4 -2
  12. data/lib/propane/app.rb +5 -1
  13. data/lib/propane/creators/sketch_class.rb +7 -1
  14. data/lib/propane/creators/sketch_factory.rb +4 -2
  15. data/lib/propane/creators/sketch_writer.rb +1 -0
  16. data/lib/propane/helper_methods.rb +22 -23
  17. data/lib/propane/helpers/numeric.rb +2 -0
  18. data/lib/propane/helpers/version_error.rb +1 -0
  19. data/lib/propane/library.rb +5 -1
  20. data/lib/propane/library_loader.rb +2 -0
  21. data/lib/propane/native_folder.rb +10 -9
  22. data/lib/propane/native_loader.rb +3 -0
  23. data/lib/propane/runner.rb +20 -14
  24. data/lib/propane/version.rb +2 -1
  25. data/library/boids/boids.rb +21 -11
  26. data/library/color_group/color_group.rb +2 -0
  27. data/library/control_panel/control_panel.rb +8 -5
  28. data/library/dxf/dxf.rb +2 -0
  29. data/library/file_chooser/chooser.rb +10 -9
  30. data/library/file_chooser/file_chooser.rb +10 -9
  31. data/library/library_proxy/library_proxy.rb +2 -0
  32. data/library/net/net.rb +2 -0
  33. data/library/slider/slider.rb +23 -22
  34. data/library/vector_utils/vector_utils.rb +4 -0
  35. data/library/video_event/video_event.rb +2 -0
  36. data/pom.rb +37 -36
  37. data/pom.xml +7 -7
  38. data/propane.gemspec +13 -9
  39. data/src/main/java/japplemenubar/JAppleMenuBar.java +3 -3
  40. data/src/main/java/monkstone/ColorUtil.java +1 -3
  41. data/src/main/java/monkstone/MathToolModule.java +1 -1
  42. data/src/main/java/monkstone/PropaneLibrary.java +2 -2
  43. data/src/main/java/monkstone/fastmath/DegLutTables.java +111 -0
  44. data/src/main/java/monkstone/fastmath/Deglut.java +6 -56
  45. data/src/main/java/monkstone/filechooser/Chooser.java +1 -1
  46. data/src/main/java/monkstone/noise/Noise.java +116 -0
  47. data/src/main/java/monkstone/noise/NoiseGenerator.java +63 -0
  48. data/src/main/java/monkstone/noise/NoiseMode.java +15 -0
  49. data/src/main/java/monkstone/noise/SimplexNoise.java +137 -103
  50. data/src/main/java/monkstone/noise/ValueNoise.java +170 -0
  51. data/src/main/java/monkstone/slider/CustomHorizontalSlider.java +1 -1
  52. data/src/main/java/monkstone/slider/CustomVerticalSlider.java +1 -1
  53. data/src/main/java/monkstone/slider/SimpleHorizontalSlider.java +1 -1
  54. data/src/main/java/monkstone/slider/SimpleVerticalSlider.java +1 -1
  55. data/src/main/java/monkstone/slider/SliderBar.java +1 -1
  56. data/src/main/java/monkstone/slider/SliderGroup.java +1 -1
  57. data/src/main/java/monkstone/slider/WheelHandler.java +1 -1
  58. data/src/main/java/monkstone/vecmath/package-info.java +1 -1
  59. data/src/main/java/monkstone/vecmath/vec2/Vec2.java +1 -1
  60. data/src/main/java/monkstone/vecmath/vec3/Vec3.java +1 -2
  61. data/src/main/java/monkstone/videoevent/CaptureEvent.java +1 -1
  62. data/src/main/java/monkstone/videoevent/MovieEvent.java +1 -1
  63. data/src/main/java/monkstone/videoevent/package-info.java +1 -1
  64. data/src/main/java/processing/awt/PGraphicsJava2D.java +781 -285
  65. data/src/main/java/processing/awt/PImageAWT.java +377 -0
  66. data/src/main/java/processing/awt/PShapeJava2D.java +56 -52
  67. data/src/main/java/processing/awt/PSurfaceAWT.java +308 -208
  68. data/src/main/java/processing/awt/ShimAWT.java +581 -0
  69. data/src/main/java/processing/core/PApplet.java +13142 -13883
  70. data/src/main/java/processing/core/PConstants.java +477 -447
  71. data/src/main/java/processing/core/PFont.java +914 -880
  72. data/src/main/java/processing/core/PGraphics.java +152 -136
  73. data/src/main/java/processing/core/PImage.java +275 -372
  74. data/src/main/java/processing/core/PMatrix.java +172 -159
  75. data/src/main/java/processing/core/PMatrix2D.java +478 -415
  76. data/src/main/java/processing/core/PMatrix3D.java +762 -735
  77. data/src/main/java/processing/core/PShape.java +2887 -2651
  78. data/src/main/java/processing/core/PShapeOBJ.java +97 -92
  79. data/src/main/java/processing/core/PShapeSVG.java +1705 -1490
  80. data/src/main/java/processing/core/PStyle.java +40 -37
  81. data/src/main/java/processing/core/PSurface.java +139 -97
  82. data/src/main/java/processing/core/PSurfaceNone.java +296 -218
  83. data/src/main/java/processing/core/PVector.java +995 -963
  84. data/src/main/java/processing/core/ThinkDifferent.java +12 -8
  85. data/src/main/java/processing/data/DoubleDict.java +756 -710
  86. data/src/main/java/processing/data/DoubleList.java +749 -696
  87. data/src/main/java/processing/data/FloatDict.java +748 -702
  88. data/src/main/java/processing/data/FloatList.java +751 -697
  89. data/src/main/java/processing/data/IntDict.java +720 -673
  90. data/src/main/java/processing/data/IntList.java +699 -633
  91. data/src/main/java/processing/data/JSONArray.java +931 -873
  92. data/src/main/java/processing/data/JSONObject.java +1262 -1165
  93. data/src/main/java/processing/data/JSONTokener.java +351 -341
  94. data/src/main/java/processing/data/LongDict.java +710 -663
  95. data/src/main/java/processing/data/LongList.java +701 -635
  96. data/src/main/java/processing/data/Sort.java +37 -41
  97. data/src/main/java/processing/data/StringDict.java +525 -486
  98. data/src/main/java/processing/data/StringList.java +626 -580
  99. data/src/main/java/processing/data/Table.java +3690 -3510
  100. data/src/main/java/processing/data/TableRow.java +182 -183
  101. data/src/main/java/processing/data/XML.java +957 -883
  102. data/src/main/java/processing/event/Event.java +87 -67
  103. data/src/main/java/processing/event/KeyEvent.java +48 -41
  104. data/src/main/java/processing/event/MouseEvent.java +88 -113
  105. data/src/main/java/processing/event/TouchEvent.java +10 -6
  106. data/src/main/java/processing/javafx/PGraphicsFX2D.java +20 -345
  107. data/src/main/java/processing/javafx/PSurfaceFX.java +149 -121
  108. data/src/main/java/processing/net/Client.java +20 -20
  109. data/src/main/java/processing/net/Server.java +9 -9
  110. data/src/main/java/processing/opengl/FontTexture.java +286 -266
  111. data/src/main/java/processing/opengl/FrameBuffer.java +389 -377
  112. data/src/main/java/processing/opengl/LinePath.java +132 -89
  113. data/src/main/java/processing/opengl/LineStroker.java +588 -581
  114. data/src/main/java/processing/opengl/PGL.java +660 -567
  115. data/src/main/java/processing/opengl/PGraphics2D.java +408 -315
  116. data/src/main/java/processing/opengl/PGraphics3D.java +107 -72
  117. data/src/main/java/processing/opengl/PGraphicsOpenGL.java +12378 -12075
  118. data/src/main/java/processing/opengl/PJOGL.java +1753 -1670
  119. data/src/main/java/processing/opengl/PShader.java +369 -461
  120. data/src/main/java/processing/opengl/PShapeOpenGL.java +4678 -4580
  121. data/src/main/java/processing/opengl/PSurfaceJOGL.java +1114 -1027
  122. data/src/main/java/processing/opengl/Texture.java +1492 -1401
  123. data/src/main/java/processing/opengl/VertexBuffer.java +57 -55
  124. data/test/create_test.rb +21 -20
  125. data/test/deglut_spec_test.rb +4 -2
  126. data/test/helper_methods_test.rb +49 -20
  127. data/test/math_tool_test.rb +39 -32
  128. data/test/native_folder.rb +47 -0
  129. data/test/respond_to_test.rb +3 -2
  130. data/test/sketches/key_event.rb +2 -2
  131. data/test/sketches/library/my_library/my_library.rb +3 -0
  132. data/test/test_helper.rb +2 -0
  133. data/test/vecmath_spec_test.rb +35 -22
  134. data/vendors/Rakefile +35 -40
  135. metadata +47 -23
  136. data/library/simplex_noise/simplex_noise.rb +0 -3
  137. data/src/main/java/processing/opengl/shaders/LightVert-brcm.glsl +0 -154
  138. data/src/main/java/processing/opengl/shaders/LightVert-vc4.glsl +0 -154
  139. data/src/main/java/processing/opengl/shaders/TexLightVert-brcm.glsl +0 -160
  140. data/src/main/java/processing/opengl/shaders/TexLightVert-vc4.glsl +0 -160
@@ -33,10 +33,12 @@ module Propane
33
33
 
34
34
  def loader(name)
35
35
  return true if @loaded_libraries.include?(name)
36
+
36
37
  fname = name.to_s
37
38
  library = Library.new(fname)
38
39
  library.locate
39
40
  return require_library(library, name) if library.ruby?
41
+
40
42
  warn("Not found library: #{fname}") unless library.exist?
41
43
  load_jars(library, name)
42
44
  end
@@ -1,11 +1,13 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rbconfig'
2
4
 
3
5
  # Utility to load native binaries on Java CLASSPATH
4
6
  class NativeFolder
5
7
  attr_reader :os, :bit
6
8
 
7
- WIN_FORMAT = 'windows%d'.freeze
8
- LINUX_FORMAT = 'linux%d'.freeze
9
+ WIN_FORMAT = 'windows%d'
10
+ LINUX_FORMAT = 'linux%d'
9
11
  WIN_PATTERNS = [
10
12
  /bccwin/i,
11
13
  /cygwin/i,
@@ -17,22 +19,21 @@ class NativeFolder
17
19
 
18
20
  def initialize
19
21
  @os = RbConfig::CONFIG['host_os'].downcase
20
- @bit = java.lang.System.get_property('os.arch') =~ /64/ ? 64 : 32
22
+ @bit = /64/.match?(java.lang.System.get_property('os.arch')) ? 64 : 32
21
23
  end
22
24
 
23
25
  def name
24
26
  return 'macosx' if /darwin|mac/.match?(os)
25
- return format(LINUX_FORMAT, bit) if os =~ /linux/
26
- if WIN_PATTERNS.any? { |pat| pat =~ os }
27
- return format(WIN_FORMAT, '64') if /64/.match?(bit)
28
- return format(WIN_FORMAT, '32') if /32/.match?(bit)
29
- end
27
+ return format(LINUX_FORMAT, bit) if /linux/.match?(os)
28
+ return format(WIN_FORMAT, bit) if WIN_PATTERNS.any? { |pat| pat.match?(os) }
29
+
30
30
  raise 'Unsupported Architecture'
31
31
  end
32
32
 
33
33
  def extension
34
34
  return '*.so' if /linux/.match?(os)
35
- return '*.dll' if WIN_PATTERNS.any? { |pat| pat =~ os }
35
+ return '*.dll' if WIN_PATTERNS.any? { |pat| pat.match?(os) }
36
+
36
37
  '*.dylib' # MacOS
37
38
  end
38
39
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # This class knows how to dynamically set the 'java' native library path
2
4
  # It might not work with java 9?
3
5
  class NativeLoader
@@ -21,6 +23,7 @@ class NativeLoader
21
23
  field = JC::Class.for_name('java.lang.ClassLoader')
22
24
  .get_declared_field('sys_paths')
23
25
  return unless field
26
+
24
27
  field.accessible = true # some jruby magic
25
28
  field.set(JC::Class.for_name('java.lang.System').get_class_loader, nil)
26
29
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: false
2
+
2
3
  require 'optparse'
3
4
  require_relative 'version'
4
5
 
@@ -54,6 +55,8 @@ module Propane
54
55
  # assumed to have this option.
55
56
  opts.on('-h', '--help', 'Display this screen') do
56
57
  puts opts
58
+ puts ''
59
+ puts 'Run a sketch: jruby [--dev] [<sketch.rb>]'
57
60
  exit
58
61
  end
59
62
  end
@@ -66,28 +69,31 @@ module Propane
66
69
  SketchWriter.new(File.basename(filename, '.rb'), argc).write
67
70
  end
68
71
 
69
- def show_version
70
-
71
- v_format = "Propane version %s\nJRuby version %s"
72
- puts format(v_format, Propane::VERSION, JRUBY_VERSION)
73
- end
74
-
75
72
  def show_version
76
73
  require 'erb'
77
74
  require_relative 'helpers/version_error'
78
- raise JDKVersionError.new if ENV_JAVA['java.specification.version'] < '11'
79
- template = ERB.new <<-EOF
75
+ raise JDKVersionError if ENV_JAVA['java.specification.version'] < '11'
76
+
77
+ template = ERB.new <<-VERSION
80
78
  propane version <%= Propane::VERSION %>
81
79
  JRuby version <%= JRUBY_VERSION %>
82
- EOF
80
+ VERSION
83
81
  puts template.result(binding)
84
82
  end
85
83
 
86
84
  def install(library)
85
+ library ||= 'new'
87
86
  choice = library.downcase
88
- valid = Regexp.union('samples', 'sound', 'video', 'glvideo')
89
- return warn format('No installer for %s', choice) unless valid =~ choice
90
- system "cd #{PROPANE_ROOT}/vendors && rake download_and_copy_#{choice}"
87
+ case choice
88
+ when /samples|sound|video/
89
+ system "cd #{PROPANE_ROOT}/vendors && rake download_and_copy_#{choice}"
90
+ when /new/
91
+ system "cd #{PROPANE_ROOT}/vendors && rake download_and_copy_samples"
92
+ else
93
+ warn format('No installer for %<lib>s', lib: choice)
94
+ end
91
95
  end
92
- end # class Runner
93
- end # module Propane
96
+ end
97
+ # class Runner
98
+ end
99
+ # module Propane
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Propane
3
- VERSION = '3.4.2'
4
+ VERSION = '3.8.0'
4
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Boids -- after Tom de Smedt.
2
4
  # See his Python version: http://nodebox.net/code/index.php/Boids
3
5
  # This is an example of how a pure-Ruby library can work. Original for
@@ -7,7 +9,8 @@ class Boid
7
9
  attr_accessor :boids, :pos, :vel, :is_perching, :perch_time
8
10
 
9
11
  def initialize(boids, pos)
10
- @boids, @flock = boids, boids
12
+ @boids = boids
13
+ @flock = boids
11
14
  @pos = pos
12
15
  @vel = Vec3D.new
13
16
  @is_perching = false
@@ -53,6 +56,7 @@ class Boid
53
56
  # Tweet, Tweet! The boid police will bust you for breaking the speed limit.
54
57
  most = [vel.x.abs, vel.y.abs, vel.z.abs].max
55
58
  return if most < max
59
+
56
60
  scale = max / most.to_f
57
61
  @vel *= scale
58
62
  end
@@ -75,7 +79,7 @@ class Boids
75
79
  extend Forwardable
76
80
  def_delegators(:@boids, :reject, :<<, :each, :shuffle!, :length, :next)
77
81
 
78
- attr_reader :has_goal, :perch, :perch_tm, :perch_y
82
+ attr_reader :has_goal, :perchance, :perch_tm, :perch_y
79
83
 
80
84
  def initialize
81
85
  @boids = []
@@ -88,16 +92,20 @@ class Boids
88
92
 
89
93
  def setup(n, x, y, w, h)
90
94
  n.times do
91
- dx, dy = rand(w), rand(h)
95
+ dx = rand(w)
96
+ dy = rand(h)
92
97
  z = rand(200.0)
93
98
  self << Boid.new(self, Vec3D.new(x + dx, y + dy, z))
94
99
  end
95
- @x, @y, @w, @h = x, y, w, h
100
+ @x = x
101
+ @y = y
102
+ @w = w
103
+ @h = h
96
104
  @scattered = false
97
105
  @scatter = 0.005
98
106
  @scatter_time = 50.0
99
107
  @scatter_i = 0.0
100
- @perch = 1.0 # Lower this number to divebomb.
108
+ @perchance = 1.0 # Lower this number to divebomb.
101
109
  @perch_y = h
102
110
  @perch_tm = -> { 25.0 + rand(50.0) }
103
111
  @has_goal = false
@@ -118,11 +126,11 @@ class Boids
118
126
  def perch(ground = nil, chance = 1.0, frames = nil)
119
127
  @perch_tm = frames.nil? ? -> { 25.0 + rand(50.0) } : frames
120
128
  @perch_y = ground.nil? ? @h : ground
121
- @perch = chance
129
+ @perchance = chance
122
130
  end
123
131
 
124
132
  def no_perch
125
- @perch = 0.0
133
+ @perchance = 0.0
126
134
  end
127
135
 
128
136
  def goal(target:, flee: false)
@@ -138,7 +146,8 @@ class Boids
138
146
 
139
147
  def constrain
140
148
  # Put them boids in a cage.
141
- dx, dy = @w * 0.1, @h * 0.1
149
+ dx = @w * 0.1
150
+ dy = @h * 0.1
142
151
  each do |b|
143
152
  b.vel.x += rand(dx) if b.pos.x < @x - dx
144
153
  b.vel.x += rand(dy) if b.pos.y < @y - dy
@@ -146,9 +155,10 @@ class Boids
146
155
  b.vel.y -= rand(dy) if b.pos.y > @y + @h + dy
147
156
  b.vel.z += 10.0 if b.pos.z < 0.0
148
157
  b.vel.z -= 10.0 if b.pos.z > 100.0
149
- next unless b.pos.y > perch_y && rand < perch
158
+ next unless b.pos.y > perch_y && rand < perchance
159
+
150
160
  b.pos.y = perch_y
151
- b.vel.y = -(b.vel.y.abs) * 0.2
161
+ b.vel.y = -b.vel.y.abs * 0.2
152
162
  b.is_perching = true
153
163
  b.perch_time = perch_tm.respond_to?(:call) ? perch_tm.call : perch_tm
154
164
  end
@@ -166,7 +176,7 @@ class Boids
166
176
  m2 = 1.0 # separation
167
177
  m3 = 1.0 # alignment
168
178
  m4 = 1.0 # goal
169
- @scattered = true if !(@scattered) && rand < @scatter
179
+ @scattered = true if !@scattered && rand < @scatter
170
180
  if @scattered
171
181
  m1 = -m1
172
182
  m3 *= 0.25
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  java_import Java::Monkstone::ColorUtil
2
4
 
3
5
  # class wraps a java color array, supports shuffle!, last and ruby_string
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Here's a little library for quickly hooking up controls to sketches.
2
4
  # For messing with the parameters and such.
3
5
  # These controls will set instance variables on the sketches.
@@ -25,7 +27,7 @@ module ControlPanel
25
27
  add_change_listener do
26
28
  update_label(label, name, value)
27
29
  ControlPanel.app_value(name, value)
28
- proc.call(value) if proc
30
+ proc&.call(value)
29
31
  end
30
32
  ControlPanel.app_value(name, val)
31
33
  end
@@ -49,7 +51,7 @@ module ControlPanel
49
51
  control_panel.add_element(self, name)
50
52
  add_action_listener do
51
53
  ControlPanel.app_value(name, value) unless value.nil?
52
- proc.call(value) if proc
54
+ proc&.call(value)
53
55
  end
54
56
  set_selected_index(initial_value ? elements.index(initial_value) : 0)
55
57
  end
@@ -69,7 +71,7 @@ module ControlPanel
69
71
  control_panel.add_element(self, name, false)
70
72
  add_action_listener do
71
73
  ControlPanel.app_value(name, value)
72
- proc.call(value) if proc
74
+ proc&.call(value)
73
75
  end
74
76
  end
75
77
 
@@ -87,7 +89,7 @@ module ControlPanel
87
89
  control_panel.add_element(self, name, false, true)
88
90
  add_action_listener do
89
91
  Propane.app.send(name)
90
- proc.call(value) if proc
92
+ proc&.call(value)
91
93
  end
92
94
  end
93
95
  end
@@ -160,7 +162,7 @@ module ControlPanel
160
162
  def feel(lf = 'metal')
161
163
  lafinfo = javax.swing.UIManager.getInstalledLookAndFeels
162
164
  laf = lafinfo.to_ary.find do |info|
163
- info.name =~ Regexp.new(Regexp.escape(lf), Regexp::IGNORECASE)
165
+ Regexp.new(Regexp.escape(lf), Regexp::IGNORECASE).match?(info.name)
164
166
  end
165
167
  javax.swing.UIManager.setLookAndFeel(laf.class_name)
166
168
  end
@@ -171,6 +173,7 @@ module ControlPanel
171
173
  def control_panel
172
174
  @control_panel ||= ControlPanel::Panel.new
173
175
  return @control_panel unless block_given?
176
+
174
177
  yield(@control_panel)
175
178
  @control_panel.display
176
179
  @control_panel.set_visible true
data/library/dxf/dxf.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # @TODO usage
2
4
  class Propane::App
3
5
  java_import Java::ProcessingDxf::RawDXF
@@ -1,18 +1,19 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # Usage: :wq
3
4
  # load_library :chooser
4
- #
5
+ #
5
6
  # def setup
6
- # java_signature 'void selectInput(String, String)'
7
- # selectInput('Select a file to process:', 'fileSelected')
7
+ # java_signature 'void selectInput(String, String)'
8
+ # selectInput('Select a file to process:', 'fileSelected')
8
9
  # end
9
- #
10
+ #
10
11
  # def fileSelected(selection)
11
- # if selection.nil?
12
- # puts 'Window was closed or the user hit cancel.'
13
- # else
14
- # puts format('User selected %s', selection.get_absolute_path)
15
- # end
12
+ # if selection.nil?
13
+ # puts 'Window was closed or the user hit cancel.'
14
+ # else
15
+ # puts format('User selected %s', selection.get_absolute_path)
16
+ # end
16
17
  # end
17
18
  class Propane::App
18
19
  include Java::MonkstoneFilechooser::Chooser
@@ -1,18 +1,19 @@
1
1
  # frozen_string_literal: true
2
- # Usage:
2
+
3
+ # Usage:
3
4
  # load_library :file_chooser
4
5
  # class ...
5
6
  # def setup
6
- # java_signature 'void selectInput(String, String)'
7
- # selectInput('Select a file to process:', 'fileSelected')
7
+ # java_signature 'void selectInput(String, String)'
8
+ # selectInput('Select a file to process:', 'fileSelected')
8
9
  # end
9
- #
10
+ #
10
11
  # def fileSelected(selection)
11
- # if selection.nil?
12
- # puts 'Window was closed or the user hit cancel.'
13
- # else
14
- # puts format('User selected %s', selection.get_absolute_path)
15
- # end
12
+ # if selection.nil?
13
+ # puts 'Window was closed or the user hit cancel.'
14
+ # else
15
+ # puts format('User selected %s', selection.get_absolute_path)
16
+ # end
16
17
  # end
17
18
  # ...
18
19
  class Propane::App
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  java_import Java::MonkstoneCore::LibraryProxy
2
4
  java_import Java::ProcessingEvent::KeyEvent
3
5
  java_import Java::ProcessingEvent::MouseEvent
data/library/net/net.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # @TODO usage
2
4
  class Propane::App
3
5
  java_import Java::ProcessingNet::Client
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # Here's a little library for quickly hooking up in sketch sliders.
3
- # Copyright (c) 2016-19 Martin Prout.
4
+ # Copyright (c) 2015-20 Martin Prout.
4
5
 
5
6
  java_import 'monkstone.slider.CustomHorizontalSlider'
6
7
  java_import 'monkstone.slider.CustomVerticalSlider'
@@ -9,27 +10,27 @@ java_import 'monkstone.slider.CustomVerticalSlider'
9
10
  module Slider
10
11
  def self.slider(app:, x:, y:, name:, **opts)
11
12
  options = default.merge opts
12
- if options[:vertical]
13
- slider = CustomVerticalSlider.new(
14
- app,
15
- x,
16
- y,
17
- options[:length],
18
- options[:range].first,
19
- options[:range].last,
20
- name
21
- )
22
- else
23
- slider = CustomHorizontalSlider.new(
24
- app,
25
- x,
26
- y,
27
- options[:length],
28
- options[:range].first,
29
- options[:range].last,
30
- name
31
- )
32
- end
13
+ slider = if options[:vertical]
14
+ CustomVerticalSlider.new(
15
+ app,
16
+ x,
17
+ y,
18
+ options[:length],
19
+ options[:range].first,
20
+ options[:range].last,
21
+ name
22
+ )
23
+ else
24
+ CustomHorizontalSlider.new(
25
+ app,
26
+ x,
27
+ y,
28
+ options[:length],
29
+ options[:range].first,
30
+ options[:range].last,
31
+ name
32
+ )
33
+ end
33
34
  unless opts.empty?
34
35
  slider.bar_width(opts.fetch(:bar_width, 10))
35
36
  slider.set_value(opts.fetch(:initial_value, 0))
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  PHI ||= (1 + Math.sqrt(5)) / 2 # golden ratio
2
4
  GA = PHI * 2 * Math::PI # golden angle
3
5
 
@@ -48,6 +50,7 @@ module VectorUtil
48
50
  def self.cartesian_to_polar(vec:)
49
51
  res = Vec3D.new(vec.mag, 0, 0)
50
52
  return Vec3D.new unless res.x > 0
53
+
51
54
  res.y = -Math.atan2(vec.z, vec.x)
52
55
  res.z = Math.asin(vec.y / res.x)
53
56
  res
@@ -64,6 +67,7 @@ module VectorUtil
64
67
 
65
68
  def self.polar_to_cartesian(vec:)
66
69
  return Vec3D.new if vec.mag <= 0
70
+
67
71
  Vec3D.new(Math.asin(vec.y / vec.mag), vec.mag, -Math.atan2(vec.z, vec.x))
68
72
  end
69
73
  end