gray_scott_gtk3 0.3.1 → 0.3.2

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: 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