propane 2.0.4-java → 2.0.5-java
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 +4 -4
- data/.mvn/extensions.xml +1 -1
- data/CHANGELOG.md +4 -0
- data/Rakefile +1 -1
- data/lib/propane/library_loader.rb +1 -0
- data/lib/propane/version.rb +1 -1
- data/library/library_proxy/README.md +99 -0
- data/library/library_proxy/library_proxy.rb +12 -0
- data/pom.rb +10 -10
- data/pom.xml +4 -4
- data/propane.gemspec +3 -3
- data/src/monkstone/core/{AbstractLibrary.java → LibraryProxy.java} +14 -9
- data/vendors/Rakefile +1 -1
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5794ce5b552d6e659f1f8be32ddf767a6a1dc62b
|
4
|
+
data.tar.gz: 2df804a15ad3310758a389505f7dd662e94c95f6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57cd3ed713c358931fb654e1d15408db641962bfcddc3a617c064a1bfe67263d4e691757ec85525a146a46a8d7bef373092effac79346290e54f79c9d6fd5f2c
|
7
|
+
data.tar.gz: 3719b85da86446105118d3e1e688264d2fa26c40c083d3e25b1b63716c16e4258005a8eb91918fa6a525b1557f404852a95317fc1ea5f251faddceb541aac1c3
|
data/.mvn/extensions.xml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
|
+
**v2.0.5** Update to processing-3.2.2, fix local library load, add proxy_library expand samples
|
2
|
+
|
1
3
|
**v2.0.4** Correct `norm_strict`, add `math_tool_test` add `simplex_noise` expand samples
|
4
|
+
|
2
5
|
**v2.0.3** Suggest use of jruby-9.1.4.0, more about loading vanilla libraries
|
6
|
+
|
3
7
|
**v2.0.2** Refactor install to either install `samples\sound\video` or warn (update to use a local processing-3.2.1 core, this is why travis fails), fix some examples, hence `0.3`
|
4
8
|
|
5
9
|
**v2.0.1** Support processing-3.2.0
|
data/Rakefile
CHANGED
@@ -7,7 +7,7 @@ def create_manifest
|
|
7
7
|
File.open('MANIFEST.MF', 'w') do |f|
|
8
8
|
f.puts(title)
|
9
9
|
f.puts(version)
|
10
|
-
f.puts('Class-Path: core-3.2.
|
10
|
+
f.puts('Class-Path: core-3.2.2.jar gluegen-rt-2.3.2.jar jog-all-2.3.2.jar')
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
@@ -98,6 +98,7 @@ module Propane
|
|
98
98
|
extensions = extension ? [extension] : %w(jar rb)
|
99
99
|
extensions.each do |ext|
|
100
100
|
[
|
101
|
+
"#{SKETCH_ROOT}/library/#{library_name}",
|
101
102
|
"#{PROPANE_ROOT}/library/#{library_name}",
|
102
103
|
"#{PROPANE_ROOT}/library/#{library_name}/library",
|
103
104
|
"#{PROPANE_ROOT}/library/#{library_name}",
|
data/lib/propane/version.rb
CHANGED
@@ -0,0 +1,99 @@
|
|
1
|
+
### Using the LibraryProxy in your sketches
|
2
|
+
LibraryProxy is a [abstract java class](https://github.com/ruby-processing/JRubyArt/blob/master/src/monkstone/core/LibraryProxy.java) so that you can acccess vanilla processing library reflection methods in your sketches using ruby.
|
3
|
+
|
4
|
+
In the sketch you should `load_library :library_proxy` and your library class should inherit
|
5
|
+
from LibraryProxy and implement pre(), draw() and post() methods (can be empty method if not
|
6
|
+
required). For simplicity initialize your `processing library` in the sketch `setup`.
|
7
|
+
|
8
|
+
### Example library
|
9
|
+
|
10
|
+
```ruby
|
11
|
+
require 'forwardable'
|
12
|
+
|
13
|
+
# A custom Array created using forwardable (that can also access the PApplet pre,
|
14
|
+
# post and draw loops by extending our new LibraryProxy class. Also has access
|
15
|
+
# to custom background(int), fill(int) and stroke(int) methods.
|
16
|
+
class CustomArray < LibraryProxy
|
17
|
+
extend Forwardable
|
18
|
+
def_delegators(:@objs, :each, :<<)
|
19
|
+
include Enumerable
|
20
|
+
|
21
|
+
attr_reader :app
|
22
|
+
|
23
|
+
# We must initialize class with the PApplet instance
|
24
|
+
def initialize(app)
|
25
|
+
@app = app
|
26
|
+
@objs = []
|
27
|
+
end
|
28
|
+
|
29
|
+
def add_object(mx, my, x, y, speed)
|
30
|
+
self << Particle.new(x.to_i, y.to_i, mx, my, Sketch::UNIT, speed, 1, 1)
|
31
|
+
end
|
32
|
+
|
33
|
+
# Access the processing post loop (gets called after draw)
|
34
|
+
def post
|
35
|
+
each do |obj|
|
36
|
+
update_x obj
|
37
|
+
next unless obj.y >= Sketch::UNIT || obj.x <= 0
|
38
|
+
obj.ydir *= -1
|
39
|
+
obj.y += obj.ydir
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def update_x(obj)
|
44
|
+
obj.x += obj.speed * obj.xdir
|
45
|
+
return if (0..Sketch::UNIT).cover? obj.x
|
46
|
+
obj.xdir *= -1
|
47
|
+
obj.x += obj.xdir
|
48
|
+
obj.y += obj.ydir
|
49
|
+
end
|
50
|
+
|
51
|
+
# We need this to fulfill the contract of implementing abstract methods of
|
52
|
+
# LibraryProxy which is an alias for Java::ProcessingCore::AbstractLibrary
|
53
|
+
def pre
|
54
|
+
end
|
55
|
+
|
56
|
+
# Access the processing draw loop here, using our custom background and fill
|
57
|
+
# note: use of 'app' to access ellipse functionality as would otherwise be
|
58
|
+
# required for background and fill
|
59
|
+
def draw
|
60
|
+
background(0)
|
61
|
+
fill(255)
|
62
|
+
each do |obj|
|
63
|
+
app.ellipse(obj.mx + obj.x, obj.my + obj.y, 6, 6)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# The Particle object
|
69
|
+
|
70
|
+
Particle = Struct.new(:x, :y, :mx, :my, :size, :speed, :xdir, :ydir)
|
71
|
+
```
|
72
|
+
### Example sketch
|
73
|
+
|
74
|
+
```ruby
|
75
|
+
# A minimalist sketch that demonstrates a possible approach to creating a custom
|
76
|
+
# array of objects using forwardable. Also demonstrates how to use LibraryProxy.
|
77
|
+
|
78
|
+
load_library :library_proxy # loads the JRubyArt LibraryProxy abstract class
|
79
|
+
require_relative 'custom_array' # loads our custom 'library' class
|
80
|
+
|
81
|
+
UNIT = 40
|
82
|
+
|
83
|
+
def setup
|
84
|
+
size 640, 360
|
85
|
+
wide_count = width / UNIT
|
86
|
+
height_count = height / UNIT
|
87
|
+
custom_array = CustomArray.new(self)
|
88
|
+
height_count.times do |i|
|
89
|
+
wide_count.times do |j|
|
90
|
+
custom_array.add_object(j * UNIT, i * UNIT, UNIT / 2, UNIT / 2, rand(0.05..0.8))
|
91
|
+
end
|
92
|
+
end
|
93
|
+
no_stroke
|
94
|
+
end
|
95
|
+
|
96
|
+
# does nothing here see custom_array.rb
|
97
|
+
def draw
|
98
|
+
end
|
99
|
+
```
|
@@ -0,0 +1,12 @@
|
|
1
|
+
java_import Java::MonkstoneCore::LibraryProxy
|
2
|
+
|
3
|
+
|
4
|
+
# classes that inherit from Library are expected to implement
|
5
|
+
# the abstract methods of monkstone.core.LibraryProxy
|
6
|
+
# def pre...
|
7
|
+
# def draw...
|
8
|
+
# def post...
|
9
|
+
# def keyPressed...
|
10
|
+
# def mousePressed...
|
11
|
+
# NOOP is fine...
|
12
|
+
# `app` can be called to get PApplet instance
|
data/pom.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'fileutils'
|
2
2
|
project 'rp5extras', 'https://github.com/monkstone/propane' do
|
3
3
|
model_version '4.0.0'
|
4
|
-
id 'propane:propane', '2.0.
|
4
|
+
id 'propane:propane', '2.0.5'
|
5
5
|
packaging 'jar'
|
6
6
|
description 'rp5extras for propane'
|
7
7
|
organization 'ruby-processing', 'https://ruby-processing.github.io'
|
@@ -11,15 +11,15 @@ project 'rp5extras', 'https://github.com/monkstone/propane' do
|
|
11
11
|
roles 'developer'
|
12
12
|
end
|
13
13
|
end
|
14
|
-
license 'GPL 3', 'http://www.gnu.org/licenses/gpl-3.0-standalone.html'
|
14
|
+
license 'GPL 3', 'http://www.gnu.org/licenses/gpl-3.0-standalone.html'
|
15
15
|
issue_management 'https://github.com/ruby-processing/propane/issues', 'Github'
|
16
|
-
|
16
|
+
|
17
17
|
source_control(
|
18
18
|
url: 'https://github.com/ruby-processing/propane',
|
19
19
|
connection: 'scm:git:git://github.com/ruby-processing/propane.git',
|
20
20
|
developer_connection: 'scm:git:git@github.com/ruby-processing/propane.git'
|
21
21
|
)
|
22
|
-
|
22
|
+
|
23
23
|
properties('source.directory' => 'src',
|
24
24
|
'propane.basedir' => '${project.basedir}',
|
25
25
|
'polyglot.dump.pom' => 'pom.xml',
|
@@ -31,20 +31,20 @@ project 'rp5extras', 'https://github.com/monkstone/propane' do
|
|
31
31
|
'jruby.api' => 'http://jruby.org/apidocs/',
|
32
32
|
'jogl.version' => '2.3.2'
|
33
33
|
)
|
34
|
-
|
34
|
+
|
35
35
|
pom 'org.jruby:jruby:9.1.5.0'
|
36
|
-
jar 'org.processing:core:3.2.
|
36
|
+
jar 'org.processing:core:3.2.2'
|
37
37
|
jar 'org.processing:video:3.0.2'
|
38
38
|
jar('org.jogamp.jogl:jogl-all:${jogl.version}')
|
39
39
|
jar('org.jogamp.gluegen:gluegen-rt-main:${jogl.version}')
|
40
|
-
|
40
|
+
|
41
41
|
overrides do
|
42
42
|
plugin :resources, '2.6'
|
43
43
|
plugin :dependency, '2.10' do
|
44
44
|
execute_goals( id: 'default-cli',
|
45
45
|
artifactItems: [ { groupId: 'org.processing',
|
46
46
|
artifactId: 'core',
|
47
|
-
version: '3.2.
|
47
|
+
version: '3.2.2',
|
48
48
|
type: 'jar',
|
49
49
|
outputDirectory: '${propane.basedir}/lib'
|
50
50
|
},
|
@@ -91,8 +91,8 @@ project 'rp5extras', 'https://github.com/monkstone/propane' do
|
|
91
91
|
]
|
92
92
|
)
|
93
93
|
end
|
94
|
-
|
95
|
-
plugin( :compiler, '3.
|
94
|
+
|
95
|
+
plugin( :compiler, '3.6.0',
|
96
96
|
source: '${maven.compiler.source}',
|
97
97
|
target: '${maven.compiler.target}'
|
98
98
|
)
|
data/pom.xml
CHANGED
@@ -11,7 +11,7 @@ DO NOT MODIFIY - GENERATED CODE
|
|
11
11
|
<modelVersion>4.0.0</modelVersion>
|
12
12
|
<groupId>propane</groupId>
|
13
13
|
<artifactId>propane</artifactId>
|
14
|
-
<version>2.0.
|
14
|
+
<version>2.0.5</version>
|
15
15
|
<name>rp5extras</name>
|
16
16
|
<description>rp5extras for propane</description>
|
17
17
|
<url>https://github.com/monkstone/propane</url>
|
@@ -64,7 +64,7 @@ DO NOT MODIFIY - GENERATED CODE
|
|
64
64
|
<dependency>
|
65
65
|
<groupId>org.processing</groupId>
|
66
66
|
<artifactId>core</artifactId>
|
67
|
-
<version>3.2.
|
67
|
+
<version>3.2.2</version>
|
68
68
|
</dependency>
|
69
69
|
<dependency>
|
70
70
|
<groupId>org.processing</groupId>
|
@@ -103,7 +103,7 @@ DO NOT MODIFIY - GENERATED CODE
|
|
103
103
|
<artifactItem>
|
104
104
|
<groupId>org.processing</groupId>
|
105
105
|
<artifactId>core</artifactId>
|
106
|
-
<version>3.2.
|
106
|
+
<version>3.2.2</version>
|
107
107
|
<type>jar</type>
|
108
108
|
<outputDirectory>${propane.basedir}/lib</outputDirectory>
|
109
109
|
</artifactItem>
|
@@ -160,7 +160,7 @@ DO NOT MODIFIY - GENERATED CODE
|
|
160
160
|
</plugin>
|
161
161
|
<plugin>
|
162
162
|
<artifactId>maven-compiler-plugin</artifactId>
|
163
|
-
<version>3.
|
163
|
+
<version>3.6.0</version>
|
164
164
|
<configuration>
|
165
165
|
<source>${maven.compiler.source}</source>
|
166
166
|
<target>${maven.compiler.target}</target>
|
data/propane.gemspec
CHANGED
@@ -9,12 +9,12 @@ Gem::Specification.new do |gem|
|
|
9
9
|
gem.authors = ['monkstone']
|
10
10
|
gem.email = ['mamba2928@yahoo.co.uk']
|
11
11
|
gem.licenses = %w(GPL-3.0 LGPL-2.0)
|
12
|
-
gem.description = %q{A batteries included version of processing in ruby}
|
13
|
-
gem.summary = %q{A jruby wrapper for processing-3.2.
|
12
|
+
gem.description = %q{A batteries included version of processing in ruby, macOS and linux}
|
13
|
+
gem.summary = %q{A jruby wrapper for processing-3.2.2}
|
14
14
|
gem.homepage = 'https://ruby-processing.github.io/propane/'
|
15
15
|
gem.files = `git ls-files`.split($/)
|
16
16
|
gem.files << 'lib/propane.jar'
|
17
|
-
gem.files << 'lib/core-3.2.
|
17
|
+
gem.files << 'lib/core-3.2.2.jar'
|
18
18
|
gem.files << 'lib/gluegen-rt-2.3.2.jar'
|
19
19
|
gem.files << 'lib/jogl-all-2.3.2.jar'
|
20
20
|
gem.files << 'lib/gluegen-rt-2.3.2-natives-linux-amd64.jar'
|
@@ -1,5 +1,6 @@
|
|
1
1
|
package monkstone.core;
|
2
2
|
|
3
|
+
import processing.core.PApplet;
|
3
4
|
import static processing.core.PConstants.*;
|
4
5
|
|
5
6
|
/**
|
@@ -10,9 +11,9 @@ import static processing.core.PConstants.*;
|
|
10
11
|
* PConstants should also be available from static import
|
11
12
|
* @author Martin Prout
|
12
13
|
*/
|
13
|
-
public abstract class
|
14
|
+
public abstract class LibraryProxy {
|
14
15
|
|
15
|
-
private final
|
16
|
+
private final PApplet app;
|
16
17
|
|
17
18
|
/**
|
18
19
|
* Useful accessors
|
@@ -23,7 +24,7 @@ public abstract class AbstractLibrary {
|
|
23
24
|
*
|
24
25
|
* @param app PApplet
|
25
26
|
*/
|
26
|
-
public
|
27
|
+
public LibraryProxy(PApplet app) {
|
27
28
|
this.app = app;
|
28
29
|
this.width = app.width;
|
29
30
|
this.height = app.height;
|
@@ -48,7 +49,11 @@ public abstract class AbstractLibrary {
|
|
48
49
|
*/
|
49
50
|
public abstract void post();
|
50
51
|
|
51
|
-
|
52
|
+
/**
|
53
|
+
* Register or unregister reflection methods
|
54
|
+
* @param active
|
55
|
+
*/
|
56
|
+
final void setActive(boolean active) {
|
52
57
|
if (active) {
|
53
58
|
this.app.registerMethod("pre", this);
|
54
59
|
this.app.registerMethod("draw", this);
|
@@ -63,7 +68,7 @@ public abstract class AbstractLibrary {
|
|
63
68
|
|
64
69
|
/**
|
65
70
|
* Simple signature for background hides need to call app
|
66
|
-
* @param col
|
71
|
+
* @param col int
|
67
72
|
*/
|
68
73
|
public void background(int col) {
|
69
74
|
this.app.background(col);
|
@@ -71,7 +76,7 @@ public abstract class AbstractLibrary {
|
|
71
76
|
|
72
77
|
/**
|
73
78
|
* Simple signature for fill hides need to call app
|
74
|
-
* @param col
|
79
|
+
* @param col int
|
75
80
|
*/
|
76
81
|
public void fill(int col) {
|
77
82
|
this.app.fill(col);
|
@@ -79,7 +84,7 @@ public abstract class AbstractLibrary {
|
|
79
84
|
|
80
85
|
/**
|
81
86
|
* Simple signature for stroke hides need to call app
|
82
|
-
* @param col
|
87
|
+
* @param col int
|
83
88
|
*/
|
84
89
|
public void stroke(int col) {
|
85
90
|
this.app.stroke(col);
|
@@ -87,9 +92,9 @@ public abstract class AbstractLibrary {
|
|
87
92
|
|
88
93
|
/**
|
89
94
|
* Access applet if we must
|
90
|
-
* @return
|
95
|
+
* @return applet PApplet
|
91
96
|
*/
|
92
|
-
public
|
97
|
+
public PApplet app() {
|
93
98
|
return this.app;
|
94
99
|
}
|
95
100
|
|
data/vendors/Rakefile
CHANGED
@@ -9,7 +9,7 @@ SOUND = 'sound.zip'.freeze
|
|
9
9
|
SOUND_VERSION = 'v1.3.2' # version 1.3.2
|
10
10
|
VIDEO = 'video-2.zip'
|
11
11
|
VIDEO_VERSION = '2' # version 1.0.1
|
12
|
-
EXAMPLES = '0.
|
12
|
+
EXAMPLES = '0.5'.freeze
|
13
13
|
HOME_DIR = ENV['HOME']
|
14
14
|
MAC_OR_LINUX = /linux|mac|darwin/ =~ RbConfig::CONFIG['host_os']
|
15
15
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: propane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.5
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- monkstone
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: arcball
|
@@ -24,7 +24,7 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.0.3
|
27
|
-
description: A batteries included version of processing in ruby
|
27
|
+
description: A batteries included version of processing in ruby, macOS and linux
|
28
28
|
email:
|
29
29
|
- mamba2928@yahoo.co.uk
|
30
30
|
executables:
|
@@ -45,7 +45,7 @@ files:
|
|
45
45
|
- Rakefile
|
46
46
|
- bin/propane
|
47
47
|
- lib/PROCESSING_LICENSE.txt
|
48
|
-
- lib/core-3.2.
|
48
|
+
- lib/core-3.2.2.jar
|
49
49
|
- lib/export.txt
|
50
50
|
- lib/gluegen-rt-2.3.2-natives-linux-amd64.jar
|
51
51
|
- lib/gluegen-rt-2.3.2-natives-macosx-universal.jar
|
@@ -67,6 +67,8 @@ files:
|
|
67
67
|
- library/control_panel/control_panel.rb
|
68
68
|
- library/file_chooser/chooser.rb
|
69
69
|
- library/file_chooser/file_chooser.rb
|
70
|
+
- library/library_proxy/README.md
|
71
|
+
- library/library_proxy/library_proxy.rb
|
70
72
|
- library/simplex_noise/simplex_noise.rb
|
71
73
|
- library/slider/slider.rb
|
72
74
|
- library/video_event/video_event.rb
|
@@ -76,7 +78,7 @@ files:
|
|
76
78
|
- src/monkstone/ColorUtil.java
|
77
79
|
- src/monkstone/MathToolModule.java
|
78
80
|
- src/monkstone/PropaneLibrary.java
|
79
|
-
- src/monkstone/core/
|
81
|
+
- src/monkstone/core/LibraryProxy.java
|
80
82
|
- src/monkstone/fastmath/Deglut.java
|
81
83
|
- src/monkstone/fastmath/package-info.java
|
82
84
|
- src/monkstone/filechooser/Chooser.java
|
@@ -129,7 +131,7 @@ rubyforge_project:
|
|
129
131
|
rubygems_version: 2.6.3
|
130
132
|
signing_key:
|
131
133
|
specification_version: 4
|
132
|
-
summary: A jruby wrapper for processing-3.2.
|
134
|
+
summary: A jruby wrapper for processing-3.2.2
|
133
135
|
test_files:
|
134
136
|
- test/create_test.rb
|
135
137
|
- test/deglut_spec_test.rb
|