gray_scott_gtk3 0.3.1 → 0.3.2

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: 59b96eb9bc094186629bcb54a07917c051b926c48c73670b40d030e7ee8d6fa6
4
- data.tar.gz: 61e4be42ce0493aa08a78563bd7e6a3135699d29d5ceead8ef33914288717501
3
+ metadata.gz: dc4073fb80e208c5af63ea40b5c05d9b4078a2e8a05f5c9e9c8a13b73d20b5a6
4
+ data.tar.gz: f97b366371ea21e8316a70b72a3330694eca1a056b97ea794bca9286bfac3709
5
5
  SHA512:
6
- metadata.gz: 600a72aebd92e2ebb81ad8927168b763c15d9a11b15294c3a4922af7dc8d80a5cd954ebde5ce33bc741d0383cb2c4e2690f2a264635813cadfd295b72284d52d
7
- data.tar.gz: fec514e7e4914670d06e9ed5df3d76283a2f0eef8c513b73c498a1489b8605f1e4fdbba3732b6bdcd01f61039ad5e5b57b468345140e20192d6633fb0980548b
6
+ metadata.gz: 98317af10dfa5bcf97960e01d0a4f6216c42f9c7378b082203819685e2710a581da72fcb39c9d8561a5c731996fe7fd9d857bd23cb1407213acdcbf55f6e19d9
7
+ data.tar.gz: 12344e46949d46085c9c9710811848320106228bf5a630ac6a819516430f9f747b3020911b9918e86b830bcae816e9809c07707bec3bf005a346085d1ba9df8a
data/.gitignore CHANGED
@@ -43,9 +43,13 @@ build-iPhoneSimulator/
43
43
 
44
44
  # for a library or gem, you might want to ignore these files since the code is
45
45
  # intended to run in multiple environments; otherwise, check them in:
46
- # Gemfile.lock
46
+ Gemfile.lock
47
47
  # .ruby-version
48
48
  # .ruby-gemset
49
49
 
50
50
  # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
51
51
  .rvmrc
52
+
53
+ # rspec
54
+ /spec/reports/
55
+ .rspec_status
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
3
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
5
  # Specify your gem's dependencies in gray_scott_gtk3.gemspec
6
6
  gemspec
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Gray-Scott
2
2
 
3
- ![screenshot](https://raw.githubusercontent.com/kojix2/Gray-Scott/master/screenshot/screenshot.png)
3
+ ![screenshot](https://raw.githubusercontent.com/kojix2/Gray-Scott/develop2/screenshot/screenshot.gif)
4
4
 
5
5
  ## Requirements
6
6
 
data/Rakefile CHANGED
@@ -1,2 +1,6 @@
1
- require "bundler/gem_tasks"
2
- task :default => :spec
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: :spec
data/bin/console CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "bundler/setup"
4
- require "gray_scott_gtk3"
3
+ require 'bundler/setup'
4
+ require 'gray_scott_gtk3'
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +10,5 @@ require "gray_scott_gtk3"
10
10
  # require "pry"
11
11
  # Pry.start
12
12
 
13
- require "irb"
13
+ require 'irb'
14
14
  IRB.start(__FILE__)
data/exe/grayscott CHANGED
@@ -1,6 +1,16 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "gray_scott_gtk3"
3
+ require 'gray_scott_gtk3'
4
+ require 'optparse'
5
+
6
+ opt = {}
7
+ OptionParser.new do |op|
8
+ op.banner += ' msec'
9
+ op.on('-h val', '--height', 'height of the model') { |v| opt[:height] = v.to_i }
10
+ op.on('-w val', '--width', 'width of the model') { |v| opt[:width] = v.to_i }
11
+ op.version = GrayScottGtk3::VERSION
12
+ op.parse!(ARGV)
13
+ end
4
14
 
5
15
  if ARGV[0]
6
16
  module GrayScottGtk3
@@ -11,13 +21,13 @@ else
11
21
  exit
12
22
  end
13
23
 
14
- module GrayScottGtk3
24
+ module GrayScottGtk3
15
25
  class << self
16
- def run
26
+ def run(opt)
17
27
  xml_path = File.expand_path('../resources/', __dir__)
18
- Controller.new xml_path
28
+ Controller.new(xml_path, opt)
19
29
  end
20
30
  end
21
31
  end
22
32
 
23
- GrayScottGtk3.run
33
+ GrayScottGtk3.run(opt)
@@ -1,31 +1,30 @@
1
-
2
- lib = File.expand_path("../lib", __FILE__)
1
+ lib = File.expand_path('lib', __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "gray_scott_gtk3/version"
3
+ require 'gray_scott_gtk3/version'
5
4
 
6
5
  Gem::Specification.new do |spec|
7
- spec.name = "gray_scott_gtk3"
6
+ spec.name = 'gray_scott_gtk3'
8
7
  spec.version = GrayScottGtk3::VERSION
9
- spec.authors = ["kojix2"]
10
- spec.email = ["2xijok@gmail.com"]
8
+ spec.authors = ['kojix2']
9
+ spec.email = ['2xijok@gmail.com']
11
10
 
12
- spec.summary = %q{Gray-Scott model.}
13
- spec.description = %q{Gray-Scott model.}
14
- spec.homepage = "https://github.com/kojix2/Gray-Scott"
11
+ spec.summary = 'Gray-Scott model.'
12
+ spec.description = 'Reaction diffusion system (Gray-Scott model).'
13
+ spec.homepage = 'https://github.com/kojix2/Gray-Scott'
15
14
 
16
15
  # Specify which files should be added to the gem when it is released.
17
16
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
18
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
17
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
19
18
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
20
19
  end
21
- spec.bindir = "exe"
20
+ spec.bindir = 'exe'
22
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
- spec.require_paths = ["lib"]
22
+ spec.require_paths = ['lib']
24
23
 
25
- spec.add_dependency "numo-narray"
26
- spec.add_dependency "rsvg2"
27
- spec.add_dependency "gtk3"
24
+ spec.add_dependency 'numo-narray'
25
+ spec.add_dependency 'gtk3'
28
26
 
29
- spec.add_development_dependency "bundler", "~> 1.17"
30
- spec.add_development_dependency "rake", "~> 10.0"
27
+ spec.add_development_dependency 'bundler', '~> 1.17'
28
+ spec.add_development_dependency 'rake', '~> 10.0'
29
+ spec.add_development_dependency 'rspec'
31
30
  end
@@ -2,12 +2,12 @@ require 'numo/narray'
2
2
  require 'gtk3'
3
3
 
4
4
  module ShortNumo
5
- N = Numo
6
- class Numo::SFloat
7
- alias _ inplace
8
- end
9
- SFloat = Numo::SFloat
10
- UInt8 = Numo::UInt8
5
+ N = Numo
6
+ class Numo::SFloat
7
+ alias _ inplace
8
+ end
9
+ SFloat = Numo::SFloat
10
+ UInt8 = Numo::UInt8
11
11
  end
12
12
 
13
13
  require 'gray_scott_gtk3/model'
@@ -1,14 +1,16 @@
1
+ require_relative 'controller/aboutdialog'
2
+
1
3
  module GrayScottGtk3
2
4
  class Controller
3
5
  include ShortNumo
4
6
  attr_accessor :resource_dir, :height, :width, :model
5
7
 
6
- def initialize(dir)
8
+ def initialize(dir, height: 256, width: 256)
7
9
  @resource_dir = dir
8
- @height = 256
9
- @width = 256
10
+ @height = height
11
+ @width = width
10
12
  @model = Model.new(height: height, width: width)
11
- @show_u = true
13
+ @show_u = false
12
14
  @color = 'colorful'
13
15
 
14
16
  builder = Gtk::Builder.new
@@ -21,17 +23,12 @@ module GrayScottGtk3
21
23
  builder.connect_signals { |handler| method(handler) }
22
24
 
23
25
  @win.show_all # window
26
+ on_new_clicked
24
27
  Gtk.main
25
28
  end
26
29
 
27
30
  def show_about
28
- a = Gtk::AboutDialog.new
29
- a.program_name = 'Gray-Scott'
30
- a.logo = GdkPixbuf::Pixbuf.new(file: File.join(resource_dir, 'about_icon.png'))
31
- a.authors = ['kojix2']
32
- a.version = GrayScottGtk3::VERSION
33
- a.run
34
- a.destroy
31
+ AboutDialog.new resource_dir
35
32
  end
36
33
 
37
34
  def on_f_changed(f)
@@ -91,14 +88,6 @@ module GrayScottGtk3
91
88
 
92
89
  def on_new_clicked
93
90
  model.clear
94
- if @show_u && !@doing_now
95
- dialog = Gtk::MessageDialog.new(message: 'display V density',
96
- type: :info,
97
- tutton_type: :close)
98
- dialog.run
99
- @uv_combobox.active = 1 # v
100
- dialog.destroy
101
- end
102
91
  display_legend
103
92
  display
104
93
  end
@@ -118,7 +107,7 @@ module GrayScottGtk3
118
107
  x = e.x * width / 512
119
108
  y = e.y * height / 512
120
109
  r = @pen_radius.value
121
- if x > r && y > r && x < (height - 1 - r) && y < (width - 1 - r)
110
+ if x > r && y > r && x < (width - 1 - r) && y < (height - 1 - r)
122
111
  model.v[(y - r)..(y + r), (x - r)..(x + r)] = @pen_density.value
123
112
  end
124
113
  display unless doing_now?
@@ -0,0 +1,15 @@
1
+ module GrayScottGtk3
2
+ class Controller
3
+ class AboutDialog
4
+ def initialize(resource_dir)
5
+ @a = Gtk::AboutDialog.new
6
+ @a.program_name = 'Gray-Scott'
7
+ @a.logo = GdkPixbuf::Pixbuf.new(file: File.join(resource_dir, 'about_icon.png'))
8
+ @a.authors = ['kojix2']
9
+ @a.version = GrayScottGtk3::VERSION
10
+ @a.run
11
+ @a.destroy
12
+ end
13
+ end
14
+ end
15
+ end
@@ -30,8 +30,8 @@ module GrayScottGtk3
30
30
  l_v = SFloat._laplacian2d v, Dx
31
31
 
32
32
  uvv = u * v * v
33
- dudt = Du * l_u - uvv + @f * (1.0 - u)
34
- dvdt = Dv * l_v + uvv - (@f + @k) * v
33
+ dudt = Du * l_u - uvv + f * (1.0 - u)
34
+ dvdt = Dv * l_v + uvv - (f + k) * v
35
35
  u._ + (Dt * dudt)
36
36
  v._ + (Dt * dvdt)
37
37
  end
@@ -1,3 +1,3 @@
1
1
  module GrayScottGtk3
2
- VERSION = '0.3.1'.freeze
2
+ VERSION = '0.3.2'.freeze
3
3
  end
@@ -1,7 +1,7 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <!-- Generated with glade 3.22.1 -->
3
3
  <interface>
4
- <requires lib="gtk+" version="3.20"/>
4
+ <requires lib="gtk+" version="3.16"/>
5
5
  <object class="GtkAdjustment" id="f">
6
6
  <property name="upper">0.10000000000000001</property>
7
7
  <property name="value">0.040000000000000001</property>
@@ -142,7 +142,7 @@
142
142
  <property name="can_focus">True</property>
143
143
  <property name="receives_default">True</property>
144
144
  <property name="use_stock">True</property>
145
- <property name="image_position">bottom</property>
145
+ <property name="image_position">top</property>
146
146
  <property name="always_show_image">True</property>
147
147
  <signal name="clicked" handler="on_new_clicked" swapped="no"/>
148
148
  </object>
@@ -293,7 +293,7 @@
293
293
  <object class="GtkComboBoxText" id="uv_combobox">
294
294
  <property name="visible">True</property>
295
295
  <property name="can_focus">False</property>
296
- <property name="active">0</property>
296
+ <property name="active">1</property>
297
297
  <items>
298
298
  <item translatable="yes">U</item>
299
299
  <item translatable="yes">V</item>
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gray_scott_gtk3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - kojix2
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-12-05 00:00:00.000000000 Z
11
+ date: 2018-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: numo-narray
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: rsvg2
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: gtk3
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -80,7 +66,21 @@ dependencies:
80
66
  - - "~>"
81
67
  - !ruby/object:Gem::Version
82
68
  version: '10.0'
83
- description: Gray-Scott model.
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: Reaction diffusion system (Gray-Scott model).
84
84
  email:
85
85
  - 2xijok@gmail.com
86
86
  executables:
@@ -89,8 +89,8 @@ extensions: []
89
89
  extra_rdoc_files: []
90
90
  files:
91
91
  - ".gitignore"
92
+ - ".rspec"
92
93
  - Gemfile
93
- - Gemfile.lock
94
94
  - README.md
95
95
  - Rakefile
96
96
  - bin/console
@@ -99,11 +99,13 @@ files:
99
99
  - gray_scott_gtk3.gemspec
100
100
  - lib/gray_scott_gtk3.rb
101
101
  - lib/gray_scott_gtk3/controller.rb
102
+ - lib/gray_scott_gtk3/controller/aboutdialog.rb
102
103
  - lib/gray_scott_gtk3/laplacian.rb
103
104
  - lib/gray_scott_gtk3/model.rb
104
105
  - lib/gray_scott_gtk3/version.rb
105
106
  - resources/about_icon.png
106
107
  - resources/gray_scott.glade
108
+ - screenshot/screenshot.gif
107
109
  - screenshot/screenshot.png
108
110
  homepage: https://github.com/kojix2/Gray-Scott
109
111
  licenses: []
data/Gemfile.lock DELETED
@@ -1,56 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- gray_scott_gtk3 (0.3.0)
5
- gtk3
6
- numo-narray
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- atk (3.3.0)
12
- glib2 (= 3.3.0)
13
- cairo (1.16.2)
14
- native-package-installer (>= 1.0.3)
15
- pkg-config (>= 1.2.2)
16
- cairo-gobject (3.3.0)
17
- cairo (>= 1.16.1)
18
- glib2 (= 3.3.0)
19
- gdk3 (3.3.0)
20
- cairo-gobject (= 3.3.0)
21
- gdk_pixbuf2 (= 3.3.0)
22
- pango (= 3.3.0)
23
- gdk_pixbuf2 (3.3.0)
24
- gio2 (= 3.3.0)
25
- gio2 (3.3.0)
26
- glib2 (= 3.3.0)
27
- gobject-introspection (= 3.3.0)
28
- glib2 (3.3.0)
29
- native-package-installer (>= 1.0.3)
30
- pkg-config (>= 1.2.2)
31
- gobject-introspection (3.3.0)
32
- glib2 (= 3.3.0)
33
- gtk3 (3.3.0)
34
- atk (= 3.3.0)
35
- gdk3 (= 3.3.0)
36
- gdk_pixbuf2 (= 3.3.0)
37
- gio2 (= 3.3.0)
38
- pango (= 3.3.0)
39
- native-package-installer (1.0.6)
40
- numo-narray (0.9.1.3)
41
- pango (3.3.0)
42
- cairo-gobject (= 3.3.0)
43
- gobject-introspection (= 3.3.0)
44
- pkg-config (1.3.2)
45
- rake (10.5.0)
46
-
47
- PLATFORMS
48
- ruby
49
-
50
- DEPENDENCIES
51
- bundler (~> 1.17)
52
- gray_scott_gtk3!
53
- rake (~> 10.0)
54
-
55
- BUNDLED WITH
56
- 1.17.1