ruby-gr 0.72.9.0 → 0.73.6.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/lib/gr/ffi.rb +20 -1
- data/lib/gr_commons/define_methods.rb +5 -1
- data/lib/gr_commons/fiddley.rb +4 -0
- data/lib/gr_commons/version.rb +1 -1
- data/lib/grm/ffi.rb +8 -0
- data/lib/grm.rb +106 -0
- metadata +3 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c49cfd6712b94567eebb2ae2b4e2f67c227acc0bce428c15d777419d4b6ba31b
|
4
|
+
data.tar.gz: ecd7816d1e8f9784169ee9b917189361b18f6424958c70498279731c42c985c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 63bcc49377529b51fbf7d8005ee75c6b3af6961fd96ffd5ae769dbf495b75fbe064f6c50a3e180e1e8030dfa97297abdd4442c89e17b0fea49865e045dbfb464
|
7
|
+
data.tar.gz: 40024235f7e6599a5a9555dacac610a74e4abf1ee07332c7a82a834e3b070d9096d79408e453078014f7f59bdc58182f29a39e8e2afbf5d8b8536a3a6b86eabf
|
data/lib/gr/ffi.rb
CHANGED
@@ -155,6 +155,10 @@ module GR
|
|
155
155
|
try_extern 'void gr_axeslbl(double, double, double, double, int, int, double,' \
|
156
156
|
' void (*)(double, double, const char *, double),' \
|
157
157
|
' void (*)(double, double, const char *, double))'
|
158
|
+
try_extern 'void gr_axis(char, axis_t *)'
|
159
|
+
try_extern 'void gr_drawaxis(char, axis_t *)'
|
160
|
+
try_extern 'void gr_drawaxes(axis_t *, axis_t *, int)'
|
161
|
+
try_extern 'void gr_freeaxis(axis_t *)'
|
158
162
|
try_extern 'void gr_grid(double, double, double, double, int, int)'
|
159
163
|
try_extern 'void gr_grid3d(double, double, double, double, double, double, int, int, int)'
|
160
164
|
try_extern 'void gr_verrorbars(int, double *, double *, double *, double *)'
|
@@ -163,6 +167,7 @@ module GR
|
|
163
167
|
try_extern 'void gr_polymarker3d(int, double *, double *, double *)'
|
164
168
|
try_extern 'void gr_axes3d(double, double, double, double, double, double, int, int, int, double)'
|
165
169
|
try_extern 'void gr_titles3d(char *, char *, char *)'
|
170
|
+
try_extern 'void gr_settitles3d(char *, char *, char *)'
|
166
171
|
try_extern 'void gr_surface(int, int, double *, double *, double *, int)'
|
167
172
|
try_extern 'void gr_contour(int, int, int, double *, double *, double *, double *, int)'
|
168
173
|
try_extern 'void gr_contourf(int, int, int, double *, double *, double *, double *, int)'
|
@@ -200,6 +205,7 @@ module GR
|
|
200
205
|
try_extern 'int gr_importgraphics(char *)'
|
201
206
|
try_extern 'void gr_setshadow(double, double, double)'
|
202
207
|
try_extern 'void gr_settransparency(double)'
|
208
|
+
try_extern 'void gr_inqtransparency(double *)'
|
203
209
|
try_extern 'void gr_setcoordxform(double[3][2])'
|
204
210
|
try_extern 'void gr_begingraphics(char *)'
|
205
211
|
try_extern 'void gr_endgraphics(void)'
|
@@ -208,8 +214,12 @@ module GR
|
|
208
214
|
try_extern 'int gr_startlistener(void)'
|
209
215
|
try_extern 'void gr_mathtex(double, double, char *)'
|
210
216
|
try_extern 'void gr_inqmathtex(double, double, char *, double *, double *)'
|
217
|
+
try_extern 'void gr_mathtex3d(double, double, double, char *, int)'
|
218
|
+
try_extern 'void gr_inqmathtex3d(double, double, double, char *, int, double *, double *, double *, double *)'
|
211
219
|
try_extern 'void gr_beginselection(int, int)'
|
212
220
|
try_extern 'void gr_endselection(void)'
|
221
|
+
try_extern 'void gr_setbboxcallback(int, void (*)(int, double, double, double, double))'
|
222
|
+
try_extern 'void gr_cancelbboxcallback(void)'
|
213
223
|
try_extern 'void gr_moveselection(double, double)'
|
214
224
|
try_extern 'void gr_resizeselection(int, double, double)'
|
215
225
|
try_extern 'void gr_inqbbox(double *, double *, double *, double *)'
|
@@ -230,7 +240,8 @@ module GR
|
|
230
240
|
try_extern 'void gr_gradient(int, int, double *, double *, double *, double *, double *)'
|
231
241
|
try_extern 'void gr_quiver(int, int, double *, double *, double *, double *, int)'
|
232
242
|
try_extern 'void gr_interp2(int nx, int ny, const double *x, const double *y, const double *z,' \
|
233
|
-
' int nxq, int nyq, const double *xq, const double *yq, double *zq,
|
243
|
+
' int nxq, int nyq, const double *xq, const double *yq, double *zq,' \
|
244
|
+
' interp2_method_t method, double extrapval)'
|
234
245
|
try_extern 'const char *gr_version(void)'
|
235
246
|
try_extern 'void gr_shade(int, double *, double *, int, int, double *, int, int, int *)'
|
236
247
|
try_extern 'void gr_shadepoints(int, double *, double *, int, int, int)'
|
@@ -262,6 +273,7 @@ module GR
|
|
262
273
|
try_extern 'void gr_setscalefactors3d(double, double, double)'
|
263
274
|
try_extern 'void gr_inqscalefactors3d(double *, double *, double *)'
|
264
275
|
try_extern 'void gr_setspace3d(double, double, double, double)'
|
276
|
+
try_extern 'void gr_inqspace3d(int *, double *, double *, double *, double *)'
|
265
277
|
try_extern 'void gr_text3d(double, double, double, char *, int axis)'
|
266
278
|
try_extern 'void gr_inqtext3d(double, double, double, char *, int axis, double *, double *)'
|
267
279
|
try_extern 'void gr_settextencoding(int)'
|
@@ -287,5 +299,12 @@ module GR
|
|
287
299
|
try_extern 'void gr_volume_interp_gauss_init(double, double *)'
|
288
300
|
try_extern 'double gr_volume_interp_tri_linear(const data_point3d_t *, const void *, const point3d_t *, const point3d_t *)'
|
289
301
|
try_extern 'double gr_volume_interp_gauss(const data_point3d_t *, const void *, const point3d_t *, const point3d_t *)'
|
302
|
+
try_extern 'void gr_setmathfont(int font)'
|
303
|
+
try_extern 'void gr_inqmathfont(int *font)'
|
304
|
+
try_extern 'void gr_setclipregion(int region)'
|
305
|
+
try_extern 'void gr_inqclipregion(int *region)'
|
306
|
+
try_extern 'void gr_settextoffset(double xoff, double yoff)'
|
307
|
+
try_extern 'char *gr_ftoa(char *string, double value, format_reference_t *reference)'
|
308
|
+
try_extern 'void gr_getformat(format_reference_t *result, double origin, double min, double max, double tick_width, int major)'
|
290
309
|
end
|
291
310
|
end
|
@@ -20,7 +20,11 @@ module GRCommons
|
|
20
20
|
when ->(x) { defined?(Numo::NArray) && x.is_a?(Numo::NArray) }
|
21
21
|
GRCommonUtils.public_send(default_type, arg)
|
22
22
|
else
|
23
|
-
arg
|
23
|
+
if arg.respond_to?(:to_gr)
|
24
|
+
arg.to_gr
|
25
|
+
else
|
26
|
+
arg
|
27
|
+
end
|
24
28
|
end
|
25
29
|
end
|
26
30
|
ffi_module.public_send(method, *args)
|
data/lib/gr_commons/fiddley.rb
CHANGED
data/lib/gr_commons/version.rb
CHANGED
data/lib/grm/ffi.rb
CHANGED
@@ -21,6 +21,7 @@ module GRM
|
|
21
21
|
# header files.
|
22
22
|
|
23
23
|
# https://github.com/sciapp/gr/blob/master/lib/grm/include/grm/args.h
|
24
|
+
try_extern 'grm_args_value_iterator_t *grm_arg_value_iter(const arg_t *arg)'
|
24
25
|
try_extern 'grm_args_t *grm_args_new(void)'
|
25
26
|
try_extern 'void grm_args_delete(grm_args_t *args)'
|
26
27
|
try_extern 'int grm_args_push(grm_args_t *args, const char *key, const char *value_format, ...)'
|
@@ -30,6 +31,7 @@ module GRM
|
|
30
31
|
try_extern 'int grm_args_values(const grm_args_t *args, const char *keyword, const char *expected_format, ...)'
|
31
32
|
try_extern 'void grm_args_clear(grm_args_t *args)'
|
32
33
|
try_extern 'void grm_args_remove(grm_args_t *args, const char *key)'
|
34
|
+
try_extern 'grm_args_iterator_t *grm_args_iter(const grm_args_t *args)'
|
33
35
|
typealias 'grm_args_ptr_t', 'void*'
|
34
36
|
try_extern 'grm_args_ptr_t grm_length(double value, const char *unit)'
|
35
37
|
|
@@ -51,6 +53,7 @@ module GRM
|
|
51
53
|
try_extern 'grm_tooltip_info_t *grm_get_tooltip(int mouse_x, int mouse_y)'
|
52
54
|
try_extern 'grm_tooltip_info_t **grm_get_tooltips_x(int mouse_x, int mouse_y, unsigned int *array_length)'
|
53
55
|
try_extern 'grm_accumulated_tooltip_info_t *grm_get_accumulated_tooltip_x(int mouse_x, int mouse_y)'
|
56
|
+
try_extern 'int grm_get_hover_mode(int mouse_x, int mouse_y, int disable_movable_xform)'
|
54
57
|
|
55
58
|
# https://github.com/sciapp/gr/blob/master/lib/grm/include/grm/net.h
|
56
59
|
try_extern 'void *grm_open(int is_receiver, const char *name, unsigned int id, ' \
|
@@ -66,13 +69,18 @@ module GRM
|
|
66
69
|
# https://github.com/sciapp/gr/blob/master/lib/grm/include/grm/plot.h
|
67
70
|
try_extern 'void grm_finalize(void)'
|
68
71
|
try_extern 'int grm_clear(void)'
|
72
|
+
try_extern 'void grm_dump_graphics_tree(FILE *f)'
|
73
|
+
try_extern 'char *grm_dump_graphics_tree_str(void)'
|
69
74
|
try_extern 'unsigned int grm_max_plotid(void)'
|
70
75
|
try_extern 'int grm_merge(const grm_args_t *args)'
|
71
76
|
try_extern 'int grm_merge_extended(const grm_args_t *args, int hold, const char *identificator)'
|
72
77
|
try_extern 'int grm_merge_hold(const grm_args_t *args)'
|
73
78
|
try_extern 'int grm_merge_named(const grm_args_t *args, const char *identificator)'
|
74
79
|
try_extern 'int grm_plot(const grm_args_t *args)'
|
80
|
+
try_extern 'int grm_render(void)'
|
81
|
+
try_extern 'int grm_process_tree(void)'
|
75
82
|
try_extern 'int grm_export(const char *file_path)'
|
76
83
|
try_extern 'int grm_switch(unsigned int id)'
|
84
|
+
try_extern 'int grm_load_graphics_tree(FILE *file)'
|
77
85
|
end
|
78
86
|
end
|
data/lib/grm.rb
CHANGED
@@ -61,6 +61,112 @@ module GRM
|
|
61
61
|
# a Fiddley::MemoryPointer in the GRBase class.
|
62
62
|
extend GRMBase
|
63
63
|
|
64
|
+
class Args
|
65
|
+
class << self
|
66
|
+
def try_convert(value)
|
67
|
+
case value
|
68
|
+
when Hash
|
69
|
+
new(**value)
|
70
|
+
else
|
71
|
+
nil
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def initialize(**args)
|
77
|
+
@args = GRM.args_new
|
78
|
+
@args.free = FFI["grm_args_delete"]
|
79
|
+
@references = []
|
80
|
+
args.each do |key, value|
|
81
|
+
push(key, value)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
def push(key, value)
|
86
|
+
key = key.to_s if key.is_a?(Symbol)
|
87
|
+
case value
|
88
|
+
when String
|
89
|
+
GRM.args_push(@args, key, "s", :const_string, value)
|
90
|
+
when Integer
|
91
|
+
GRM.args_push(@args, key, "i", :int, value)
|
92
|
+
when Float
|
93
|
+
GRM.args_push(@args, key, "d", :double, value)
|
94
|
+
when Args
|
95
|
+
GRM.args_push(@args, key, "a", :voidp, value.address)
|
96
|
+
value.to_gr.free = nil
|
97
|
+
when Array
|
98
|
+
case value[0]
|
99
|
+
when String
|
100
|
+
addresses = value.collect {|v| Fiddle::Pointer[v].to_i}
|
101
|
+
GRM.args_push(@args, key, "nS",
|
102
|
+
:int, value.size,
|
103
|
+
:voidp, addresses.pack("J*"))
|
104
|
+
when Integer
|
105
|
+
GRM.args_push(@args, key, "nI",
|
106
|
+
:int, value.size,
|
107
|
+
:voidp, value.pack("i*"))
|
108
|
+
when Float
|
109
|
+
GRM.args_push(@args, key, "nD",
|
110
|
+
:int, value.size,
|
111
|
+
:voidp, value.pack("d*"))
|
112
|
+
when Args
|
113
|
+
GRM.args_push(@args, key, "nA",
|
114
|
+
:int, value.size,
|
115
|
+
:voidp, value.collect(&:address).pack("J*"))
|
116
|
+
value.each do |v|
|
117
|
+
v.to_gr.free = nil
|
118
|
+
end
|
119
|
+
else
|
120
|
+
vs = value.collect {|v| Args.new(**v)}
|
121
|
+
@references.concat(vs)
|
122
|
+
GRM.args_push(@args, key, "nA",
|
123
|
+
:int, value.size,
|
124
|
+
:voidp, vs.collect(&:address).pack("J*"))
|
125
|
+
vs.each do |v|
|
126
|
+
v.to_gr.free = nil
|
127
|
+
end
|
128
|
+
end
|
129
|
+
else
|
130
|
+
v = Args.new(**value)
|
131
|
+
@references << v
|
132
|
+
GRM.args_push(@args, key, "a", :voidp, v.address)
|
133
|
+
v.to_gr.free = nil
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
def clear
|
138
|
+
GRM.args_clear(@args)
|
139
|
+
@references.clear
|
140
|
+
end
|
141
|
+
|
142
|
+
def address
|
143
|
+
@args.to_i
|
144
|
+
end
|
145
|
+
|
146
|
+
def to_gr
|
147
|
+
@args
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
64
151
|
class << self
|
152
|
+
def merge(args=nil)
|
153
|
+
super(Args.try_convert(args) || args)
|
154
|
+
end
|
155
|
+
|
156
|
+
def merge_extended(args=nil, hold=0, identifiator=nil)
|
157
|
+
super(Args.try_convert(args) || args, hold, identificator)
|
158
|
+
end
|
159
|
+
|
160
|
+
def merge_hold(args=nil)
|
161
|
+
super(Args.try_convert(args) || args)
|
162
|
+
end
|
163
|
+
|
164
|
+
def merge_named(args=nil, identifiator=nil)
|
165
|
+
super(Args.try_convert(args) || args, identificator)
|
166
|
+
end
|
167
|
+
|
168
|
+
def plot(args=nil)
|
169
|
+
super(Args.try_convert(args) || args)
|
170
|
+
end
|
65
171
|
end
|
66
172
|
end
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-gr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.73.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kojix2
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2024-08-06 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: fiddle
|
@@ -86,7 +85,6 @@ licenses:
|
|
86
85
|
- MIT
|
87
86
|
metadata:
|
88
87
|
msys2_mingw_dependencies: gr
|
89
|
-
post_install_message:
|
90
88
|
rdoc_options: []
|
91
89
|
require_paths:
|
92
90
|
- lib
|
@@ -101,8 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
101
99
|
- !ruby/object:Gem::Version
|
102
100
|
version: '0'
|
103
101
|
requirements: []
|
104
|
-
rubygems_version: 3.
|
105
|
-
signing_key:
|
102
|
+
rubygems_version: 3.6.0.dev
|
106
103
|
specification_version: 4
|
107
104
|
summary: GR for Ruby
|
108
105
|
test_files: []
|