picrate 1.2.3-java → 2.1.0-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/Gemfile +3 -1
  4. data/README.md +8 -9
  5. data/Rakefile +10 -9
  6. data/bin/picrate +3 -1
  7. data/docs/_config.yml +1 -1
  8. data/docs/_editors/geany.md +1 -0
  9. data/docs/_gems/gems/gems.md +1 -1
  10. data/docs/_posts/2018-05-06-getting_started.md +4 -4
  11. data/docs/_posts/2018-05-06-install_jruby.md +5 -11
  12. data/docs/_posts/2018-05-11-arch-linux-arm.md +1 -11
  13. data/docs/_posts/2018-11-18-building-gem.md +2 -2
  14. data/docs/_posts/2018-11-27-getting_started_geany.md +4 -4
  15. data/docs/_posts/2019-11-11-getting_started_buster.md +4 -7
  16. data/docs/_posts/2020-03-09-auto_install_picrate.md +34 -0
  17. data/docs/_posts/2020-05-11-getting_started_manjaro.md +94 -0
  18. data/docs/about.md +1 -1
  19. data/lib/picrate.rb +1 -1
  20. data/lib/picrate/app.rb +11 -3
  21. data/lib/picrate/creators/parameters.rb +8 -8
  22. data/lib/picrate/creators/sketch_factory.rb +5 -3
  23. data/lib/picrate/helper_methods.rb +21 -21
  24. data/lib/picrate/helpers/numeric.rb +2 -0
  25. data/lib/picrate/library.rb +5 -1
  26. data/lib/picrate/library_loader.rb +2 -0
  27. data/lib/picrate/native_folder.rb +2 -1
  28. data/lib/picrate/native_loader.rb +3 -0
  29. data/lib/picrate/runner.rb +5 -2
  30. data/lib/picrate/version.rb +1 -1
  31. data/library/boids/boids.rb +17 -8
  32. data/library/chooser/chooser.rb +10 -9
  33. data/library/color_group/color_group.rb +2 -0
  34. data/library/control_panel/control_panel.rb +7 -4
  35. data/library/dxf/dxf.rb +2 -0
  36. data/library/library_proxy/library_proxy.rb +2 -0
  37. data/library/net/net.rb +2 -0
  38. data/library/slider/slider.rb +24 -23
  39. data/library/vector_utils/vector_utils.rb +4 -0
  40. data/library/video_event/video_event.rb +2 -0
  41. data/picrate.gemspec +13 -14
  42. data/pom.rb +28 -26
  43. data/pom.xml +18 -6
  44. data/src/main/java/monkstone/ColorUtil.java +1 -1
  45. data/src/main/java/monkstone/MathToolModule.java +1 -1
  46. data/src/main/java/monkstone/PicrateLibrary.java +8 -8
  47. data/src/main/java/monkstone/fastmath/Deglut.java +16 -16
  48. data/src/main/java/monkstone/filechooser/Chooser.java +1 -1
  49. data/src/main/java/monkstone/noise/SimplexNoise.java +3 -3
  50. data/src/main/java/monkstone/slider/CustomHorizontalSlider.java +1 -1
  51. data/src/main/java/monkstone/slider/CustomVerticalSlider.java +1 -1
  52. data/src/main/java/monkstone/slider/SimpleHorizontalSlider.java +12 -12
  53. data/src/main/java/monkstone/slider/SimpleVerticalSlider.java +1 -1
  54. data/src/main/java/monkstone/slider/SliderBar.java +1 -1
  55. data/src/main/java/monkstone/slider/SliderGroup.java +1 -1
  56. data/src/main/java/monkstone/slider/WheelHandler.java +1 -1
  57. data/src/main/java/monkstone/vecmath/package-info.java +1 -1
  58. data/src/main/java/monkstone/vecmath/vec2/Vec2.java +1 -1
  59. data/src/main/java/monkstone/vecmath/vec3/Vec3.java +1 -1
  60. data/src/main/java/monkstone/videoevent/CaptureEvent.java +1 -1
  61. data/src/main/java/monkstone/videoevent/MovieEvent.java +1 -1
  62. data/src/main/java/monkstone/videoevent/package-info.java +1 -1
  63. data/src/main/java/processing/awt/PGraphicsJava2D.java +33 -36
  64. data/src/main/java/processing/awt/PImageAWT.java +377 -0
  65. data/src/main/java/processing/awt/PSurfaceAWT.java +0 -20
  66. data/src/main/java/processing/awt/ShimAWT.java +545 -0
  67. data/src/main/java/processing/core/PApplet.java +699 -1523
  68. data/src/main/java/processing/core/PConstants.java +180 -180
  69. data/src/main/java/processing/core/PFont.java +2 -2
  70. data/src/main/java/processing/core/PGraphics.java +190 -176
  71. data/src/main/java/processing/core/PImage.java +1536 -1721
  72. data/src/main/java/processing/core/PMatrix.java +39 -39
  73. data/src/main/java/processing/core/PSurface.java +69 -103
  74. data/src/main/java/processing/core/PSurfaceNone.java +29 -0
  75. data/src/main/java/processing/core/PVector.java +2 -2
  76. data/src/main/java/processing/data/FloatDict.java +251 -284
  77. data/src/main/java/processing/data/TableRow.java +32 -32
  78. data/src/main/java/processing/dxf/RawDXF.java +3 -3
  79. data/src/main/java/processing/net/Client.java +1 -1
  80. data/src/main/java/processing/opengl/PGL.java +1016 -4132
  81. data/src/main/java/processing/opengl/PGraphicsOpenGL.java +223 -184
  82. data/src/main/java/processing/opengl/PJOGL.java +374 -1526
  83. data/src/main/java/processing/opengl/PShapeOpenGL.java +5 -6
  84. data/src/main/java/processing/opengl/PSurfaceJOGL.java +262 -147
  85. data/test/color_group_test.rb +4 -4
  86. data/test/deglut_spec_test.rb +2 -0
  87. data/test/helper_methods_test.rb +41 -13
  88. data/test/math_tool_test.rb +46 -37
  89. data/test/respond_to_test.rb +5 -3
  90. data/test/sketches/key_event.rb +2 -2
  91. data/test/sketches/library/my_library/my_library.rb +3 -0
  92. data/test/test_helper.rb +2 -0
  93. data/test/vecmath_spec_test.rb +30 -19
  94. data/vendors/Rakefile +13 -7
  95. data/vendors/{picrate_sketches.geany → geany.rb} +32 -7
  96. metadata +26 -47
  97. data/docs/_posts/2018-06-26-auto_install_picrate.md +0 -30
  98. data/src/main/java/processing/opengl/shaders/LightVert-brcm.glsl +0 -154
  99. data/src/main/java/processing/opengl/shaders/LightVert-vc4.glsl +0 -154
  100. data/src/main/java/processing/opengl/shaders/TexLightVert-brcm.glsl +0 -160
  101. data/src/main/java/processing/opengl/shaders/TexLightVert-vc4.glsl +0 -160
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # @TODO usage
2
4
  class Processing::App
3
5
  java_import Java::ProcessingDxf::RawDXF
@@ -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
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # @TODO usage
2
4
  class Processing::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-18 Martin Prout.
4
+ # Copyright (c) 2016-20 Martin Prout.
4
5
 
5
6
  java_import 'monkstone.slider.CustomHorizontalSlider'
6
7
  java_import 'monkstone.slider.CustomVerticalSlider'
@@ -8,34 +9,34 @@ java_import 'monkstone.slider.CustomVerticalSlider'
8
9
  module Slider
9
10
  def self.slider(app:, x:, y:, name:, **opts)
10
11
  options = default.merge opts
11
- if options[:vertical]
12
- slider = CustomVerticalSlider.new(
13
- app,
14
- x,
15
- y,
16
- options[:length],
17
- options[:range].first,
18
- options[:range].last,
19
- name
20
- )
21
- else
22
- slider = CustomHorizontalSlider.new(
23
- app,
24
- x,
25
- y,
26
- options[:length],
27
- options[:range].first,
28
- options[:range].last,
29
- name
30
- )
31
- end
12
+ slider = if options[:vertical]
13
+ 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
+ CustomHorizontalSlider.new(
24
+ app,
25
+ x,
26
+ y,
27
+ options[:length],
28
+ options[:range].first,
29
+ options[:range].last,
30
+ name
31
+ )
32
+ end
32
33
  unless opts.empty?
33
34
  slider.bar_width(opts.fetch(:bar_width, 10))
34
35
  slider.set_value(opts.fetch(:initial_value, 0))
35
36
  end
36
37
  slider
37
38
  end
38
-
39
+
39
40
  def self.default
40
41
  { length: 100, range: (0..100) }
41
42
  end
@@ -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
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Processing::App
2
4
  include Java::MonkstoneVideoevent::MovieEvent
3
5
  include Java::MonkstoneVideoevent::CaptureEvent
@@ -1,5 +1,6 @@
1
- # -*- encoding: utf-8 -*-
2
- lib = File.expand_path('../lib', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
  require 'picrate/version'
5
6
 
@@ -8,32 +9,30 @@ Gem::Specification.new do |gem|
8
9
  gem.version = PiCrate::VERSION
9
10
  gem.authors = ['monkstone']
10
11
  gem.email = ['mamba2928@yahoo.co.uk']
11
- gem.licenses = %w(GPL-3.0 LGPL-2.0)
12
+ gem.licenses = %w[GPL-3.0 LGPL-2.0]
12
13
  gem.description = <<~EOS
13
14
  A batteries included version of processing in ruby, for raspberrypi and
14
15
  linux. Install samples to configures geany ide.
15
16
  EOS
16
- gem.summary = %q{ruby wrapper for processing-3.5.3 on raspberrypi and linux64}
17
+ gem.summary = 'ruby implementation of processing-3 on raspberrypi and linux64'
17
18
  gem.homepage = 'https://ruby-processing.github.io/PiCrate/'
18
- gem.post_install_message = %q{Use 'picrate --install' to config geany & install samples}
19
- gem.files = `git ls-files`.split($/)
19
+ gem.post_install_message = "Use 'picrate --install' to config geany & install samples"
20
+ gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
20
21
  gem.files << "lib/picrate-#{PiCrate::VERSION}.jar"
21
22
  gem.files << 'lib/gluegen-rt.jar'
22
23
  gem.files << 'lib/jogl-all.jar'
23
24
  gem.files << 'lib/gluegen-rt-natives-linux-amd64.jar'
24
25
  gem.files << 'lib/gluegen-rt-natives-linux-armv6hf.jar'
25
- # gem.files << 'lib/gluegen-rt-natives-linux-aarch64.jar'
26
+ gem.files << 'lib/gluegen-rt-natives-linux-aarch64.jar'
26
27
  gem.files << 'lib/jogl-all-natives-linux-amd64.jar'
27
28
  gem.files << 'lib/jogl-all-natives-linux-armv6hf.jar'
28
- # gem.files << 'lib/jogl-all-natives-linux-aarch64.jar'
29
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
29
+ gem.files << 'lib/jogl-all-natives-linux-aarch64.jar'
30
+ gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
30
31
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
31
- gem.add_development_dependency 'rake', '~> 12.3'
32
32
  gem.add_development_dependency 'minitest', '~> 5.10'
33
- gem.add_runtime_dependency 'arcball', '~> 1.0.1'
34
- gem.add_runtime_dependency 'geomerative', '~> 1.1'
35
- gem.add_runtime_dependency 'ruby_wordcram', '~> 2.0.4'
33
+ gem.add_development_dependency 'rake', '~> 12.3'
34
+ gem.add_runtime_dependency 'arcball', '~> 1.0', '>= 1.0.1'
36
35
  gem.require_paths = ['lib']
37
36
  gem.platform = 'java'
38
- gem.requirements << 'java runtime == 8'
37
+ gem.requirements << 'java runtime == 11'
39
38
  end
data/pom.rb CHANGED
@@ -1,7 +1,8 @@
1
- project 'picrate', 'http://maven.apache.org' do
1
+ # frozen_string_literal: true
2
2
 
3
+ project 'picrate', 'http://maven.apache.org' do
3
4
  model_version '4.0.0'
4
- id 'ruby-processing:picrate:1.2.3'
5
+ id 'ruby-processing:picrate:2.1.0'
5
6
  packaging 'jar'
6
7
 
7
8
  description 'An integrated processing-core (somewhat hacked), with additional java code for a jruby version of processing.'
@@ -21,17 +22,16 @@ project 'picrate', 'http://maven.apache.org' do
21
22
  license 'LGPL 2', 'https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html'
22
23
 
23
24
  issue_management 'https://github.com/ruby-processing/PiCrate/issues', 'Github'
25
+ # Need to update to jogl 2.4.1 as soon as available, then make a dependency
26
+ properties('jogl.version' => '2.3.2',
27
+ 'jruby.api' => 'http://jruby.org/apidocs/',
28
+ 'source.directory' => 'src',
29
+ 'processing.api' => 'http://processing.github.io/processing-javadocs/core/',
30
+ 'picrate.basedir' => '${project.basedir}',
31
+ 'project.build.sourceEncoding' => 'utf-8',
32
+ 'polyglot.dump.pom' => 'pom.xml')
24
33
 
25
- properties( 'jogl.version' => '2.3.2',
26
- 'jruby.api' => 'http://jruby.org/apidocs/',
27
- 'source.directory' => 'src',
28
- 'processing.api' => 'http://processing.github.io/processing-javadocs/core/',
29
- 'picrate.basedir' => '${project.basedir}',
30
- 'project.build.sourceEncoding' => 'utf-8',
31
- 'polyglot.dump.pom' => 'pom.xml'
32
- )
33
-
34
- pom 'org.jruby:jruby:9.2.9.0'
34
+ pom 'org.jruby:jruby:9.2.12.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'
@@ -39,20 +39,22 @@ end
39
39
 
40
40
  overrides do
41
41
  plugin :resources, '3.1.0'
42
- plugin :dependency, '3.1.1'
43
- plugin( :compiler, '3.8.1', 'release' => '8' )
44
- plugin(
45
- :javadoc,
46
- '3.1.1',
47
- 'detectOfflineLinks' => 'false',
48
- 'links' => [ '${processing.api}', '${jruby.api}' ]
49
- )
50
- plugin(
51
- :jar, '3.1.2',
52
- 'archive' => {
53
- 'manifestEntries' => { 'Class-Path' => 'gluegen-rt.jar jog-all.jar' }
54
- }
55
- )
42
+ plugin :dependency, '3.1.2'
43
+ plugin(:compiler, '3.8.1',
44
+ 'release' => '11')
45
+ plugin(:javadoc, '2.10.4',
46
+ 'detectOfflineLinks' => 'false',
47
+ 'links' => ['${processing.api}',
48
+ '${jruby.api}'])
49
+ plugin(:jar, '3.2.0',
50
+ 'archive' => {
51
+ 'manifestEntries' => {
52
+ 'Class-Path' => 'gluegen-rt.jar jog-all.jar'
53
+ }
54
+ })
55
+ plugin :jdeps, '3.1.2' do
56
+ execute_goals 'jdkinternals', 'test-jdkinternals'
57
+ end
56
58
  end
57
59
 
58
60
  build do
data/pom.xml CHANGED
@@ -11,7 +11,7 @@ DO NOT MODIFIY - GENERATED CODE
11
11
  <modelVersion>4.0.0</modelVersion>
12
12
  <groupId>ruby-processing</groupId>
13
13
  <artifactId>picrate</artifactId>
14
- <version>1.2.3</version>
14
+ <version>2.1.0</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.9.0</version>
79
+ <version>9.2.12.0</version>
80
80
  <type>pom</type>
81
81
  </dependency>
82
82
  <dependency>
@@ -123,18 +123,18 @@ DO NOT MODIFIY - GENERATED CODE
123
123
  </plugin>
124
124
  <plugin>
125
125
  <artifactId>maven-dependency-plugin</artifactId>
126
- <version>3.1.1</version>
126
+ <version>3.1.2</version>
127
127
  </plugin>
128
128
  <plugin>
129
129
  <artifactId>maven-compiler-plugin</artifactId>
130
130
  <version>3.8.1</version>
131
131
  <configuration>
132
- <release>8</release>
132
+ <release>11</release>
133
133
  </configuration>
134
134
  </plugin>
135
135
  <plugin>
136
136
  <artifactId>maven-javadoc-plugin</artifactId>
137
- <version>3.1.1</version>
137
+ <version>2.10.4</version>
138
138
  <configuration>
139
139
  <detectOfflineLinks>false</detectOfflineLinks>
140
140
  <links>
@@ -145,7 +145,7 @@ DO NOT MODIFIY - GENERATED CODE
145
145
  </plugin>
146
146
  <plugin>
147
147
  <artifactId>maven-jar-plugin</artifactId>
148
- <version>3.1.2</version>
148
+ <version>3.2.0</version>
149
149
  <configuration>
150
150
  <archive>
151
151
  <manifestEntries>
@@ -154,6 +154,18 @@ DO NOT MODIFIY - GENERATED CODE
154
154
  </archive>
155
155
  </configuration>
156
156
  </plugin>
157
+ <plugin>
158
+ <artifactId>maven-jdeps-plugin</artifactId>
159
+ <version>3.1.2</version>
160
+ <executions>
161
+ <execution>
162
+ <goals>
163
+ <goal>jdkinternals</goal>
164
+ <goal>test-jdkinternals</goal>
165
+ </goals>
166
+ </execution>
167
+ </executions>
168
+ </plugin>
157
169
  </plugins>
158
170
  </pluginManagement>
159
171
  </build>
@@ -3,7 +3,7 @@
3
3
  * in their sketches. Includes a method to efficiently convert an cols of web
4
4
  * strings to an cols of color int, and another to convert an cols of p5 color
5
5
  * (int) to a string that can be used in ruby code (to generate web color cols).
6
- * Copyright (c) 2015-18 Martin Prout.
6
+ * Copyright (c) 2015-20 Martin Prout.
7
7
  * This utility is free software; you can redistribute it and/or modify
8
8
  * it under the terms of the GNU Lesser General Public License as published by
9
9
  * the Free Software Foundation; either version 2.1 of the License, or (at
@@ -2,7 +2,7 @@
2
2
  * The purpose of this tool is to allow JRubyArt users to use an alternative
3
3
  * to processing.org map, lerp and norm methods in their sketches and to implement
4
4
  * JRubyArt convenenience method grid(width, height, stepW, stepH) { |x, y| do stuff }
5
- * Copyright (c) 2015-19 Martin Prout. This tool is free software; you can
5
+ * Copyright (c) 2015-20 Martin Prout. This tool is free software; you can
6
6
  * redistribute it and/or modify it under the terms of the GNU Lesser General
7
7
  * Public License as published by the Free Software Foundation; either version
8
8
  * 2.1 of the License, or (at your option) any later version.
@@ -1,10 +1,10 @@
1
1
  /**
2
- * The purpose of this class is to load the MathTool into PiCrate runtime
3
- * Copyright (C) 18 Martin Prout. This code is free software; you can
2
+ * The purpose of this class is to load the MathTool into PiCrate runtime
3
+ * Copyright (C) 2018-20 Martin Prout. This code is free software; you can
4
4
  * redistribute it and/or modify it under the terms of the GNU Lesser General
5
- * Public License as published by the Free Software Foundation; either version
5
+ * Public License as published by the Free Software Foundation; either version
6
6
  * 2.1 of the License, or (at your option) any later version.
7
- *
7
+ *
8
8
  * Obtain a copy of the license at http://www.gnu.org/licenses/gpl-3.0-standalone.html
9
9
  */
10
10
 
@@ -23,7 +23,7 @@ import org.jruby.runtime.load.Library;
23
23
  * @author Martin Prout
24
24
  */
25
25
  public class PicrateLibrary implements Library{
26
-
26
+
27
27
  /**
28
28
  *
29
29
  * @param runtime
@@ -33,8 +33,8 @@ public class PicrateLibrary implements Library{
33
33
  Deglut.createDeglut(runtime);
34
34
  Vec2.createVec2(runtime);
35
35
  Vec3.createVec3(runtime);
36
- }
37
-
36
+ }
37
+
38
38
  /**
39
39
  *
40
40
  * @param runtime
@@ -44,5 +44,5 @@ public class PicrateLibrary implements Library{
44
44
  @Override
45
45
  public void load(final Ruby runtime, boolean wrap) throws IOException {
46
46
  load(runtime);
47
- }
47
+ }
48
48
  }
@@ -1,18 +1,18 @@
1
- /*
2
- * Copyright (c) 2018-19 Martin Prout
3
- *
1
+ /*
2
+ * Copyright (c) 2018-20 Martin Prout
3
+ *
4
4
  * This library is free software; you can redistribute it and/or
5
5
  * modify it under the terms of the GNU General Public
6
6
  * License as published by the Free Software Foundation; either
7
7
  * version 3.0 of the License, or (at your option) any later version.
8
- *
8
+ *
9
9
  * http://creativecommons.org/licenses/LGPL/2.1/
10
- *
10
+ *
11
11
  * This library is distributed in the hope that it will be useful,
12
12
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
13
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
14
  * Lesser General Public License for more details.
15
- *
15
+ *
16
16
  * You should have received a copy of the GNU General Public
17
17
  * License along with this library; if not, write to the Free Software
18
18
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
@@ -35,7 +35,7 @@ import org.jruby.runtime.builtin.IRubyObject;
35
35
  */
36
36
  @JRubyModule(name = "DegLut")
37
37
  public class Deglut {
38
-
38
+
39
39
  /**
40
40
  * Lookup table for degree cosine/sine, has a fixed precision 1.0
41
41
  * degrees Quite accurate but imprecise
@@ -49,11 +49,11 @@ public class Deglut {
49
49
  *
50
50
  */
51
51
  private static boolean initialized = false;
52
-
52
+
53
53
  private final static int NINETY = 90;
54
54
  private final static int FULL = 360;
55
55
  private static final long serialVersionUID = -1466528933765940101L;
56
-
56
+
57
57
  /**
58
58
  * Initialize sin table with values (first quadrant only)
59
59
  */
@@ -65,19 +65,19 @@ public class Deglut {
65
65
  initialized = true;
66
66
  }
67
67
  }
68
-
68
+
69
69
  /**
70
70
  *
71
71
  * @param runtime Ruby
72
72
  */
73
-
73
+
74
74
  public static void createDeglut(final Ruby runtime){
75
75
  RubyModule deglutModule = runtime.defineModule("DegLut");
76
76
  deglutModule.defineAnnotatedMethods(Deglut.class);
77
77
  Deglut.initTable();
78
78
  }
79
-
80
-
79
+
80
+
81
81
  /**
82
82
  *
83
83
  * @param context ThreadContext
@@ -86,7 +86,7 @@ public class Deglut {
86
86
  * @return sin IRubyObject
87
87
  */
88
88
  @JRubyMethod(name = "sin", module = true)
89
-
89
+
90
90
  public static IRubyObject sin(ThreadContext context, IRubyObject recv, IRubyObject other) {
91
91
  int thet = (int) ((RubyInteger)other).getLongValue();
92
92
  while (thet < 0) {
@@ -99,7 +99,7 @@ public class Deglut {
99
99
  ? -SIN_DEG_LUT[y] : -SIN_DEG_LUT[NINETY - y];
100
100
  return context.runtime.newFloat(result);
101
101
  }
102
-
102
+
103
103
  /**
104
104
  *
105
105
  * @param context ThreadContext
@@ -119,5 +119,5 @@ public class Deglut {
119
119
  ? -SIN_DEG_LUT[y] : (theta < 270)
120
120
  ? -SIN_DEG_LUT[NINETY - y] : SIN_DEG_LUT[y];
121
121
  return context.runtime.newFloat(result);
122
- }
122
+ }
123
123
  }