picrate 1.3.0-java → 2.0.0.pre-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/.mvn/extensions.xml +1 -1
  3. data/.mvn/wrapper/maven-wrapper.properties +2 -2
  4. data/CHANGELOG.md +2 -1
  5. data/Gemfile +3 -1
  6. data/README.md +4 -2
  7. data/Rakefile +8 -4
  8. data/bin/picrate +3 -1
  9. data/docs/_posts/2019-11-11-getting_started_buster.md +1 -1
  10. data/lib/picrate.rb +1 -1
  11. data/lib/picrate/app.rb +10 -3
  12. data/lib/picrate/creators/parameters.rb +8 -8
  13. data/lib/picrate/creators/sketch_factory.rb +5 -3
  14. data/lib/picrate/helper_methods.rb +21 -21
  15. data/lib/picrate/helpers/numeric.rb +2 -0
  16. data/lib/picrate/library.rb +5 -1
  17. data/lib/picrate/library_loader.rb +2 -0
  18. data/lib/picrate/native_folder.rb +6 -4
  19. data/lib/picrate/native_loader.rb +3 -0
  20. data/lib/picrate/runner.rb +1 -0
  21. data/lib/picrate/version.rb +1 -1
  22. data/library/boids/boids.rb +17 -8
  23. data/library/chooser/chooser.rb +10 -9
  24. data/library/color_group/color_group.rb +2 -0
  25. data/library/control_panel/control_panel.rb +7 -4
  26. data/library/dxf/dxf.rb +2 -0
  27. data/library/library_proxy/library_proxy.rb +2 -0
  28. data/library/net/net.rb +2 -0
  29. data/library/slider/slider.rb +24 -23
  30. data/library/vector_utils/vector_utils.rb +4 -0
  31. data/library/video_event/video_event.rb +2 -0
  32. data/picrate.gemspec +14 -12
  33. data/pom.rb +15 -15
  34. data/pom.xml +5 -5
  35. data/src/main/java/monkstone/ColorUtil.java +1 -1
  36. data/src/main/java/monkstone/MathToolModule.java +1 -1
  37. data/src/main/java/monkstone/PicrateLibrary.java +8 -8
  38. data/src/main/java/monkstone/fastmath/Deglut.java +16 -16
  39. data/src/main/java/monkstone/filechooser/Chooser.java +1 -1
  40. data/src/main/java/monkstone/noise/SimplexNoise.java +3 -3
  41. data/src/main/java/monkstone/slider/CustomHorizontalSlider.java +1 -1
  42. data/src/main/java/monkstone/slider/CustomVerticalSlider.java +1 -1
  43. data/src/main/java/monkstone/slider/SimpleHorizontalSlider.java +12 -12
  44. data/src/main/java/monkstone/slider/SimpleVerticalSlider.java +1 -1
  45. data/src/main/java/monkstone/slider/SliderBar.java +1 -1
  46. data/src/main/java/monkstone/slider/SliderGroup.java +1 -1
  47. data/src/main/java/monkstone/slider/WheelHandler.java +1 -1
  48. data/src/main/java/monkstone/vecmath/package-info.java +1 -1
  49. data/src/main/java/monkstone/vecmath/vec2/Vec2.java +1 -1
  50. data/src/main/java/monkstone/vecmath/vec3/Vec3.java +1 -1
  51. data/src/main/java/monkstone/videoevent/CaptureEvent.java +1 -1
  52. data/src/main/java/monkstone/videoevent/MovieEvent.java +1 -1
  53. data/src/main/java/monkstone/videoevent/package-info.java +1 -1
  54. data/src/main/java/processing/awt/PGraphicsJava2D.java +11 -13
  55. data/src/main/java/processing/awt/PSurfaceAWT.java +0 -20
  56. data/src/main/java/processing/core/PApplet.java +1949 -2247
  57. data/src/main/java/processing/core/PConstants.java +180 -180
  58. data/src/main/java/processing/core/PFont.java +2 -2
  59. data/src/main/java/processing/core/PGraphics.java +90 -90
  60. data/src/main/java/processing/core/PImage.java +65 -65
  61. data/src/main/java/processing/core/PMatrix.java +39 -39
  62. data/src/main/java/processing/core/PSurface.java +37 -37
  63. data/src/main/java/processing/core/PVector.java +2 -2
  64. data/src/main/java/processing/data/FloatDict.java +251 -284
  65. data/src/main/java/processing/data/TableRow.java +32 -32
  66. data/src/main/java/processing/dxf/RawDXF.java +3 -3
  67. data/src/main/java/processing/net/Client.java +1 -1
  68. data/src/main/java/processing/opengl/PGL.java +3884 -3950
  69. data/src/main/java/processing/opengl/PGraphicsOpenGL.java +38 -21
  70. data/src/main/java/processing/opengl/PSurfaceJOGL.java +42 -61
  71. data/test/color_group_test.rb +4 -4
  72. data/test/deglut_spec_test.rb +2 -0
  73. data/test/helper_methods_test.rb +41 -13
  74. data/test/math_tool_test.rb +46 -37
  75. data/test/respond_to_test.rb +5 -3
  76. data/test/sketches/key_event.rb +2 -2
  77. data/test/sketches/library/my_library/my_library.rb +3 -0
  78. data/test/test_helper.rb +2 -0
  79. data/test/vecmath_spec_test.rb +30 -19
  80. data/vendors/Rakefile +2 -2
  81. metadata +29 -17
@@ -1,18 +1,19 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # Usage:
3
4
  # load_library :chooser
4
- #
5
+ #
5
6
  # def setup
6
- # java_signature 'void selectInput(String, String)'
7
- # selectInput('Select a file to process:', 'fileSelected')
7
+ # java_signature 'void selectInput(String, String)'
8
+ # selectInput('Select a file to process:', 'fileSelected')
8
9
  # end
9
- #
10
+ #
10
11
  # def fileSelected(selection)
11
- # if selection.nil?
12
- # puts 'Window was closed or the user hit cancel.'
13
- # else
14
- # puts format('User selected %s', selection.get_absolute_path)
15
- # end
12
+ # if selection.nil?
13
+ # puts 'Window was closed or the user hit cancel.'
14
+ # else
15
+ # puts format('User selected %s', selection.get_absolute_path)
16
+ # end
16
17
  # end
17
18
  class Processing::App
18
19
  include Java::MonkstoneFilechooser::Chooser
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  java_import Java::Monkstone::ColorUtil
2
4
 
3
5
  # class wraps a java color array (of signed int), supports shuffle!, last and
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Here's a little library for quickly hooking up controls to sketches.
2
4
  # For messing with the parameters and such.
3
5
  # These controls will set instance variables on the sketches.
@@ -25,7 +27,7 @@ module ControlPanel
25
27
  add_change_listener do
26
28
  update_label(label, name, value)
27
29
  ControlPanel.app_value(name, value)
28
- proc.call(value) if proc
30
+ proc&.call(value)
29
31
  end
30
32
  ControlPanel.app_value(name, val)
31
33
  end
@@ -49,7 +51,7 @@ module ControlPanel
49
51
  control_panel.add_element(self, name)
50
52
  add_action_listener do
51
53
  ControlPanel.app_value(name, value) unless value.nil?
52
- proc.call(value) if proc
54
+ proc&.call(value)
53
55
  end
54
56
  set_selected_index(initial_value ? elements.index(initial_value) : 0)
55
57
  end
@@ -69,7 +71,7 @@ module ControlPanel
69
71
  control_panel.add_element(self, name, false)
70
72
  add_action_listener do
71
73
  ControlPanel.app_value(name, value)
72
- proc.call(value) if proc
74
+ proc&.call(value)
73
75
  end
74
76
  end
75
77
 
@@ -87,7 +89,7 @@ module ControlPanel
87
89
  control_panel.add_element(self, name, false, true)
88
90
  add_action_listener do
89
91
  Processing.app.send(name)
90
- proc.call(value) if proc
92
+ proc&.call(value)
91
93
  end
92
94
  end
93
95
  end
@@ -171,6 +173,7 @@ module ControlPanel
171
173
  def control_panel
172
174
  @control_panel ||= ControlPanel::Panel.new
173
175
  return @control_panel unless block_given?
176
+
174
177
  yield(@control_panel)
175
178
  @control_panel.display
176
179
  @control_panel.set_visible true
@@ -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,31 +9,32 @@ 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 implementation of processing-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'
26
+ # gem.files << 'lib/gluegen-rt-natives-linux-aarch64.jar'
25
27
  gem.files << 'lib/jogl-all-natives-linux-amd64.jar'
26
28
  gem.files << 'lib/jogl-all-natives-linux-armv6hf.jar'
27
- 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) }
28
31
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
29
- gem.add_development_dependency 'rake', '~> 12.3'
30
32
  gem.add_development_dependency 'minitest', '~> 5.10'
31
- gem.add_runtime_dependency 'arcball', '~> 1.0.1'
32
- # geomerative + wordcram dependency since they may update to jdk11+ soon
33
+ gem.add_development_dependency 'rake', '~> 12.3'
34
+ gem.add_runtime_dependency 'arcball', '~> 1.0', '>= 1.0.1'
33
35
  gem.add_runtime_dependency 'geomerative', '~> 1.1'
34
- gem.add_runtime_dependency 'ruby_wordcram', '~> 2.0.4'
36
+ gem.add_runtime_dependency 'ruby_wordcram', '~> 2.0', '>= 2.0.4'
35
37
  gem.require_paths = ['lib']
36
38
  gem.platform = 'java'
37
- gem.requirements << 'java runtime == 8'
39
+ gem.requirements << 'java runtime == 11+'
38
40
  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.3.0'
5
+ id 'ruby-processing:picrate:2.0.0.pre'
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.'
@@ -22,14 +23,13 @@ project 'picrate', 'http://maven.apache.org' do
22
23
 
23
24
  issue_management 'https://github.com/ruby-processing/PiCrate/issues', 'Github'
24
25
 
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
- )
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')
33
33
 
34
34
  pom 'org.jruby:jruby:9.2.11.0'
35
35
  jar 'org.jogamp.jogl:jogl-all:${jogl.version}'
@@ -38,14 +38,14 @@ project 'picrate', 'http://maven.apache.org' do
38
38
  end
39
39
 
40
40
  overrides do
41
- plugin :resources, '3.1.0'
42
- plugin :dependency, '3.1.1'
43
- plugin( :compiler, '3.8.1', 'release' => '8' )
41
+ plugin :resources, '2.7'
42
+ plugin :dependency, '2.8'
43
+ plugin(:compiler, '3.8.1', 'release' => '11')
44
44
  plugin(
45
45
  :javadoc,
46
46
  '3.1.1',
47
- 'detectOfflineLinks' => 'false',
48
- 'links' => [ '${processing.api}', '${jruby.api}' ]
47
+ 'detectOfflineLinks' => 'false',
48
+ 'links' => ['${processing.api}', '${jruby.api}']
49
49
  )
50
50
  plugin(
51
51
  :jar, '3.1.2',
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 https://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 http://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>1.3.0</version>
14
+ <version>2.0.0.pre</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>
@@ -119,17 +119,17 @@ DO NOT MODIFIY - GENERATED CODE
119
119
  <plugins>
120
120
  <plugin>
121
121
  <artifactId>maven-resources-plugin</artifactId>
122
- <version>3.1.0</version>
122
+ <version>2.7</version>
123
123
  </plugin>
124
124
  <plugin>
125
125
  <artifactId>maven-dependency-plugin</artifactId>
126
- <version>3.1.1</version>
126
+ <version>2.8</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>
@@ -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
  }