ruby-gr 0.58.1.0 → 0.61.0.0
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 +4 -4
- data/README.md +6 -17
- data/lib/gr/ffi.rb +8 -0
- data/lib/gr/plot.rb +8 -5
- data/lib/gr.rb +76 -5
- data/lib/gr3/ffi.rb +4 -0
- data/lib/gr3.rb +1 -0
- data/lib/gr_commons/fiddley.rb +1 -1
- data/lib/gr_commons/version.rb +1 -1
- data/lib/grm.rb +1 -0
- metadata +3 -87
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bacbabae072c86f3b7b227a82043d4ff8e0aaad4df9da3234582270491790d4c
|
4
|
+
data.tar.gz: 033e92c26281e32cc5b4a9d42d79c56953fac00b1da5a9479b472ce94f77c995
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f181ff21a1254fd0791ec2e8862586be634b2ecdb4e5bec76298e22b5bf7dd59e727159cfc9c9b2fde6fc739b99cb889f25041b3592dad93ca2c1b183cb8153e
|
7
|
+
data.tar.gz: b4441cc2dbc8f2e7067d80c13407feff556f8fcb5cdb993b936df797ccfd8edd67c9db98a17fff9bf62c7a2f546877e065ba38f6bd0752e2d743473c5cbbeebd
|
data/README.md
CHANGED
@@ -188,31 +188,20 @@ macOS : Please the section "How to open apps from un-notarized or unidentified
|
|
188
188
|
|
189
189
|
```sh
|
190
190
|
brew install libgr
|
191
|
-
export GKS_WSTYPE=411 # gksqt (recommended)
|
192
191
|
```
|
193
192
|
|
194
|
-
|
195
|
-
|
196
|
-
[packages.red-data-tools.org](https://github.com/red-data-tools/packages.red-data-tools.org) provides `libgr-dev`, `libgr3-dev` and `libgrm-dev`
|
197
|
-
|
198
|
-
Debian GNU/Linux and Ubuntu
|
193
|
+
Set the workstation type to gksqt.
|
199
194
|
|
200
195
|
```sh
|
201
|
-
|
202
|
-
wget https://packages.red-data-tools.org/$(lsb_release --id --short | tr 'A-Z' 'a-z'\
|
203
|
-
)/red-data-tools-apt-source-latest-$(lsb_release --codename --short).deb
|
204
|
-
sudo apt install -y -V ./red-data-tools-apt-source-latest-$(lsb_release --codename --short).deb
|
205
|
-
sudo apt update
|
206
|
-
sudo apt install libgrm-dev
|
196
|
+
export GKS_WSTYPE=411 # gksqt (recommended)
|
207
197
|
```
|
208
198
|
|
209
|
-
#### Linux -
|
199
|
+
#### Linux - openSUSE Build service
|
210
200
|
|
211
|
-
CentOS
|
201
|
+
GR releases are also available from the [openSUSE Build service](https://software.opensuse.org//download.html?project=science%3Agr-framework&package=gr) for CentOS, Debian, Fedora openSUSE and Ubuntu. Obtain a packaged release [here](https://software.opensuse.org//download.html?project=science%3Agr-framework&package=gr).
|
212
202
|
|
213
203
|
```sh
|
214
|
-
|
215
|
-
sudo dnf install -y gr-devel
|
204
|
+
export GRDIR="/usr/gr" # Check the location with `dpkg -L gr`
|
216
205
|
```
|
217
206
|
|
218
207
|
#### Windows - MSYS2
|
@@ -244,7 +233,7 @@ bundle exec rake test
|
|
244
233
|
|
245
234
|
## Future plans
|
246
235
|
|
247
|
-
*
|
236
|
+
* Creating a backend for [Charty](https://github.com/red-data-tools/charty).
|
248
237
|
* [Object-oriented interface](https://github.com/kojix2/GRUtils.rb) based on [GRUtils.jl](https://github.com/heliosdrm/GRUtils.jl).
|
249
238
|
|
250
239
|
## Acknowledgements
|
data/lib/gr/ffi.rb
CHANGED
@@ -209,5 +209,13 @@ module GR
|
|
209
209
|
try_extern 'void gr_inqtextencoding(int *)'
|
210
210
|
try_extern 'void gr_loadfont(char *, int *)'
|
211
211
|
# gr_setcallback(char *(*)(const char *));
|
212
|
+
try_extern 'void gr_setthreadnumber(int)'
|
213
|
+
try_extern 'void gr_setpicturesizeforvolume(int, int)'
|
214
|
+
try_extern 'void gr_setvolumebordercalculation(int)'
|
215
|
+
try_extern 'void gr_setapproximativecalculation(int)'
|
216
|
+
try_extern 'void gr_inqvolumeflags(int *, int *, int *, int *, int *)'
|
217
|
+
try_extern 'void gr_cpubasedvolume(int, int, int, double *, int, double *, double *, double *, double *)'
|
218
|
+
try_extern 'void gr_inqvpsize(int *, int *, double *)'
|
219
|
+
try_extern 'void gr_polygonmesh3d(int, const double *, const double *, const double *, int, const int *, const int *)'
|
212
220
|
end
|
213
221
|
end
|
data/lib/gr/plot.rb
CHANGED
@@ -89,7 +89,8 @@ module GR
|
|
89
89
|
attr_accessor :args, :kvs, :scheme
|
90
90
|
|
91
91
|
def initialize(*raw_args)
|
92
|
-
|
92
|
+
# Keywords are cloned to avoid disruptive changes
|
93
|
+
@kvs = raw_args.last.is_a?(Hash) ? raw_args.pop.clone : {}
|
93
94
|
@args = plot_args(raw_args) # method name is the same as Julia/Python
|
94
95
|
|
95
96
|
# Check keyword options.
|
@@ -324,7 +325,7 @@ module GR
|
|
324
325
|
def draw_axes(kind, pass = 1)
|
325
326
|
viewport = kvs[:viewport]
|
326
327
|
vp = kvs[:vp]
|
327
|
-
|
328
|
+
_ratio = kvs[:ratio]
|
328
329
|
xtick, xorg, majorx = kvs[:xaxis]
|
329
330
|
ytick, yorg, majory = kvs[:yaxis]
|
330
331
|
drawgrid = kvs.has_key?(:grid) ? kvs[:grid] : true
|
@@ -1161,7 +1162,8 @@ module GR
|
|
1161
1162
|
xmin = [x0, xmin].min
|
1162
1163
|
xmax = [x1, xmax].max
|
1163
1164
|
elsif kind == :volume
|
1164
|
-
xmin
|
1165
|
+
xmin = -1
|
1166
|
+
xmax = 1
|
1165
1167
|
else
|
1166
1168
|
xmin = 0
|
1167
1169
|
xmax = 1
|
@@ -1174,7 +1176,8 @@ module GR
|
|
1174
1176
|
ymin = [y0, ymin].min
|
1175
1177
|
ymax = [y1, ymax].max
|
1176
1178
|
elsif kind == :volume
|
1177
|
-
ymin
|
1179
|
+
ymin = -1
|
1180
|
+
ymax = 1
|
1178
1181
|
else
|
1179
1182
|
ymin = 0
|
1180
1183
|
ymax = 1
|
@@ -1228,7 +1231,7 @@ module GR
|
|
1228
1231
|
i = tick_size.find_index do |tsize|
|
1229
1232
|
((amax - amin) / scale / tsize) > 7 # maximum number of tick marks
|
1230
1233
|
end
|
1231
|
-
|
1234
|
+
tick_size[i - 1] * scale
|
1232
1235
|
end
|
1233
1236
|
|
1234
1237
|
def legend_size
|
data/lib/gr.rb
CHANGED
@@ -66,6 +66,7 @@ module GR
|
|
66
66
|
when /mswin|msys|mingw|cygwin|bccwin|wince|emc/
|
67
67
|
[['libGR.dll'], 'gr']
|
68
68
|
when /darwin|mac os/
|
69
|
+
ENV['GKSwstype'] ||= 'gksqt'
|
69
70
|
[['libGR.dylib', 'libGR.so'], 'gr']
|
70
71
|
else
|
71
72
|
[['libGR.so'], 'gr']
|
@@ -1703,7 +1704,7 @@ module GR
|
|
1703
1704
|
def readimage(path)
|
1704
1705
|
# Feel free to make a pull request if you catch a mistake
|
1705
1706
|
# or you have an idea to improve it.
|
1706
|
-
data = Fiddle::Pointer.malloc(Fiddle::SIZEOF_INTPTR_T)
|
1707
|
+
data = Fiddle::Pointer.malloc(Fiddle::SIZEOF_INTPTR_T, Fiddle::RUBY_FREE)
|
1707
1708
|
w, h = inquiry [:int, :int] do |width, height|
|
1708
1709
|
# data is a pointer of a pointer
|
1709
1710
|
super(path, width, height, data.ref)
|
@@ -1841,7 +1842,7 @@ module GR
|
|
1841
1842
|
# Feel free to make a pull request if you catch a mistake
|
1842
1843
|
# or you have an idea to improve it.
|
1843
1844
|
npoints = equal_length(x, y)
|
1844
|
-
triangles = Fiddle::Pointer.malloc(Fiddle::SIZEOF_INTPTR_T)
|
1845
|
+
triangles = Fiddle::Pointer.malloc(Fiddle::SIZEOF_INTPTR_T, Fiddle::RUBY_FREE)
|
1845
1846
|
dim = 3
|
1846
1847
|
n_tri = inquiry_int do |ntri|
|
1847
1848
|
super(npoints, x, y, ntri, triangles.ref)
|
@@ -2148,9 +2149,9 @@ module GR
|
|
2148
2149
|
#
|
2149
2150
|
# @param flag [Integer] projection type
|
2150
2151
|
# The available options are:
|
2151
|
-
# * 0 :
|
2152
|
-
# * 1 :
|
2153
|
-
# * 2 :
|
2152
|
+
# * 0 : PROJECTION_DEFAULT - default
|
2153
|
+
# * 1 : PROJECTION_ORTHOGRAPHIC - orthographic
|
2154
|
+
# * 2 : PROJECTION_PERSPECTIVE - perspective
|
2154
2155
|
#
|
2155
2156
|
# @!method setprojectiontype
|
2156
2157
|
|
@@ -2314,6 +2315,76 @@ module GR
|
|
2314
2315
|
super(str, font)
|
2315
2316
|
end
|
2316
2317
|
end
|
2318
|
+
|
2319
|
+
# Set the number of threads which can run parallel.
|
2320
|
+
# The default value is the number of threads the cpu has.
|
2321
|
+
#
|
2322
|
+
# @param num [Integer] num number of threads
|
2323
|
+
#
|
2324
|
+
# @!method setthreadnumber
|
2325
|
+
|
2326
|
+
# Set the width and height of the resulting picture.
|
2327
|
+
# These values are only used for gr_volume and gr_cpubasedvolume.
|
2328
|
+
# The default values are 1000 for both.
|
2329
|
+
#
|
2330
|
+
# @param width [Integer] width of the resulting image
|
2331
|
+
# @param height [Integer] height of the resulting image
|
2332
|
+
#
|
2333
|
+
# @!method setpicturesizeforvolume
|
2334
|
+
|
2335
|
+
# Set the gr_volume border type with this flag.
|
2336
|
+
# This inflicts how the volume is calculated. When the flag is set to
|
2337
|
+
# GR_VOLUME_WITH_BORDER the border will be calculated the same as the points
|
2338
|
+
# inside the volume.
|
2339
|
+
#
|
2340
|
+
# @param flag [Integer] calculation of the gr_volume border
|
2341
|
+
# The available options are:
|
2342
|
+
# * 0 : VOLUME_WITHOUT_BORDER - default value
|
2343
|
+
# * 1 : VOLUME_WITH_BORDER - gr_volume with border
|
2344
|
+
#
|
2345
|
+
# @!method setvolumebordercalculation # @!method setthreadnumber
|
2346
|
+
|
2347
|
+
# Set if gr_cpubasedvolume is calculated approximative or exact.
|
2348
|
+
# To use the exact calculation set approximative_calculation to 0.
|
2349
|
+
# The default value is the approximative version, which can be set with the
|
2350
|
+
# number 1.
|
2351
|
+
#
|
2352
|
+
# @param approximative_calculation [Integer] exact or approximative calculation
|
2353
|
+
# of the volume
|
2354
|
+
#
|
2355
|
+
# @!method setapproximativecalculation
|
2356
|
+
|
2357
|
+
# Inquire the parameters which can be set for cpubasedvolume.
|
2358
|
+
# The size of the resulting image, the way the volumeborder is calculated and
|
2359
|
+
# the amount of threads which are used.
|
2360
|
+
#
|
2361
|
+
# @return [Array]
|
2362
|
+
# * border - flag which tells how the border is calculated
|
2363
|
+
# * max_threads - number of threads
|
2364
|
+
# * picture_width - width of the resulting image
|
2365
|
+
# * picture_height - height of the resulting image
|
2366
|
+
# * approximative_calculation - exact or approximative calculation of gr_cpubasedvolume
|
2367
|
+
#
|
2368
|
+
def inqvolumeflags
|
2369
|
+
inquiry([:int] * 5) do |*pts|
|
2370
|
+
super(*pts)
|
2371
|
+
end
|
2372
|
+
end
|
2373
|
+
|
2374
|
+
# FIXME! (#61)
|
2375
|
+
# @!method cpubasedvolume
|
2376
|
+
|
2377
|
+
def inqvpsize
|
2378
|
+
inquiry %i[int int double] do |*pts|
|
2379
|
+
super(*pts)
|
2380
|
+
end
|
2381
|
+
end
|
2382
|
+
|
2383
|
+
def polygonmesh3d(px, py, pz, connections, colors)
|
2384
|
+
n_points = equal_length(px, py, pz)
|
2385
|
+
n_connections = colors.length
|
2386
|
+
super(n_points, px, py, pz, n_connections, int(connections), int(colors))
|
2387
|
+
end
|
2317
2388
|
end
|
2318
2389
|
|
2319
2390
|
ASF_BUNDLED = 0
|
data/lib/gr3/ffi.rb
CHANGED
@@ -91,6 +91,8 @@ module GR3
|
|
91
91
|
'double offset_x, double offset_y, double offset_z)'
|
92
92
|
try_extern 'int gr3_createsurfacemesh(int *mesh, int nx, int ny, ' \
|
93
93
|
'float *px, float *py, float *pz, int option)'
|
94
|
+
try_extern 'int gr3_createsurface3dmesh(int *mesh, int ncols, int nrows, ' \
|
95
|
+
'float *px, float *py, float *pz);'
|
94
96
|
try_extern 'void gr3_drawmesh_grlike(int mesh, int n, ' \
|
95
97
|
'const float *positions, const float *directions, const float *ups, ' \
|
96
98
|
'const float *colors, const float *scales)'
|
@@ -140,5 +142,7 @@ module GR3
|
|
140
142
|
'int algorithm, double *dmin_ptr, double *dmax_ptr)'
|
141
143
|
try_extern 'void gr3_setorthographicprojection' \
|
142
144
|
'(float left, float right, float bottom, float top, float znear, float zfar)'
|
145
|
+
try_extern 'void gr3_setsurfaceoption(int option)'
|
146
|
+
try_extern 'int gr3_getsurfaceoption(void)'
|
143
147
|
end
|
144
148
|
end
|
data/lib/gr3.rb
CHANGED
data/lib/gr_commons/fiddley.rb
CHANGED
data/lib/gr_commons/version.rb
CHANGED
data/lib/grm.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-gr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.61.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kojix2
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-10-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: histogram
|
@@ -52,90 +52,6 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: bundler
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: pry
|
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
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: rake
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: 12.3.3
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - "~>"
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: 12.3.3
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: rubocop
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ">="
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: simplecov
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ">="
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: test-unit
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - ">="
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - ">="
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
139
55
|
description: GR framework - the graphics library for visualisation - for Ruby
|
140
56
|
email: 2xijok@gmail.com
|
141
57
|
executables: []
|
@@ -186,7 +102,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
186
102
|
- !ruby/object:Gem::Version
|
187
103
|
version: '0'
|
188
104
|
requirements: []
|
189
|
-
rubygems_version: 3.2.
|
105
|
+
rubygems_version: 3.2.26
|
190
106
|
signing_key:
|
191
107
|
specification_version: 4
|
192
108
|
summary: GR for Ruby
|