picrate 2.1.1-java → 2.1.2-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d75664876e56bfb68eb317371315aa6eb989d714f0ca9421c997fded6013f92e
4
- data.tar.gz: 0ed6af00f023c0d5d447cdf19e94001343f64b335e28b0037029368aed84705a
3
+ metadata.gz: 7e9ef3696c4eb0b3a488c7e25d30546ab03eae3a49e5220ec3d9cf4c862fddf3
4
+ data.tar.gz: 88f799089492e9507bbb09baa4e9634c335627fea27ec8adf22207cf4678de7b
5
5
  SHA512:
6
- metadata.gz: 6369280804b285a714f9fb8cb9dac9dd70cb46d0b6d0aa66a9e3dc63d06cf3425be9cb0bf1143f5ed81f2e4823790ddba517eeb2ab852567f5f1eded80471e96
7
- data.tar.gz: ace654cbd577df5fab79afcddafbb67a1c19aca7beb4c19fec8a3db01bf06bc308ba35107febb9122d320ff3bb7b6779ecdd1885089b9dde196825f6802fe0cf
6
+ metadata.gz: 57be7c1825b5afe9fac52830070c97e04b18590d6db7d3ff099a83861e757eb7dfba02f1f9a3ad80c5e6b20c1ce73226a13be1ce3aefb3d6e66180af59d742d1
7
+ data.tar.gz: a94c876edf96da7f89939d0cb11e8ab09f74c03686c5f36eaeae90ea61c5dd44e23c9d7812d521a17215110534a722f4a20ee7c29f8dffc28a1af0b15eac21db
@@ -3,7 +3,7 @@
3
3
  <extension>
4
4
  <groupId>io.takari.polyglot</groupId>
5
5
  <artifactId>polyglot-ruby</artifactId>
6
- <version>0.4.3
6
+ <version>0.4.5
7
7
  </version>
8
8
  </extension>
9
9
  </extensions>
@@ -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.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
  */
@@ -1,2 +1,2 @@
1
- distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.1/apache-maven-3.6.1-bin.zip
2
- wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar
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
@@ -1,4 +1,6 @@
1
- v2.1.1 Bump to JRuby-9.2.13.0, include examples using ruby `clamp` in place of processing `constrain`.
1
+ v2.1.2 Bump to JRuby-9.2.14.0
2
+
3
+ v2.1.1 Bump to JRuby-9.2.13.0, include examples using ruby `clamp` in place of processing `constrain`, update to video-2.0 release, add run instruction to help
2
4
 
3
5
  v2.1.0 Refactor how we configure geany so we can use ENV['HOME'] rather hard code config file. Bump to JRuby-9.2.12.0, include Sam Pottingers July 2020 staging changes.
4
6
 
data/README.md CHANGED
@@ -19,7 +19,7 @@ Requires java to build (and jogl-2.4.0-rc jars), but uses a maven wrapper so you
19
19
  ```bash
20
20
  cd PiCrate # or whatever you call it
21
21
  rake # assumes an installed version of vanilla processing
22
- jgem install picrate-2.1.1-java.gem
22
+ jgem install picrate-2.1.2-java.gem
23
23
 
24
24
  ```
25
25
  To create a template sketch:-
@@ -14,7 +14,7 @@ Get the latest version from [http://jruby.org/download][download]
14
14
 
15
15
  ```bash
16
16
  cd /opt
17
- sudo tar xzvf /pathToDownload/jruby-bin-9.2.13.0.tar.gz
17
+ sudo tar xzvf /pathToDownload/jruby-bin-9.2.14.0.tar.gz
18
18
  ```
19
19
 
20
20
  Then use the excellent `update-alternatives` tool to provide symbolic links to `jruby`, `jgem`, `jirb` and `rake` especially if you haven't installed `mri` ruby.
@@ -38,9 +38,9 @@ export PATH="${PATH}:${GEM_PATH}/bin"
38
38
 
39
39
  ### Automated install using bash ###
40
40
 
41
- The [picrate2_install.sh][bash] script currently installs jruby-9.2.13.0 and picrate-2.1.1.
41
+ The [picrate2_install.sh][bash] script currently installs jruby-9.2.14.0 and picrate-2.1.2.
42
42
 
43
43
  If you know better please post on wiki
44
44
 
45
- [download]:"https://repo1.maven.org/maven2/org/jruby/jruby-dist/9.2.13.0/jruby-dist-9.2.13.0-bin.tar.gz"
45
+ [download]:"https://repo1.maven.org/maven2/org/jruby/jruby-dist/9.2.14.0/jruby-dist-9.2.14.0-bin.tar.gz"
46
46
  [bash]:https://gist.github.com/monkstone/6ae9840d7b7008c177b4a9f589d14ec6
@@ -5,12 +5,20 @@ date: 2020-05-11 07:34:13
5
5
  categories: PiCrate update
6
6
  permalink: /getting_manjaro/
7
7
  ---
8
- Currently Manjaro does not come with a pre-installed java. So the first step is to install a `jdk` the distro version (jdk14) should work. Setting the JDK_HOME environment (easiest done `/etc/profile.d`) and then manually install the latest JRuby. It is probably worth creating a symbolic links to `/usr/bin/jruby` and `/usr/bin/jgem` from wherever you installed jruby eg /opt folder.
8
+ If Manjaro does not come with a pre-installed java, then the first step is to install a `jdk` the distro version (jdk14) should work.
9
9
 
10
10
  ```bash
11
- mkdir -p ~/.gem/ruby/2.5.0
11
+ sudo pacman -S jdk-openjdk # current distro version jdk14
12
12
  ```
13
+ You can also use pacman to install jruby
14
+ ```bash
15
+ sudo pacman -S jruby # current version jruby-9.2.14.0
16
+ ```
17
+ It is probably a good idea to create a local gem store (rather needing to use sudo to install gems)
13
18
 
19
+ ```bash
20
+ mkdir -p ~/.gem/ruby/2.5.0 # current MRI version supported by jruby
21
+ ```
14
22
  Now set your `GEM_HOME`, `GEM_PATH` and amend your `PATH` as follows:-
15
23
 
16
24
  ```bash
@@ -19,16 +27,20 @@ echo "export GEM_PATH=\"\${HOME}/.gem/ruby/${MRI_RUBY}\"" >> ~/.bashrc
19
27
  echo "export PATH=\"\${PATH}:\${GEM_PATH}/bin\"" >> ~/.bashrc
20
28
  source ~/.bashrc # to update environment without re-logging in
21
29
  ```
22
- Now should be ready to install `picrate` and other gems.
23
- Install a local version of rake:-
30
+ Now should be ready to install `picrate` and other gems. But speed up install time you should set `--no-document` option in ~/.gemrc
31
+
24
32
  ```bash
25
- jgem install rake
33
+ touch ~/.gemrc
34
+ echo "gem: --no-document" > ~/.gemrc
26
35
  ```
27
36
  To install latest picrate and its dependencies:-
28
37
 
29
38
  ```bash
30
39
  jgem install picrate
31
40
  ```
41
+
42
+ Geany is a good editor/ide for PiCrate on the RaspberryPI (install via pacman), but some may prefer vim. For geany you should edit/preferences/Terminal to `Execute programs in the VTE`.
43
+
32
44
  __For a first install:-__
33
45
 
34
46
  ```bash
@@ -37,7 +49,7 @@ picrate --install # no args, install samples and geany config
37
49
  picrate -i Samples # to omit geany config
38
50
  ```
39
51
 
40
- This installs example sketches in `~/projects/examples` and ties them into a `geany` project `examples.geany`. It should also be possible to run sketches from the `geany` ide. Sketches need to be run in VTE terminal on Manjaro ARM the terminal emulator, does not give access to local environment variables in the version of Geany supplied.
52
+ This installs example sketches in `~/projects/examples` and ties them into a `geany` project `examples.geany`. It should also be possible to run sketches from the `geany` ide. The geany config creates `picrate.rb` template sketch so you can create a new sketch with template.
41
53
 
42
54
  To create a template sketch from the command line:-
43
55
 
@@ -77,7 +89,7 @@ vim my_sketch.rb
77
89
  To run sketches from command line:-
78
90
 
79
91
  ```bash
80
- jruby my_sketch.rb
92
+ jruby --dev my_sketch.rb
81
93
  ```
82
94
 
83
95
  Or even `chmod +x my_sketch.rb` to make an executable script.
@@ -9,4 +9,5 @@ end
9
9
  Dir["#{PICRATE_ROOT}/lib/*.jar"].sort.each do |jar|
10
10
  require jar
11
11
  end
12
- require_relative 'picrate/app'
12
+ require "#{PICRATE_ROOT}/lib/picrate/app"
13
+ require "#{PICRATE_ROOT}/lib/picrate/helpers/numeric"
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  # processing module wrapper
4
- require_relative 'helpers/numeric'
4
+
5
5
  module Processing
6
6
  # Provides some convenience methods
7
7
  module HelperMethods
@@ -32,7 +32,7 @@ module Processing
32
32
  opt_parser = OptionParser.new do |opts|
33
33
  # Set a banner, displayed at the top
34
34
  # of the help screen.
35
- opts.banner = 'Usage: picrate [options] [<sketch.rb>]'
35
+ opts.banner = 'Usage: picrate [options] [<name>]'
36
36
 
37
37
  # Define the options, and what they do
38
38
  options[:version] = false
@@ -55,6 +55,8 @@ module Processing
55
55
  # assumed to have this option.
56
56
  opts.on_tail('-h', '--help', 'Display this screen') do
57
57
  puts opts
58
+ puts ''
59
+ puts 'Run a sketch: jruby [--dev] [<sketch.rb>]'
58
60
  exit
59
61
  end
60
62
  end
@@ -81,9 +83,7 @@ module Processing
81
83
  library ||= 'new'
82
84
  choice = library.downcase
83
85
  case choice
84
- when /sound/
85
- warn 'The sound library is broken, try minim instead'
86
- when /samples|video/
86
+ when /samples|sound|video/
87
87
  system "cd #{PICRATE_ROOT}/vendors && rake install_#{choice}"
88
88
  when /new/
89
89
  # install samples and config geany
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PiCrate
4
- VERSION = '2.1.1'
4
+ VERSION = '2.1.2'
5
5
  end
@@ -0,0 +1 @@
1
+ java_import Java::MonkstoneComplex::JComplex
data/mvnw CHANGED
@@ -212,9 +212,9 @@ else
212
212
  echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
213
213
  fi
214
214
  if [ -n "$MVNW_REPOURL" ]; then
215
- jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
215
+ jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
216
216
  else
217
- jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
217
+ jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
218
218
  fi
219
219
  while IFS="=" read key value; do
220
220
  case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
data/mvnw.cmd CHANGED
@@ -120,7 +120,7 @@ SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
120
120
  set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
121
121
  set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
122
122
 
123
- set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
123
+ set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
124
124
 
125
125
  FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
126
126
  IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
@@ -134,7 +134,7 @@ if exist %WRAPPER_JAR% (
134
134
  )
135
135
  ) else (
136
136
  if not "%MVNW_REPOURL%" == "" (
137
- SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
137
+ SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
138
138
  )
139
139
  if "%MVNW_VERBOSE%" == "true" (
140
140
  echo Couldn't find %WRAPPER_JAR%, downloading it ...
@@ -30,7 +30,7 @@ Gem::Specification.new do |gem|
30
30
  gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
31
31
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
32
32
  gem.add_development_dependency 'minitest', '~> 5.10'
33
- gem.add_development_dependency 'rake', '~> 12.3'
33
+ gem.add_runtime_dependency 'rake', '~> 13.0'
34
34
  gem.add_runtime_dependency 'arcball', '~> 1.0', '>= 1.0.1'
35
35
  gem.require_paths = ['lib']
36
36
  gem.platform = 'java'
data/pom.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  project 'picrate', 'http://maven.apache.org' do
4
4
  model_version '4.0.0'
5
- id 'ruby-processing:picrate:2.1.1'
5
+ id 'ruby-processing:picrate:2.1.2'
6
6
  packaging 'jar'
7
7
 
8
8
  description 'An integrated processing-core (somewhat hacked), with additional java code for a jruby version of processing.'
@@ -31,7 +31,7 @@ project 'picrate', 'http://maven.apache.org' do
31
31
  'project.build.sourceEncoding' => 'utf-8',
32
32
  'polyglot.dump.pom' => 'pom.xml')
33
33
 
34
- pom 'org.jruby:jruby:9.2.13.0'
34
+ pom 'org.jruby:jruby:9.2.14.0'
35
35
  jar 'org.jogamp.jogl:jogl-all:${jogl.version}'
36
36
  jar 'org.jogamp.gluegen:gluegen-rt-main:${jogl.version}'
37
37
  jar 'org.processing:video:3.0.2'
@@ -47,11 +47,12 @@ overrides do
47
47
  'links' => ['${processing.api}',
48
48
  '${jruby.api}'])
49
49
  plugin(:jar, '3.2.0',
50
- 'archive' => {
51
- 'manifestEntries' => {
52
- 'Class-Path' => 'gluegen-rt.jar jog-all.jar'
53
- }
54
- })
50
+ 'archive' => {
51
+ 'manifestEntries' => {
52
+ 'Automatic-Module-Name' => 'processing.core'
53
+ }
54
+ }
55
+ )
55
56
  plugin :jdeps, '3.1.2' do
56
57
  execute_goals 'jdkinternals', 'test-jdkinternals'
57
58
  end
data/pom.xml CHANGED
@@ -6,12 +6,12 @@ DO NOT MODIFIY - GENERATED CODE
6
6
 
7
7
 
8
8
  -->
9
- <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
9
+ <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
10
10
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
11
11
  <modelVersion>4.0.0</modelVersion>
12
12
  <groupId>ruby-processing</groupId>
13
13
  <artifactId>picrate</artifactId>
14
- <version>2.1.1</version>
14
+ <version>2.1.2</version>
15
15
  <name>picrate</name>
16
16
  <description>An integrated processing-core (somewhat hacked), with additional java code for a jruby version of processing.</description>
17
17
  <url>http://maven.apache.org</url>
@@ -76,7 +76,7 @@ DO NOT MODIFIY - GENERATED CODE
76
76
  <dependency>
77
77
  <groupId>org.jruby</groupId>
78
78
  <artifactId>jruby</artifactId>
79
- <version>9.2.13.0</version>
79
+ <version>9.2.14.0</version>
80
80
  <type>pom</type>
81
81
  </dependency>
82
82
  <dependency>
@@ -149,7 +149,7 @@ DO NOT MODIFIY - GENERATED CODE
149
149
  <configuration>
150
150
  <archive>
151
151
  <manifestEntries>
152
- <Class-Path>gluegen-rt.jar jog-all.jar</Class-Path>
152
+ <Automatic-Module-Name>processing.core</Automatic-Module-Name>
153
153
  </manifestEntries>
154
154
  </archive>
155
155
  </configuration>
@@ -0,0 +1,252 @@
1
+ package monkstone.complex;
2
+
3
+ import java.util.Objects;
4
+
5
+ /**
6
+ * The purpose of this class is to to make Complex operations more efficient
7
+ * than JRuby RubyComplex, by having a simpler interface, only modest
8
+ * improvements were obtained (but this is better than nothing on RaspberryPI).
9
+ */
10
+ public final class JComplex {
11
+
12
+ private final double re; // the real part
13
+ private final double im; // the imaginary part
14
+ private final static JComplex ZERO = new JComplex(0, 0);
15
+ private final static JComplex NAN = new JComplex(Double.NaN, Double.NaN);
16
+
17
+ /**
18
+ * create a new object with the given real and imaginary parts
19
+ *
20
+ * @param real
21
+ * @param imag
22
+ */
23
+ public JComplex(double real, double imag) {
24
+ re = real;
25
+ im = imag;
26
+ }
27
+
28
+ /**
29
+ * @return a string representation of the invoking Complex object
30
+ */
31
+ @Override
32
+ public String toString() {
33
+ return "JComplex(" + re + ", " + im + "i)";
34
+ }
35
+
36
+ /**
37
+ *
38
+ * @return abs/modulus/magnitude
39
+ */
40
+ public final double abs() {
41
+ return Math.hypot(re, im);
42
+ }
43
+
44
+ /**
45
+ *
46
+ * @return square of abs/modulus/magnitude
47
+ */
48
+ public final double abs2() {
49
+ return re * re + im * im;
50
+ }
51
+
52
+ /**
53
+ *
54
+ * @return angle/phase/argument, normalized to be between -pi and pi
55
+ */
56
+ public final double phase() {
57
+ return Math.atan2(im, re);
58
+ }
59
+
60
+ /**
61
+ *
62
+ * @param b
63
+ * @return a new Complex object whose value is (this + b)
64
+ */
65
+ public final JComplex add(JComplex b) {
66
+ JComplex a = this; // invoking object
67
+ double real = a.re + b.re;
68
+ double imag = a.im + b.im;
69
+ return new JComplex(real, imag);
70
+ }
71
+
72
+ /**
73
+ *
74
+ * @param scalar
75
+ * @return a new Complex object whose value is (this + scalar)
76
+ */
77
+ public final JComplex add(double scalar) {
78
+ return new JComplex(re + scalar, im);
79
+ }
80
+
81
+ public final boolean zero() {
82
+ return this.equals(ZERO);
83
+ }
84
+
85
+ /**
86
+ *
87
+ * @param b
88
+ * @return a new Complex object whose value is (this - b)
89
+ */
90
+ public final JComplex sub(JComplex b) {
91
+ JComplex a = this;
92
+ double real = a.re - b.re;
93
+ double imag = a.im - b.im;
94
+ return new JComplex(real, imag);
95
+ }
96
+
97
+ /**
98
+ *
99
+ * @param scalar
100
+ * @return a new Complex object whose value is (this - scalar)
101
+ */
102
+ public final JComplex sub(double scalar) {
103
+ return new JComplex(re - scalar, im);
104
+ }
105
+
106
+ /**
107
+ *
108
+ * @param b
109
+ * @return a new Complex object whose value is (this * b)
110
+ */
111
+ public final JComplex mul(JComplex b) {
112
+ JComplex a = this;
113
+ double real = a.re * b.re - a.im * b.im;
114
+ double imag = a.re * b.im + a.im * b.re;
115
+ return new JComplex(real, imag);
116
+ }
117
+
118
+ /**
119
+ * Also known as scale
120
+ *
121
+ * @param b
122
+ * @return a new Complex object whose value is (this * b)
123
+ */
124
+ public final JComplex mul(double b) {
125
+ return new JComplex(re * b, im * b);
126
+ }
127
+
128
+ /**
129
+ *
130
+ * @return a new Complex object whose value is the conjugate of this
131
+ */
132
+ public final JComplex conjugate() {
133
+ return new JComplex(re, -im);
134
+ }
135
+
136
+ /**
137
+ *
138
+ * @return a new Complex object whose value is the reciprocal of this
139
+ */
140
+ private JComplex reciprocal() {
141
+ double scale = re * re + im * im; // self dot product
142
+ return new JComplex(re / scale, -im / scale);
143
+ }
144
+
145
+ /**
146
+ *
147
+ * @param other
148
+ * @return this^other
149
+ */
150
+ public final JComplex pow(JComplex other) {
151
+ if (this.zero()) {
152
+ if (other.zero()) {
153
+ return ZERO;
154
+ }
155
+ return NAN;
156
+ }
157
+ return (this).log().mul(other).exp();
158
+ }
159
+
160
+ /**
161
+ *
162
+ * @param scalar
163
+ * @return this^scalar
164
+ */
165
+ public final JComplex pow(double scalar) {
166
+ if (this.zero()) {
167
+ if (scalar == 0) {
168
+ return ZERO;
169
+ }
170
+ return NAN;
171
+ }
172
+ return (this).log().mul(scalar).exp();
173
+ }
174
+
175
+ /**
176
+ *
177
+ * @return log
178
+ */
179
+ private JComplex log() {
180
+ return new JComplex(Math.log(abs()), Math.atan2(im, re));
181
+ }
182
+
183
+ /**
184
+ *
185
+ * @return real part
186
+ */
187
+ public final double re() {
188
+ return re;
189
+ }
190
+
191
+ /**
192
+ *
193
+ * @return imaginary part
194
+ */
195
+ public final double im() {
196
+ return im;
197
+ }
198
+
199
+ /**
200
+ *
201
+ * @param b
202
+ * @return a / b
203
+ */
204
+ public final JComplex div(JComplex b) {
205
+ JComplex a = this;
206
+ return a.mul(b.reciprocal());
207
+ }
208
+
209
+ /**
210
+ *
211
+ * @param b
212
+ * @return a / b
213
+ */
214
+ public final JComplex div(double b) {
215
+ if (b == 0) {
216
+ return NAN;
217
+ }
218
+ return new JComplex(re / b, im / b);
219
+ }
220
+
221
+ /**
222
+ *
223
+ * @return a new Complex object whose value is the complex exponential of
224
+ * this
225
+ */
226
+ public final JComplex exp() {
227
+ return new JComplex(Math.exp(re) * Math.cos(im), Math.exp(re) * Math.sin(im));
228
+ }
229
+
230
+ @Override
231
+ public final int hashCode() {
232
+ return Objects.hash(re, im);
233
+ }
234
+
235
+ @Override
236
+ public final boolean equals(Object obj) {
237
+ if (this == obj) {
238
+ return true;
239
+ }
240
+ if (obj == null) {
241
+ return false;
242
+ }
243
+ if (getClass() != obj.getClass()) {
244
+ return false;
245
+ }
246
+ final JComplex other = (JComplex) obj;
247
+ if (Double.doubleToLongBits(this.re) != Double.doubleToLongBits(other.re)) {
248
+ return false;
249
+ }
250
+ return Double.doubleToLongBits(this.im) == Double.doubleToLongBits(other.im);
251
+ }
252
+ }
@@ -5,9 +5,9 @@ require 'rake/clean'
5
5
  require_relative './geany'
6
6
  WARNING = 'WARNING: wget download failed you could do a manual download'
7
7
  SOUND = 'sound.zip'
8
- SOUND_VERSION = 'v1.3.2'
9
- VIDEO = 'video-2.0-beta4.zip'
10
- VIDEO_VERSION = 'r6-v2.0-beta4'
8
+ PROCESSING_GITHUB = 'https://github.com/processing'
9
+ VIDEO = 'video.zip'
10
+ DOWNLOAD = 'releases/download/latest'
11
11
  EXAMPLES = '0.5.5'
12
12
  HOME_DIR = ENV['HOME']
13
13
  LIBRARY = File.join(HOME_DIR, '.picrate', 'libraries')
@@ -47,16 +47,24 @@ task download_samples: ["#{EXAMPLES}.tar.gz"]
47
47
 
48
48
  desc 'download sound library'
49
49
  task :download_sound do
50
- wget_base = 'wget -P https://github.com/processing/processing-sound'
51
- wget_string = [wget_base, 'releases/download/latest', SOUND].join('/')
52
- system wget_string
50
+ wget_base = ['wget', PROCESSING_GITHUB].join(' ')
51
+ wget_string = [wget_base, 'processing-sound', DOWNLOAD, SOUND].join('/')
52
+ begin
53
+ sh wget_string
54
+ rescue StandardError
55
+ warn(WARNING)
56
+ end
53
57
  end
54
58
 
55
59
  desc 'download video library'
56
60
  task :download_video do
57
- wget_base = 'wget -P /tmp https://github.com/processing/processing-video'
58
- wget_string = [wget_base, 'releases/download', VIDEO_VERSION, VIDEO].join('/')
59
- system wget_string
61
+ wget_base = ['wget', PROCESSING_GITHUB].join(' ')
62
+ wget_string = [wget_base, 'processing-video', DOWNLOAD, VIDEO].join('/')
63
+ begin
64
+ sh wget_string
65
+ rescue StandardError
66
+ warn(WARNING)
67
+ end
60
68
  end
61
69
 
62
70
  desc 'initialize ~/.picrate directories'
@@ -71,10 +79,10 @@ task :install_config do
71
79
  FileUtils.cp 'picrate.rb', "#{HOME_DIR}/.config/geany/templates/files"
72
80
  end
73
81
  project_dir = File.join(HOME_DIR, 'projects')
74
- unless File.exist? File.join(project_dir, 'examples', 'picrate_sketches.geany')
75
- FileUtils.mkdir_p "#{HOME_DIR}/projects/examples"
76
- config = GeanyConfig.new(project_dir, 'examples')
77
- config.save(File.join(project_dir, 'examples', 'picrate_sketches.geany'))
82
+ unless File.exist? File.join(project_dir, 'picrate_sketches.geany')
83
+ FileUtils.mkdir_p "#{HOME_DIR}/projects"
84
+ config = GeanyConfig.new(project_dir)
85
+ config.save(File.join(project_dir, 'picrate_sketches.geany'))
78
86
  end
79
87
  end
80
88
 
@@ -89,15 +97,16 @@ end
89
97
 
90
98
  desc 'copy sound library'
91
99
  task copy_sound: SOUND do
92
- system "unzip -d /tmp /tmp/#{SOUND}"
93
- FileUtils.rm_r "#{LIBRARY}/sound" if File.exist? "#{LIBRARY}/sound"
94
- FileUtils.cp_r '/tmp/sound', LIBRARY
100
+ sh "unzip #{SOUND}"
101
+ sh "rm -r #{LIBRARY}/sound" if File.exist? "#{LIBRARY}/sound"
102
+ sh "cp -r sound #{LIBRARY}"
103
+ sh 'rm -r sound'
95
104
  end
96
105
 
97
106
  desc 'copy video library'
98
- task copy_video: "/tmp/#{VIDEO}" do
99
- system "unzip -d /tmp /tmp/#{VIDEO}"
100
- FileUtils.rm_r "#{LIBRARY}/video" if File.exist? "#{LIBRARY}/video"
101
- FileUtils.mkdir_p "#{LIBRARY}/video/library"
102
- FileUtils.mv Dir.glob('/tmp/video/library/*.jar'), "#{LIBRARY}/video/library"
107
+ task copy_video: VIDEO do
108
+ sh "unzip #{VIDEO}"
109
+ sh "rm -r #{LIBRARY}/video" if File.exist? "#{LIBRARY}/video"
110
+ sh "cp -r video #{LIBRARY}"
111
+ sh 'rm -r video'
103
112
  end
@@ -25,7 +25,7 @@ indent_mode=2
25
25
 
26
26
  [project]
27
27
  name=picrate_samples
28
- base_path=<%= home %>
28
+ base_path=examples
29
29
  description=Exploring PiCrate
30
30
  file_patterns=*.rb;*.glsl;*.txt;
31
31
 
@@ -69,9 +69,9 @@ class GeanyConfig
69
69
  include ERB::Util
70
70
  attr_accessor :home, :directory, :template
71
71
 
72
- def initialize(home, directory, template = geany_config)
72
+ def initialize(directory, template = geany_config)
73
73
  @home = home
74
- @directory = File.join(home, directory)
74
+ @directory = directory
75
75
  @template = template
76
76
  end
77
77
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: picrate
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.1.2
5
5
  platform: java
6
6
  authors:
7
7
  - monkstone
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-17 00:00:00.000000000 Z
11
+ date: 2020-12-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -29,15 +29,15 @@ dependencies:
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: '12.3'
32
+ version: '13.0'
33
33
  name: rake
34
- type: :development
34
+ type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '12.3'
40
+ version: '13.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
@@ -190,7 +190,7 @@ files:
190
190
  - lib/jogl-all-natives-linux-amd64.jar
191
191
  - lib/jogl-all-natives-linux-armv6hf.jar
192
192
  - lib/jogl-all.jar
193
- - lib/picrate-2.1.1.jar
193
+ - lib/picrate-2.1.2.jar
194
194
  - lib/picrate.rb
195
195
  - lib/picrate/app.rb
196
196
  - lib/picrate/creators/parameters.rb
@@ -209,6 +209,7 @@ files:
209
209
  - library/color_group/color_group.rb
210
210
  - library/control_panel/control_panel.rb
211
211
  - library/dxf/dxf.rb
212
+ - library/jcomplex/jcomplex.rb
212
213
  - library/library_proxy/README.md
213
214
  - library/library_proxy/library_proxy.rb
214
215
  - library/net/net.rb
@@ -226,6 +227,7 @@ files:
226
227
  - src/main/java/monkstone/ColorUtil.java
227
228
  - src/main/java/monkstone/MathToolModule.java
228
229
  - src/main/java/monkstone/PicrateLibrary.java
230
+ - src/main/java/monkstone/complex/JComplex.java
229
231
  - src/main/java/monkstone/core/LibraryProxy.java
230
232
  - src/main/java/monkstone/fastmath/Deglut.java
231
233
  - src/main/java/monkstone/fastmath/package-info.java