processing 0.5.33 → 0.5.34

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.
@@ -3,6 +3,9 @@ module Processing
3
3
 
4
4
  # Vector class.
5
5
  #
6
+ # @see https://processing.org/reference/PVector.html
7
+ # @see https://p5js.org/reference/#/p5.Vector
8
+ #
6
9
  class Vector
7
10
 
8
11
  include Comparable
@@ -22,6 +25,9 @@ module Processing
22
25
  # @param v [Vector] vector object to copy
23
26
  # @param a [Array] array like [x, y, z]
24
27
  #
28
+ # @see https://processing.org/reference/PVector.html
29
+ # @see https://p5js.org/reference/#/p5.Vector
30
+ #
25
31
  def initialize(x = 0, y = 0, z = 0, context: nil)
26
32
  @point = case x
27
33
  when Rays::Point then x.dup
@@ -42,6 +48,9 @@ module Processing
42
48
  #
43
49
  # @return [Vector] duplicated vector object
44
50
  #
51
+ # @see https://processing.org/reference/PVector_copy_.html
52
+ # @see https://p5js.org/reference/#/p5.Vector/copy
53
+ #
45
54
  alias copy dup
46
55
 
47
56
  # Sets x, y and z.
@@ -60,6 +69,9 @@ module Processing
60
69
  #
61
70
  # @return [nil] nil
62
71
  #
72
+ # @see https://processing.org/reference/PVector_set_.html
73
+ # @see https://p5js.org/reference/#/p5.Vector/set
74
+ #
63
75
  def set(*args)
64
76
  initialize(*args)
65
77
  self
@@ -69,6 +81,9 @@ module Processing
69
81
  #
70
82
  # @return [Numeric] x value of vector
71
83
  #
84
+ # @see https://processing.org/reference/PVector_x.html
85
+ # @see https://p5js.org/reference/#/p5.Vector/x
86
+ #
72
87
  def x()
73
88
  @point.x
74
89
  end
@@ -77,6 +92,9 @@ module Processing
77
92
  #
78
93
  # @return [Numeric] y value of vector
79
94
  #
95
+ # @see https://processing.org/reference/PVector_y.html
96
+ # @see https://p5js.org/reference/#/p5.Vector/y
97
+ #
80
98
  def y()
81
99
  @point.y
82
100
  end
@@ -85,6 +103,9 @@ module Processing
85
103
  #
86
104
  # @return [Numeric] z value of vector
87
105
  #
106
+ # @see https://processing.org/reference/PVector_z.html
107
+ # @see https://p5js.org/reference/#/p5.Vector/z
108
+ #
88
109
  def z()
89
110
  @point.z
90
111
  end
@@ -93,6 +114,9 @@ module Processing
93
114
  #
94
115
  # @return [Numeric] x value of vector
95
116
  #
117
+ # @see https://processing.org/reference/PVector_x.html
118
+ # @see https://p5js.org/reference/#/p5.Vector/x
119
+ #
96
120
  def x=(x)
97
121
  @point.x = x
98
122
  end
@@ -101,6 +125,9 @@ module Processing
101
125
  #
102
126
  # @return [Numeric] y value of vector
103
127
  #
128
+ # @see https://processing.org/reference/PVector_y.html
129
+ # @see https://p5js.org/reference/#/p5.Vector/y
130
+ #
104
131
  def y=(y)
105
132
  @point.y = y
106
133
  end
@@ -109,6 +136,9 @@ module Processing
109
136
  #
110
137
  # @return [Numeric] z value of vector
111
138
  #
139
+ # @see https://processing.org/reference/PVector_z.html
140
+ # @see https://p5js.org/reference/#/p5.Vector/z
141
+ #
112
142
  def z=(z)
113
143
  @point.z = z
114
144
  end
@@ -127,6 +157,9 @@ module Processing
127
157
  #
128
158
  # @return [Vector] interporated vector
129
159
  #
160
+ # @see https://processing.org/reference/PVector_lerp_.html
161
+ # @see https://p5js.org/reference/#/p5.Vector/lerp
162
+ #
130
163
  def lerp(*args, amount)
131
164
  v = toVector__(*args)
132
165
  self.x = x + (v.x - x) * amount
@@ -143,6 +176,9 @@ module Processing
143
176
  #
144
177
  # @return [Vector] interporated vector
145
178
  #
179
+ # @see https://processing.org/reference/PVector_lerp_.html
180
+ # @see https://p5js.org/reference/#/p5.Vector/lerp
181
+ #
146
182
  def self.lerp(v1, v2, amount)
147
183
  v1.dup.lerp v2, amount
148
184
  end
@@ -153,6 +189,9 @@ module Processing
153
189
  #
154
190
  # @return [Array] array of x, y, z
155
191
  #
192
+ # @see https://processing.org/reference/PVector_array_.html
193
+ # @see https://p5js.org/reference/#/p5.Vector/array
194
+ #
156
195
  def array(n = 3)
157
196
  @point.to_a n
158
197
  end
@@ -172,6 +211,9 @@ module Processing
172
211
  #
173
212
  # @return [Vector] added vector
174
213
  #
214
+ # @see https://processing.org/reference/PVector_add_.html
215
+ # @see https://p5js.org/reference/#/p5.Vector/add
216
+ #
175
217
  def add(*args)
176
218
  @point += toVector__(*args).getInternal__
177
219
  self
@@ -190,6 +232,9 @@ module Processing
190
232
  #
191
233
  # @return [Vector] subtracted vector
192
234
  #
235
+ # @see https://processing.org/reference/PVector_sub_.html
236
+ # @see https://p5js.org/reference/#/p5.Vector/sub
237
+ #
193
238
  def sub(*args)
194
239
  @point -= toVector__(*args).getInternal__
195
240
  self
@@ -201,6 +246,9 @@ module Processing
201
246
  #
202
247
  # @return [Vector] multiplied vector
203
248
  #
249
+ # @see https://processing.org/reference/PVector_mult_.html
250
+ # @see https://p5js.org/reference/#/p5.Vector/mult
251
+ #
204
252
  def mult(num)
205
253
  @point *= num
206
254
  self
@@ -212,6 +260,9 @@ module Processing
212
260
  #
213
261
  # @return [Vector] divided vector
214
262
  #
263
+ # @see https://processing.org/reference/PVector_div_.html
264
+ # @see https://p5js.org/reference/#/p5.Vector/div
265
+ #
215
266
  def div(num)
216
267
  @point /= num
217
268
  self
@@ -223,6 +274,9 @@ module Processing
223
274
  #
224
275
  # @return [Vector] added vector
225
276
  #
277
+ # @see https://processing.org/reference/PVector_add_.html
278
+ # @see https://p5js.org/reference/#/p5.Vector/add
279
+ #
226
280
  def +(v)
227
281
  dup.add v
228
282
  end
@@ -233,6 +287,9 @@ module Processing
233
287
  #
234
288
  # @return [Vector] subtracted vector
235
289
  #
290
+ # @see https://processing.org/reference/PVector_sub_.html
291
+ # @see https://p5js.org/reference/#/p5.Vector/sub
292
+ #
236
293
  def -(v)
237
294
  dup.sub v
238
295
  end
@@ -243,6 +300,9 @@ module Processing
243
300
  #
244
301
  # @return [Vector] multiplied vector
245
302
  #
303
+ # @see https://processing.org/reference/PVector_mult_.html
304
+ # @see https://p5js.org/reference/#/p5.Vector/mult
305
+ #
246
306
  def *(num)
247
307
  dup.mult num
248
308
  end
@@ -253,6 +313,9 @@ module Processing
253
313
  #
254
314
  # @return [Vector] divided vector
255
315
  #
316
+ # @see https://processing.org/reference/PVector_div_.html
317
+ # @see https://p5js.org/reference/#/p5.Vector/div
318
+ #
256
319
  def /(num)
257
320
  dup.div num
258
321
  end
@@ -268,6 +331,9 @@ module Processing
268
331
  #
269
332
  # @return [Vector] added vector
270
333
  #
334
+ # @see https://processing.org/reference/PVector_add_.html
335
+ # @see https://p5js.org/reference/#/p5.Vector/add
336
+ #
271
337
  def self.add(v1, v2, target = nil)
272
338
  v = v1 + v2
273
339
  target.set v if self === target
@@ -285,6 +351,9 @@ module Processing
285
351
  #
286
352
  # @return [Vector] subtracted vector
287
353
  #
354
+ # @see https://processing.org/reference/PVector_sub_.html
355
+ # @see https://p5js.org/reference/#/p5.Vector/sub
356
+ #
288
357
  def self.sub(v1, v2, target = nil)
289
358
  v = v1 - v2
290
359
  target.set v if self === target
@@ -302,6 +371,9 @@ module Processing
302
371
  #
303
372
  # @return [Vector] multiplied vector
304
373
  #
374
+ # @see https://processing.org/reference/PVector_mult_.html
375
+ # @see https://p5js.org/reference/#/p5.Vector/mult
376
+ #
305
377
  def self.mult(v1, num, target = nil)
306
378
  v = v1 * num
307
379
  target.set v if self === target
@@ -319,6 +391,9 @@ module Processing
319
391
  #
320
392
  # @return [Vector] divided vector
321
393
  #
394
+ # @see https://processing.org/reference/PVector_div_.html
395
+ # @see https://p5js.org/reference/#/p5.Vector/div
396
+ #
322
397
  def self.div(v1, num, target = nil)
323
398
  v = v1 / num
324
399
  target.set v if self === target
@@ -329,6 +404,9 @@ module Processing
329
404
  #
330
405
  # @return [Numeric] length
331
406
  #
407
+ # @see https://processing.org/reference/PVector_mag_.html
408
+ # @see https://p5js.org/reference/#/p5.Vector/mag
409
+ #
332
410
  def mag()
333
411
  @point.length
334
412
  end
@@ -337,6 +415,9 @@ module Processing
337
415
  #
338
416
  # @return [Numeric] squared length
339
417
  #
418
+ # @see https://processing.org/reference/PVector_magSq_.html
419
+ # @see https://p5js.org/reference/#/p5.Vector/magSq
420
+ #
340
421
  def magSq()
341
422
  Rays::Point::dot(@point, @point)
342
423
  end
@@ -351,6 +432,9 @@ module Processing
351
432
  #
352
433
  # @return [Vector] vector with new length
353
434
  #
435
+ # @see https://processing.org/reference/PVector_setMag_.html
436
+ # @see https://p5js.org/reference/#/p5.Vector/setMag
437
+ #
354
438
  def setMag(target = nil, len)
355
439
  (target || self).set @point.normal * len
356
440
  end
@@ -361,6 +445,9 @@ module Processing
361
445
  #
362
446
  # @return [Vector] normalized vector
363
447
  #
448
+ # @see https://processing.org/reference/PVector_normalize_.html
449
+ # @see https://p5js.org/reference/#/p5.Vector/normalize
450
+ #
364
451
  def normalize(target = nil)
365
452
  (target || self).set @point.normal
366
453
  end
@@ -371,6 +458,9 @@ module Processing
371
458
  #
372
459
  # @return [Vector] new vector
373
460
  #
461
+ # @see https://processing.org/reference/PVector_limit_.html
462
+ # @see https://p5js.org/reference/#/p5.Vector/limit
463
+ #
374
464
  def limit(max)
375
465
  setMag max if magSq > max ** 2
376
466
  self
@@ -382,6 +472,9 @@ module Processing
382
472
  #
383
473
  # @return [Numeric] the distance
384
474
  #
475
+ # @see https://processing.org/reference/PVector_dist_.html
476
+ # @see https://p5js.org/reference/#/p5.Vector/dist
477
+ #
385
478
  def dist(v)
386
479
  (self - v).mag
387
480
  end
@@ -393,6 +486,9 @@ module Processing
393
486
  #
394
487
  # @return [Numeric] the distance
395
488
  #
489
+ # @see https://processing.org/reference/PVector_dist_.html
490
+ # @see https://p5js.org/reference/#/p5.Vector/dist
491
+ #
396
492
  def self.dist(v1, v2)
397
493
  v1.dist v2
398
494
  end
@@ -410,6 +506,9 @@ module Processing
410
506
  #
411
507
  # @return [Numeric] result of dot product
412
508
  #
509
+ # @see https://processing.org/reference/PVector_dot_.html
510
+ # @see https://p5js.org/reference/#/p5.Vector/dot
511
+ #
413
512
  def dot(*args)
414
513
  Rays::Point::dot getInternal__, toVector__(*args).getInternal__
415
514
  end
@@ -421,6 +520,9 @@ module Processing
421
520
  #
422
521
  # @return [Numeric] result of dot product
423
522
  #
523
+ # @see https://processing.org/reference/PVector_dot_.html
524
+ # @see https://p5js.org/reference/#/p5.Vector/dot
525
+ #
424
526
  def self.dot(v1, v2)
425
527
  v1.dot v2
426
528
  end
@@ -438,6 +540,9 @@ module Processing
438
540
  #
439
541
  # @return [Numeric] result of cross product
440
542
  #
543
+ # @see https://processing.org/reference/PVector_cross_.html
544
+ # @see https://p5js.org/reference/#/p5.Vector/cross
545
+ #
441
546
  def cross(a, *rest)
442
547
  target = self.class === rest.last ? rest.pop : nil
443
548
  v = self.class.new Rays::Point::cross getInternal__, toVector__(a, *rest).getInternal__
@@ -452,6 +557,9 @@ module Processing
452
557
  #
453
558
  # @return [Numeric] result of cross product
454
559
  #
560
+ # @see https://processing.org/reference/PVector_cross_.html
561
+ # @see https://p5js.org/reference/#/p5.Vector/cross
562
+ #
455
563
  def self.cross(v1, v2, target = nil)
456
564
  v1.cross v2, target
457
565
  end
@@ -462,6 +570,9 @@ module Processing
462
570
  #
463
571
  # @return [Vector] rotated this object
464
572
  #
573
+ # @see https://processing.org/reference/PVector_rotate_.html
574
+ # @see https://p5js.org/reference/#/p5.Vector/rotate
575
+ #
465
576
  def rotate(angle)
466
577
  deg = @context ?
467
578
  @context.toDegrees__(angle) : angle * GraphicsContext::RAD2DEG__
@@ -473,6 +584,9 @@ module Processing
473
584
  #
474
585
  # @return [Numeric] the angle in radians
475
586
  #
587
+ # @see https://processing.org/reference/PVector_heading_.html
588
+ # @see https://p5js.org/reference/#/p5.Vector/heading
589
+ #
476
590
  def heading()
477
591
  Math.atan2 y, x
478
592
  end
@@ -484,6 +598,9 @@ module Processing
484
598
  #
485
599
  # @return [Vector] rotated vector
486
600
  #
601
+ # @see https://processing.org/reference/PVector_fromAngle_.html
602
+ # @see https://p5js.org/reference/#/p5.Vector/fromAngle
603
+ #
487
604
  def self.fromAngle(angle, target = nil)
488
605
  v = self.new(1, 0, 0).rotate(angle)
489
606
  target.set v if target
@@ -497,6 +614,9 @@ module Processing
497
614
  #
498
615
  # @return [Numeric] angle in radians
499
616
  #
617
+ # @see https://processing.org/reference/PVector_angleBetween_.html
618
+ # @see https://p5js.org/reference/#/p5.Vector/angleBetween
619
+ #
500
620
  def self.angleBetween(v1, v2)
501
621
  x1, y1, z1 = v1.array
502
622
  x2, y2, z2 = v2.array
@@ -514,6 +634,9 @@ module Processing
514
634
  #
515
635
  # @return [Vector] a random vector
516
636
  #
637
+ # @see https://processing.org/reference/PVector_random2D_.html
638
+ # @see https://p5js.org/reference/#/p5.Vector/random2D
639
+ #
517
640
  def self.random2D(target = nil)
518
641
  v = self.new(1, 0, 0)
519
642
  v.getInternal__.rotate! rand 0.0...360.0
@@ -527,6 +650,9 @@ module Processing
527
650
  #
528
651
  # @return [Vector] a random vector
529
652
  #
653
+ # @see https://processing.org/reference/PVector_random3D_.html
654
+ # @see https://p5js.org/reference/#/p5.Vector/random3D
655
+ #
530
656
  def self.random3D(target = nil)
531
657
  angle = rand 0.0...(Math::PI * 2)
532
658
  z = rand(-1.0..1.0)
@@ -212,6 +212,7 @@ module Processing
212
212
  end# Window
213
213
 
214
214
 
215
+ # @private
215
216
  class Window::Canvas
216
217
 
217
218
  def initialize(window, width, height)
@@ -297,6 +298,7 @@ module Processing
297
298
  end# Window::Canvas
298
299
 
299
300
 
301
+ # @private
300
302
  class Window::CanvasView < Reflex::View
301
303
 
302
304
  def on_update(e)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: processing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.33
4
+ version: 0.5.34
5
5
  platform: ruby
6
6
  authors:
7
7
  - xordog
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-06 00:00:00.000000000 Z
11
+ date: 2024-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xot