r2dsvg 0.2.1 → 0.3.0

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: e2f8dbde8ddcf67adf851218c7d44183f77d16acaffbc6b2f49a5835f564def3
4
- data.tar.gz: fdcc4c8e58499e1b8c4682fd1b63ae2e0a7fb4d17917e2a4b84bf171bc5fa24b
3
+ metadata.gz: f84eb0cfa6361d540477455e70c6450d08822825ca2607c4256c95033f7c55ad
4
+ data.tar.gz: 64e440caeef0fee2217859010a47658e3aeaead60371f750bcc43533f2a4193e
5
5
  SHA512:
6
- metadata.gz: 31ea267757c8e9863a2453258e38812c5d2883e0491ddc418749cc7624e58b29b37ca0fae26ae6a41c093b0189918a19b98d2495d9c2ac4a01b68edc52bbdcc2
7
- data.tar.gz: 7581ec536727d065b320210ce2fbd9017cf4d959d96ba1a0f64e5b15c7c46ff6b217da15273663498b301e8d937d90dfabab5dbf1738b13ada2dc3104a2820fd
6
+ metadata.gz: 6ace20dd2b7df657494234fa3802738646a2c228ddd759e5d2aec69e00d6ae87f392ff3c82873fe379426698ef1499939f1b7e7d4a531bd4e576101c0c09a92a
7
+ data.tar.gz: 30cb870d1f80515cc8c645f3c7b7745d2ad2fdcd858b808aaa5fecd0866caeba49dd6e65bd63708fa78363344f86840e5ea7b9ee476b70bb0aa5c124ad06eb8c
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/r2dsvg.rb CHANGED
@@ -57,6 +57,43 @@ class R2dSvg
57
57
  [:embed_audio, sources, e]
58
58
  end
59
59
 
60
+ def circle(e, attributes, raw_style)
61
+
62
+ style = style_filter(attributes).merge(raw_style)
63
+
64
+ h = attributes
65
+
66
+ x, y, radius= %i(cx cy r).map{|x| h[x].to_i }
67
+ fill = h[:fill]
68
+
69
+
70
+ [:draw_circle, [x, y], radius, fill, style, render_all(e)]
71
+ end
72
+
73
+ # not yet implemented
74
+ #
75
+ def ellipse(e, attributes, raw_style)
76
+
77
+ style = style_filter(attributes).merge(raw_style)
78
+ h = attributes
79
+
80
+ x, y= %i(cx cy).map{|x| h[x].to_i }
81
+ width = h[:rx].to_i * 2
82
+ height = h[:ry].to_i * 2
83
+
84
+ [:draw_arc, [x, y, width, height], style, render_all(e)]
85
+ end
86
+
87
+ def line(e, attributes, raw_style)
88
+
89
+ style = style_filter(attributes).merge(raw_style)
90
+
91
+ x1, y1, x2, y2 = %i(x1 y1 x2 y2).map{|x| attributes[x].to_i }
92
+
93
+ [:draw_line, [x1, y1, x2, y2], style, render_all(e)]
94
+ end
95
+
96
+
60
97
  def image(e, attributes, raw_style)
61
98
 
62
99
  style = style_filter(attributes).merge(raw_style)
@@ -67,6 +104,24 @@ class R2dSvg
67
104
 
68
105
  [:draw_image, [x, y, width, height], src, style, e, render_all(e)]
69
106
  end
107
+
108
+ def polygon(e, attributes, raw_style)
109
+
110
+ style = style_filter(attributes).merge(raw_style)
111
+ points = attributes[:points].split(/\s+/). \
112
+ map {|x| x.split(/\s*,\s*/).map(&:to_i)}
113
+
114
+ [:draw_polygon, points, style, e, render_all(e)]
115
+ end
116
+
117
+ def polyline(e, attributes, raw_style)
118
+
119
+ style = style_filter(attributes).merge(raw_style)
120
+ points = attributes[:points].split(/\s+/). \
121
+ map {|x| x.split(/\s*,\s*/).map(&:to_i)}
122
+
123
+ [:draw_lines, points, style, render_all(e)]
124
+ end
70
125
 
71
126
  def rect(e, attributes, raw_style)
72
127
 
@@ -128,6 +183,39 @@ class R2dSvg
128
183
 
129
184
  end
130
185
 
186
+ def draw_arc(args)
187
+
188
+ dimensions, style = args
189
+
190
+ x, y, width, height = dimensions
191
+
192
+ #gc = gc_ini(fill: style[:fill] || :none)
193
+ #@area.window.draw_arc(gc, 1, x, y, width, height, 0, 64 * 360)
194
+ end
195
+
196
+ def draw_circle(args)
197
+
198
+ coords, radius, fill, style, e = args
199
+
200
+ x1, y1 = coords
201
+
202
+ if @debug then
203
+ puts 'inside draw_circle'.info
204
+ puts ('style: ' + style.inspect).debug
205
+ end
206
+
207
+ obj = Circle.new(
208
+ x: x1, y: y1,
209
+ radius: radius,
210
+ sectors: 32,
211
+ color: style[:fill],
212
+ z: style[:"z-index"].to_i
213
+ )
214
+ e.obj = obj if e.respond_to? :obj=
215
+ @window.add obj
216
+
217
+ end
218
+
131
219
  def draw_image(args)
132
220
 
133
221
  dimensions, src, style, e = args
@@ -154,6 +242,69 @@ class R2dSvg
154
242
  end
155
243
  end
156
244
 
245
+ def draw_line(args)
246
+
247
+ coords, style, e = args
248
+
249
+ x1, y1, x2, y2 = coords
250
+
251
+ if @debug then
252
+ puts 'inside draw_rectangle'.info
253
+ puts ('style: ' + style.inspect).debug
254
+ end
255
+
256
+ obj = Line.new(
257
+ x1: x1, y1: y1,
258
+ x2: x2, y2: y2,
259
+ width: style[:"stroke-width"].to_f,
260
+ color: style[:"stroke"],
261
+ z: style[:"z-index"].to_i
262
+ )
263
+
264
+ e.obj = obj if e.respond_to? :obj=
265
+ @window.add obj
266
+
267
+ end
268
+
269
+ def draw_polygon(args)
270
+
271
+ points, style, e = args
272
+
273
+ puts ('points: ' + points.inspect).debug if @debug
274
+ coords = points
275
+
276
+ if @debug then
277
+ puts 'inside draw_polygon'.info
278
+ puts ('style: ' + style.inspect).debug
279
+ end
280
+
281
+ puts ('coords: ' + coords.inspect).debug if @debug
282
+
283
+ h = coords.map.with_index do |c2,i|
284
+
285
+ %w(x y).zip(c2).map {|key, c| [(key + (i+1).to_s).to_sym, c] }
286
+
287
+ end.flatten(1).to_h
288
+ puts ('triangle h: ' + h.inspect).debug if @debug
289
+
290
+ puts ('triangle h merged: ' + h.inspect).debug if @debug
291
+ obj = Triangle.new(h.merge({color: style[:fill], z: style[:"z-index"].to_i}))
292
+ e.obj = obj if e.respond_to? :obj=
293
+ @window.add obj
294
+ end
295
+
296
+
297
+ # not yet implemented
298
+ #
299
+ def draw_lines(args)
300
+
301
+ coords, width, style, e = args
302
+
303
+ x1, y1, x2, y2 = coords
304
+
305
+
306
+ end
307
+
157
308
  def draw_rectangle(args)
158
309
 
159
310
  coords, style, e = args
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: r2dsvg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -35,7 +35,7 @@ cert_chain:
35
35
  7avBPtmJXpQsK1kfdmXP/+tfAIa7KGseabm2+ntraqYNgx3DqyZur8IRdJFi/DPc
36
36
  113q/9KjkLj6C+dR0HuLRW1c
37
37
  -----END CERTIFICATE-----
38
- date: 2019-02-24 00:00:00.000000000 Z
38
+ date: 2019-02-25 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: svgle
metadata.gz.sig CHANGED
Binary file