picrate 2.1.1-java → 2.1.2-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 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