ruby-gr 0.72.9.0 → 0.73.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|