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.
- checksums.yaml +4 -4
- data/.mvn/extensions.xml +1 -1
- data/.mvn/wrapper/MavenWrapperDownloader.java +2 -2
- data/.mvn/wrapper/maven-wrapper.properties +2 -2
- data/.travis.yml +1 -1
- data/CHANGELOG.md +9 -1
- data/Gemfile +2 -0
- data/README.md +7 -10
- data/Rakefile +10 -11
- data/bin/propane +3 -1
- data/lib/propane.rb +4 -2
- data/lib/propane/app.rb +5 -1
- data/lib/propane/creators/sketch_class.rb +7 -1
- data/lib/propane/creators/sketch_factory.rb +4 -2
- data/lib/propane/creators/sketch_writer.rb +1 -0
- data/lib/propane/helper_methods.rb +22 -23
- data/lib/propane/helpers/numeric.rb +2 -0
- data/lib/propane/helpers/version_error.rb +1 -0
- data/lib/propane/library.rb +5 -1
- data/lib/propane/library_loader.rb +2 -0
- data/lib/propane/native_folder.rb +10 -9
- data/lib/propane/native_loader.rb +3 -0
- data/lib/propane/runner.rb +20 -14
- data/lib/propane/version.rb +2 -1
- data/library/boids/boids.rb +21 -11
- data/library/color_group/color_group.rb +2 -0
- data/library/control_panel/control_panel.rb +8 -5
- data/library/dxf/dxf.rb +2 -0
- data/library/file_chooser/chooser.rb +10 -9
- data/library/file_chooser/file_chooser.rb +10 -9
- data/library/library_proxy/library_proxy.rb +2 -0
- data/library/net/net.rb +2 -0
- data/library/slider/slider.rb +23 -22
- data/library/vector_utils/vector_utils.rb +4 -0
- data/library/video_event/video_event.rb +2 -0
- data/pom.rb +37 -36
- data/pom.xml +7 -7
- data/propane.gemspec +13 -9
- data/src/main/java/japplemenubar/JAppleMenuBar.java +3 -3
- data/src/main/java/monkstone/ColorUtil.java +1 -3
- data/src/main/java/monkstone/MathToolModule.java +1 -1
- data/src/main/java/monkstone/PropaneLibrary.java +2 -2
- data/src/main/java/monkstone/fastmath/DegLutTables.java +111 -0
- data/src/main/java/monkstone/fastmath/Deglut.java +6 -56
- data/src/main/java/monkstone/filechooser/Chooser.java +1 -1
- data/src/main/java/monkstone/noise/Noise.java +116 -0
- data/src/main/java/monkstone/noise/NoiseGenerator.java +63 -0
- data/src/main/java/monkstone/noise/NoiseMode.java +15 -0
- data/src/main/java/monkstone/noise/SimplexNoise.java +137 -103
- data/src/main/java/monkstone/noise/ValueNoise.java +170 -0
- data/src/main/java/monkstone/slider/CustomHorizontalSlider.java +1 -1
- data/src/main/java/monkstone/slider/CustomVerticalSlider.java +1 -1
- data/src/main/java/monkstone/slider/SimpleHorizontalSlider.java +1 -1
- data/src/main/java/monkstone/slider/SimpleVerticalSlider.java +1 -1
- data/src/main/java/monkstone/slider/SliderBar.java +1 -1
- data/src/main/java/monkstone/slider/SliderGroup.java +1 -1
- data/src/main/java/monkstone/slider/WheelHandler.java +1 -1
- data/src/main/java/monkstone/vecmath/package-info.java +1 -1
- data/src/main/java/monkstone/vecmath/vec2/Vec2.java +1 -1
- data/src/main/java/monkstone/vecmath/vec3/Vec3.java +1 -2
- data/src/main/java/monkstone/videoevent/CaptureEvent.java +1 -1
- data/src/main/java/monkstone/videoevent/MovieEvent.java +1 -1
- data/src/main/java/monkstone/videoevent/package-info.java +1 -1
- data/src/main/java/processing/awt/PGraphicsJava2D.java +781 -285
- data/src/main/java/processing/awt/PImageAWT.java +377 -0
- data/src/main/java/processing/awt/PShapeJava2D.java +56 -52
- data/src/main/java/processing/awt/PSurfaceAWT.java +308 -208
- data/src/main/java/processing/awt/ShimAWT.java +581 -0
- data/src/main/java/processing/core/PApplet.java +13142 -13883
- data/src/main/java/processing/core/PConstants.java +477 -447
- data/src/main/java/processing/core/PFont.java +914 -880
- data/src/main/java/processing/core/PGraphics.java +152 -136
- data/src/main/java/processing/core/PImage.java +275 -372
- data/src/main/java/processing/core/PMatrix.java +172 -159
- data/src/main/java/processing/core/PMatrix2D.java +478 -415
- data/src/main/java/processing/core/PMatrix3D.java +762 -735
- data/src/main/java/processing/core/PShape.java +2887 -2651
- data/src/main/java/processing/core/PShapeOBJ.java +97 -92
- data/src/main/java/processing/core/PShapeSVG.java +1705 -1490
- data/src/main/java/processing/core/PStyle.java +40 -37
- data/src/main/java/processing/core/PSurface.java +139 -97
- data/src/main/java/processing/core/PSurfaceNone.java +296 -218
- data/src/main/java/processing/core/PVector.java +995 -963
- data/src/main/java/processing/core/ThinkDifferent.java +12 -8
- data/src/main/java/processing/data/DoubleDict.java +756 -710
- data/src/main/java/processing/data/DoubleList.java +749 -696
- data/src/main/java/processing/data/FloatDict.java +748 -702
- data/src/main/java/processing/data/FloatList.java +751 -697
- data/src/main/java/processing/data/IntDict.java +720 -673
- data/src/main/java/processing/data/IntList.java +699 -633
- data/src/main/java/processing/data/JSONArray.java +931 -873
- data/src/main/java/processing/data/JSONObject.java +1262 -1165
- data/src/main/java/processing/data/JSONTokener.java +351 -341
- data/src/main/java/processing/data/LongDict.java +710 -663
- data/src/main/java/processing/data/LongList.java +701 -635
- data/src/main/java/processing/data/Sort.java +37 -41
- data/src/main/java/processing/data/StringDict.java +525 -486
- data/src/main/java/processing/data/StringList.java +626 -580
- data/src/main/java/processing/data/Table.java +3690 -3510
- data/src/main/java/processing/data/TableRow.java +182 -183
- data/src/main/java/processing/data/XML.java +957 -883
- data/src/main/java/processing/event/Event.java +87 -67
- data/src/main/java/processing/event/KeyEvent.java +48 -41
- data/src/main/java/processing/event/MouseEvent.java +88 -113
- data/src/main/java/processing/event/TouchEvent.java +10 -6
- data/src/main/java/processing/javafx/PGraphicsFX2D.java +20 -345
- data/src/main/java/processing/javafx/PSurfaceFX.java +149 -121
- data/src/main/java/processing/net/Client.java +20 -20
- data/src/main/java/processing/net/Server.java +9 -9
- data/src/main/java/processing/opengl/FontTexture.java +286 -266
- data/src/main/java/processing/opengl/FrameBuffer.java +389 -377
- data/src/main/java/processing/opengl/LinePath.java +132 -89
- data/src/main/java/processing/opengl/LineStroker.java +588 -581
- data/src/main/java/processing/opengl/PGL.java +660 -567
- data/src/main/java/processing/opengl/PGraphics2D.java +408 -315
- data/src/main/java/processing/opengl/PGraphics3D.java +107 -72
- data/src/main/java/processing/opengl/PGraphicsOpenGL.java +12378 -12075
- data/src/main/java/processing/opengl/PJOGL.java +1753 -1670
- data/src/main/java/processing/opengl/PShader.java +369 -461
- data/src/main/java/processing/opengl/PShapeOpenGL.java +4678 -4580
- data/src/main/java/processing/opengl/PSurfaceJOGL.java +1114 -1027
- data/src/main/java/processing/opengl/Texture.java +1492 -1401
- data/src/main/java/processing/opengl/VertexBuffer.java +57 -55
- data/test/create_test.rb +21 -20
- data/test/deglut_spec_test.rb +4 -2
- data/test/helper_methods_test.rb +49 -20
- data/test/math_tool_test.rb +39 -32
- data/test/native_folder.rb +47 -0
- data/test/respond_to_test.rb +3 -2
- data/test/sketches/key_event.rb +2 -2
- data/test/sketches/library/my_library/my_library.rb +3 -0
- data/test/test_helper.rb +2 -0
- data/test/vecmath_spec_test.rb +35 -22
- data/vendors/Rakefile +35 -40
- metadata +47 -23
- data/library/simplex_noise/simplex_noise.rb +0 -3
- data/src/main/java/processing/opengl/shaders/LightVert-brcm.glsl +0 -154
- data/src/main/java/processing/opengl/shaders/LightVert-vc4.glsl +0 -154
- data/src/main/java/processing/opengl/shaders/TexLightVert-brcm.glsl +0 -160
- data/src/main/java/processing/opengl/shaders/TexLightVert-vc4.glsl +0 -160
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5df47b4eba645e3b5de5e4c6bbcd5af6c2955cc2e34c326fcb712b967d272c2e
|
4
|
+
data.tar.gz: fd791b044c4780f082aa2f6660a7818266603fd6fdcbb6463c8af6c42e34a41d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49bab01156deeea38dc4710486fa371dc93a0b0056f7e93d5110fc2343f4477093fcbd2cc50cc7d3153668916d80ed1dff74a0e3fdcce652784d0d6d8d99c90a
|
7
|
+
data.tar.gz: 752c53bb1719652fc1b11514add89b0dff33b2dba23b72ed44db0c58a3d86b99373d1f69f7d928c12e829fb4d1b942da89805d3d4dc3c427bcc36477d60abd75
|
data/.mvn/extensions.xml
CHANGED
@@ -20,7 +20,7 @@ import java.util.Properties;
|
|
20
20
|
|
21
21
|
public class MavenWrapperDownloader {
|
22
22
|
|
23
|
-
private static final String WRAPPER_VERSION = "0.5.
|
23
|
+
private static final String WRAPPER_VERSION = "0.5.6";
|
24
24
|
/**
|
25
25
|
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
|
26
26
|
*/
|
@@ -89,7 +89,7 @@ public class MavenWrapperDownloader {
|
|
89
89
|
System.exit(0);
|
90
90
|
} catch (Throwable e) {
|
91
91
|
System.out.println("- Error downloading");
|
92
|
-
|
92
|
+
|
93
93
|
System.exit(1);
|
94
94
|
}
|
95
95
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.
|
2
|
-
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.
|
1
|
+
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
|
2
|
+
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,14 @@
|
|
1
|
+
**v3.8.0** Refactor noise to delegate pattern, improve default implementation and add simplex noise option
|
2
|
+
|
3
|
+
**v3.7.1** Recommend JRuby-9.2.15.0 use
|
4
|
+
|
5
|
+
**v3.5.0** Rebase processing core code around Sam Pottingers latest fixes for JOGL an image save, does mean breaking some of Diwis and Joshua Davis examples, but one hopes codeanticode knows what he's doing.
|
6
|
+
|
7
|
+
**v3.4.3** Use Map.of to initialize HashMap bump processing version in build bump to jruby-9.2.11.0
|
8
|
+
|
1
9
|
**v3.4.2** Fix native library bug on windows (thanks to Jay Scott). Add minim library examples
|
2
10
|
|
3
|
-
**v3.4.1** Update to
|
11
|
+
**v3.4.1** Update to jruby-9.2.9.0
|
4
12
|
|
5
13
|
**v3.4.0** Experimental refactoring of ThinkDifferent, and some other processing classes
|
6
14
|
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -8,12 +8,10 @@ adjust above for your OS/distro setup.
|
|
8
8
|
|
9
9
|
## Requirements
|
10
10
|
|
11
|
-
|
11
|
+
Previously there has been linker issue with P2D or P3D sketches with stock openjdk with some linux distros, but that seems to have gone away. [Adopt open jdk binaries][adopt] have always worked.
|
12
12
|
|
13
|
-
- `jdk-11.0.
|
14
|
-
- `jruby-9.2.
|
15
|
-
|
16
|
-
Currently you can ignore `illegal reflective access` warnings, see [here how to suppress them][warning].
|
13
|
+
- `jdk-11.0.7+`
|
14
|
+
- `jruby-9.2.16.0`
|
17
15
|
|
18
16
|
## Building and testing
|
19
17
|
|
@@ -27,10 +25,10 @@ rake javadoc
|
|
27
25
|
|
28
26
|
```bash
|
29
27
|
jgem install propane # from rubygems
|
30
|
-
jgem install propane-3.
|
28
|
+
jgem install propane-3.8.0-java.gem # local install
|
31
29
|
# Alternative
|
32
30
|
jruby -S gem install propane # from rubygems
|
33
|
-
jruby -S gem install propane-3.
|
31
|
+
jruby -S gem install propane-3.8.0-java.gem # local install
|
34
32
|
```
|
35
33
|
|
36
34
|
## Check Install
|
@@ -39,7 +37,6 @@ To check version and confirm gem bin files are on your path (also checks JDK ver
|
|
39
37
|
```bash
|
40
38
|
propane --version
|
41
39
|
```
|
42
|
-
|
43
40
|
## Usage
|
44
41
|
|
45
42
|
A propane sketch:-
|
@@ -91,12 +88,12 @@ See [gh-pages][gh-pages] for more detailed instructions and much more.
|
|
91
88
|
|
92
89
|
## Examples
|
93
90
|
|
94
|
-
[Worked Examples](https://github.com/ruby-processing/propane-examples) more to follow, feel free to add your own, especially ruby-2.
|
91
|
+
[Worked Examples](https://github.com/ruby-processing/propane-examples) more to follow, feel free to add your own, especially ruby-2.5
|
95
92
|
+ syntax now we can. To install the samples. The samples get copied to `~/propane_samples`. Depends on wget.
|
96
93
|
```bash
|
97
94
|
propane --install samples
|
98
95
|
```
|
99
|
-
please move existing `propane_samples` if you wish to keep them. The current release features
|
96
|
+
please move existing `propane_samples` if you wish to keep them. The current release features some noise sketches that exploit the new choice of noise implementation.
|
100
97
|
|
101
98
|
[adopt]: https://adoptopenjdk.net/
|
102
99
|
[building]:http://ruby-processing.github.io/building/building/
|
data/Rakefile
CHANGED
@@ -1,18 +1,17 @@
|
|
1
1
|
# frozen_string_literal: false
|
2
|
+
|
2
3
|
require_relative 'lib/propane/version'
|
3
4
|
|
4
|
-
task default: [
|
5
|
+
task default: %i[init compile install test gem]
|
5
6
|
|
6
|
-
# depends on
|
7
|
+
# Currently depends on local jogl-2.4.0 jars on path ~/jogl24
|
7
8
|
desc 'Copy Jars'
|
8
9
|
task :init do
|
9
|
-
|
10
|
-
|
11
|
-
jar_dir = File.join(processing_root, 'core', 'library')
|
12
|
-
opengl = Dir.entries(jar_dir).grep(/amd64|macosx-universal/)
|
10
|
+
jogl24 = File.join(ENV['HOME'], 'jogl24')
|
11
|
+
opengl = Dir.entries(jogl24).grep(/amd64|universal|arm64/).select { |jar| jar =~ /linux|windows|macosx|ios|/ }
|
13
12
|
opengl.concat %w[jogl-all.jar gluegen-rt.jar]
|
14
13
|
opengl.each do |gl|
|
15
|
-
FileUtils.cp(File.join(
|
14
|
+
FileUtils.cp(File.join(jogl24, gl), File.join('.', 'lib'))
|
16
15
|
end
|
17
16
|
end
|
18
17
|
|
@@ -23,17 +22,17 @@ end
|
|
23
22
|
|
24
23
|
desc 'Gem'
|
25
24
|
task :gem do
|
26
|
-
sh '
|
25
|
+
sh 'jgem build propane.gemspec'
|
27
26
|
end
|
28
27
|
|
29
28
|
desc 'Document'
|
30
29
|
task :javadoc do
|
31
|
-
|
30
|
+
sh './mvnw javadoc:javadoc'
|
32
31
|
end
|
33
32
|
|
34
33
|
desc 'Compile'
|
35
34
|
task :compile do
|
36
|
-
|
35
|
+
sh './mvnw package'
|
37
36
|
end
|
38
37
|
|
39
38
|
desc 'JRuby-Complete'
|
@@ -53,7 +52,7 @@ end
|
|
53
52
|
|
54
53
|
desc 'clean'
|
55
54
|
task :clean do
|
56
|
-
Dir[
|
55
|
+
Dir['./**/*.{jar,gem}'].each do |path|
|
57
56
|
puts "Deleting #{path} ..."
|
58
57
|
File.delete(path)
|
59
58
|
end
|
data/bin/propane
CHANGED
data/lib/propane.rb
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'java'
|
3
4
|
unless defined? PROPANE_ROOT
|
4
5
|
$LOAD_PATH << File.dirname(__dir__)
|
5
6
|
PROPANE_ROOT = File.dirname(__dir__)
|
6
7
|
end
|
7
|
-
Dir["#{PROPANE_ROOT}/lib/*.jar"].each do |jar|
|
8
|
+
Dir["#{PROPANE_ROOT}/lib/*.jar"].sort.each do |jar|
|
8
9
|
require jar
|
9
10
|
end
|
10
|
-
|
11
|
+
require "#{PROPANE_ROOT}/lib/propane/app"
|
12
|
+
require "#{PROPANE_ROOT}/lib/propane/helpers/numeric"
|
data/lib/propane/app.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: false
|
2
2
|
|
3
|
+
require 'jruby'
|
3
4
|
require_relative 'helper_methods'
|
4
5
|
require_relative 'library_loader'
|
5
6
|
|
@@ -15,6 +16,9 @@ module Propane
|
|
15
16
|
java_import 'monkstone.vecmath.ShapeRender'
|
16
17
|
end
|
17
18
|
|
19
|
+
VALUE = Java::MonkstoneNoise::NoiseMode::PERLIN
|
20
|
+
SIMPLEX = Java::MonkstoneNoise::NoiseMode::SIMPLEX
|
21
|
+
|
18
22
|
# This class is the base class the user should inherit from when making
|
19
23
|
# their own sketch.
|
20
24
|
#
|
@@ -132,7 +136,7 @@ module Propane
|
|
132
136
|
@width ||= w
|
133
137
|
@height ||= h
|
134
138
|
@render_mode ||= mode
|
135
|
-
import_opengl if /opengl
|
139
|
+
import_opengl if /opengl/.match?(mode)
|
136
140
|
super(*args)
|
137
141
|
end
|
138
142
|
|
@@ -5,7 +5,10 @@ class SketchClass
|
|
5
5
|
attr_reader :name, :width, :height, :mode
|
6
6
|
|
7
7
|
def initialize(name:, width: 150, height: 150, mode: nil)
|
8
|
-
@name
|
8
|
+
@name = name
|
9
|
+
@width = width
|
10
|
+
@height = height
|
11
|
+
@mode = mode
|
9
12
|
end
|
10
13
|
|
11
14
|
def class_sketch
|
@@ -26,6 +29,7 @@ class SketchClass
|
|
26
29
|
|
27
30
|
def size
|
28
31
|
return format(' size %d, %d', width.to_i, height.to_i) unless mode
|
32
|
+
|
29
33
|
format(' size %d, %d, %s', width.to_i, height.to_i, mode.upcase)
|
30
34
|
end
|
31
35
|
|
@@ -36,6 +40,7 @@ class SketchClass
|
|
36
40
|
|
37
41
|
def method_lines(name, content = nil)
|
38
42
|
return [format(' def %s', name), '', ' end'] unless content
|
43
|
+
|
39
44
|
[format(' def %s', name), content, ' end', '']
|
40
45
|
end
|
41
46
|
|
@@ -43,6 +48,7 @@ class SketchClass
|
|
43
48
|
lines = [
|
44
49
|
'#!/usr/bin/env jruby',
|
45
50
|
'# frozen_string_literal: false',
|
51
|
+
'',
|
46
52
|
"require 'propane'",
|
47
53
|
'',
|
48
54
|
class_sketch
|
@@ -1,8 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'sketch_writer'
|
2
4
|
|
3
5
|
class SketchFactory
|
4
|
-
NAMES = %w[One Two Three]
|
5
|
-
def initialize(
|
6
|
+
NAMES = %w[One Two Three].freeze
|
7
|
+
def initialize(_argc)
|
6
8
|
NAMES.each do |name|
|
7
9
|
SketchWriter.new(File.basename(name, '.rb'), width: 300, height: 300).write
|
8
10
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: false
|
2
|
+
|
2
3
|
# processing module wrapper
|
3
|
-
require_relative 'helpers/numeric'
|
4
4
|
module Propane
|
5
5
|
# Provides some convenience methods
|
6
6
|
module HelperMethods
|
@@ -52,6 +52,7 @@ module Propane
|
|
52
52
|
|
53
53
|
def color(*args)
|
54
54
|
return super(*args) unless args.length == 1
|
55
|
+
|
55
56
|
super(hex_color(args[0]))
|
56
57
|
end
|
57
58
|
|
@@ -66,11 +67,8 @@ module Propane
|
|
66
67
|
# Overrides Processing convenience function thread, which takes a String
|
67
68
|
# arg (for a function) to more rubylike version, takes a block...
|
68
69
|
def thread(&block)
|
69
|
-
|
70
|
-
|
71
|
-
else
|
72
|
-
raise ArgumentError, 'thread must be called with a block', caller
|
73
|
-
end
|
70
|
+
warn 'A Block is Needed' unless block_given?
|
71
|
+
Java::JavaLang::Thread.new(&block).start
|
74
72
|
end
|
75
73
|
|
76
74
|
# explicitly provide 'processing.org' min instance method
|
@@ -94,9 +92,9 @@ module Propane
|
|
94
92
|
def dist(*args)
|
95
93
|
case args.length
|
96
94
|
when 4
|
97
|
-
|
95
|
+
dist2d(*args)
|
98
96
|
when 6
|
99
|
-
|
97
|
+
dist3d(*args)
|
100
98
|
else
|
101
99
|
raise ArgumentError, 'takes 4 or 6 parameters'
|
102
100
|
end
|
@@ -111,13 +109,13 @@ module Propane
|
|
111
109
|
# Here's a convenient way to look for them.
|
112
110
|
def find_method(method_name)
|
113
111
|
reg = Regexp.new(method_name.to_s, true)
|
114
|
-
methods.sort.select { |meth| reg.match(meth) }
|
112
|
+
methods.sort.select { |meth| reg.match?(meth) }
|
115
113
|
end
|
116
114
|
|
117
115
|
# Proxy over a list of Java declared fields that have the same name as
|
118
116
|
# some methods. Add to this list as needed.
|
119
117
|
def proxy_java_fields
|
120
|
-
fields = %w
|
118
|
+
fields = %w[key frameRate mousePressed keyPressed]
|
121
119
|
methods = fields.map { |field| java_class.declared_field(field) }
|
122
120
|
@declared_fields = Hash[fields.zip(methods)]
|
123
121
|
end
|
@@ -163,6 +161,7 @@ module Propane
|
|
163
161
|
# frame_rate needs to support reading and writing
|
164
162
|
def frame_rate(fps = nil)
|
165
163
|
return @declared_fields['frameRate'].value(java_self) unless fps
|
164
|
+
|
166
165
|
super(fps)
|
167
166
|
end
|
168
167
|
|
@@ -178,21 +177,19 @@ module Propane
|
|
178
177
|
|
179
178
|
private
|
180
179
|
|
181
|
-
INTEGER_COL = -> (x) { x.is_a?(Integer) }
|
182
|
-
STRING_COL = -> (x) { x.is_a?(String) }
|
183
|
-
FLOAT_COL = -> (x) { x.is_a?(Float) }
|
184
180
|
# parse single argument color int/double/String
|
185
|
-
def hex_color(
|
186
|
-
case
|
187
|
-
when
|
188
|
-
Java::Monkstone::ColorUtil.colorLong(
|
189
|
-
when
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
181
|
+
def hex_color(arg)
|
182
|
+
case arg
|
183
|
+
when Integer
|
184
|
+
Java::Monkstone::ColorUtil.colorLong(arg)
|
185
|
+
when String
|
186
|
+
raise 'Dodgy Hexstring' unless /#\h{6}$/.match?(arg)
|
187
|
+
|
188
|
+
Java::Monkstone::ColorUtil.colorString(arg)
|
189
|
+
when Float
|
190
|
+
Java::Monkstone::ColorUtil.colorDouble(arg)
|
194
191
|
else
|
195
|
-
raise
|
192
|
+
raise 'Dodgy Color Conversion'
|
196
193
|
end
|
197
194
|
end
|
198
195
|
|
@@ -200,6 +197,7 @@ module Propane
|
|
200
197
|
dx = args[0] - args[2]
|
201
198
|
dy = args[1] - args[3]
|
202
199
|
return 0 if dx.abs < EPSILON && dy.abs < EPSILON
|
200
|
+
|
203
201
|
Math.hypot(dx, dy)
|
204
202
|
end
|
205
203
|
|
@@ -208,6 +206,7 @@ module Propane
|
|
208
206
|
dy = args[1] - args[4]
|
209
207
|
dz = args[2] - args[5]
|
210
208
|
return 0 if dx.abs < EPSILON && dy.abs < EPSILON && dz.abs < EPSILON
|
209
|
+
|
211
210
|
Math.sqrt(dx * dx + dy * dy + dz * dz)
|
212
211
|
end
|
213
212
|
end
|
data/lib/propane/library.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'native_folder'
|
2
4
|
require_relative 'native_loader'
|
3
5
|
require 'pathname'
|
@@ -18,6 +20,7 @@ class Library
|
|
18
20
|
return if (@path = Pathname.new(
|
19
21
|
File.join(PROPANE_ROOT, 'library', name, "#{name}.rb")
|
20
22
|
)).exist?
|
23
|
+
|
21
24
|
locate_java
|
22
25
|
end
|
23
26
|
|
@@ -46,10 +49,11 @@ class Library
|
|
46
49
|
end
|
47
50
|
|
48
51
|
def load_jars
|
49
|
-
Dir.glob("#{dir}/*.jar").each do |jar|
|
52
|
+
Dir.glob("#{dir}/*.jar").sort.each do |jar|
|
50
53
|
require jar
|
51
54
|
end
|
52
55
|
return true unless native_binaries?
|
56
|
+
|
53
57
|
add_binaries_to_classpath
|
54
58
|
end
|
55
59
|
|