ruby-gr 0.0.3 → 0.0.4

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: a4952b2f2f30277b1fecfae2d49660addde63d4b1476aa63dacdba4643568294
4
- data.tar.gz: a99aee8f75ff9f102ae713723e582aa9be12a1d1a5ef8fbede028df731d27ea3
3
+ metadata.gz: b317ddec0fec1377dc02ab3df429656bf7ae1a4056ed039b3814b344be362e59
4
+ data.tar.gz: ed039b4fbac3b8e391039343924d8e8fdfe3cd2c72a8d5c6705d29170fc69809
5
5
  SHA512:
6
- metadata.gz: 0ba5e877d1363a6e27c986f5380ed169ea37615cb803633dea6fbb8e00a7d4c42bc7c52e9559e5d5719d094db6ed6b8cbe26d9a663cf94582545e9f0df715956
7
- data.tar.gz: f2b76c28406593d64150e885a4f2d50731d3fb9d079677c94aaff7191a0a546d2bb23647352e729474ce9ebef619a12bac32b6d04045889a34cdbf0a44b21c6d
6
+ metadata.gz: 40828455aaed63f0eea89ec1eebc31c7c4f2a1a49e3e3b874cc80b08336cda2da5fad15f02c475ab4187ea18c7b996e2d5fbcfcdad61cbc01d53e2704af4b3fe
7
+ data.tar.gz: 8ebe911013ea044d6feca9e36dbf6a97d9d54e465b19659f06254c2b4e41414a398e5788770000301e03d0e06f6181e5d546cc582671816961a1ae3efc390f52
data/lib/gr.rb CHANGED
@@ -56,18 +56,53 @@ module GR
56
56
  end
57
57
  end
58
58
 
59
+ # Open a graphical workstation.
60
+ # @param workstation_id [Integer] A workstation identifier.
61
+ # @param connection [String] A connection identifier.
62
+ # @param workstation_type [Integer] The desired workstation type.
63
+ # * 5 : Workstation Independent Segment Storage
64
+ # * 7, 8 : Computer Graphics Metafile (CGM binary, clear text)
65
+ # * 41 : Windows GDI
66
+ # * 51 : Mac Quickdraw
67
+ # * 61 - 64 : PostScript (b/w, color)
68
+ # * 101, 102 : Portable Document Format (plain, compressed)
69
+ # * 210 - 213 : X Windows
70
+ # * 214 : Sun Raster file (RF)
71
+ # * 215, 218 : Graphics Interchange Format (GIF87, GIF89)
72
+ # * 216 : Motif User Interface Language (UIL)
73
+ # * 320 : Windows Bitmap (BMP)
74
+ # * 321 : JPEG image file
75
+ # * 322 : Portable Network Graphics file (PNG)
76
+ # * 323 : Tagged Image File Format (TIFF)
77
+ # * 370 : Xfig vector graphics file
78
+ # * 371 : Gtk
79
+ # * 380 : wxWidgets
80
+ # * 381 : Qt4
81
+ # * 382 : Scaleable Vector Graphics (SVG)
82
+ # * 390 : Windows Metafile
83
+ # * 400 : Quartz
84
+ # * 410 : Socket driver
85
+ # * 415 : 0MQ driver
86
+ # * 420 : OpenGL
87
+ # * 430 : HTML5 Canvas
59
88
  def openws(*)
60
89
  super
61
90
  end
62
91
 
92
+ # Close the specified workstation.
93
+ # @param workstation_id [Integer] A workstation identifier.
63
94
  def closews(*)
64
95
  super
65
96
  end
66
97
 
98
+ # Activate the specified workstation.
99
+ # @param workstation_id [Integer] A workstation identifier.
67
100
  def activatews(*)
68
101
  super
69
102
  end
70
103
 
104
+ # Deactivate the specified workstation.
105
+ # @param workstation_id [Integer] A workstation identifier.
71
106
  def deactivatews(*)
72
107
  super
73
108
  end
@@ -86,22 +121,34 @@ module GR
86
121
 
87
122
  # Draw a polyline using the current line attributes,
88
123
  # starting from the first data point and ending at the last data point.
124
+ # @param x [Array, NArray] A list containing the X coordinates
125
+ # @param y [Array, NArray] A list containing the Y coordinates
89
126
  def polyline(x, y)
90
127
  n = equal_length(x, y)
91
128
  super(n, x, y)
92
129
  end
93
130
 
94
131
  # Draw marker symbols centered at the given data points.
132
+ # @param x [Array, NArray] A list containing the X coordinates
133
+ # @param y [Array, NArray] A list containing the Y coordinates
95
134
  def polymarker(x, y)
96
135
  n = equal_length(x, y)
97
136
  super(n, x, y)
98
137
  end
99
138
 
139
+ # Draw a text at position `x`, `y` using the current text attributes.
140
+ # @param x [Numeric] The X coordinate of starting position of the text string
141
+ # @param y [Numeric] The Y coordinate of starting position of the text string
142
+ # @param string [String] The text to be drawn
143
+ #
144
+ # The values for `x` and `y` are in normalized device coordinates.
145
+ # The attributes that control the appearance of text are text font and precision,
146
+ # character expansion factor, character spacing, text color index, character
147
+ # height, character up vector, text path and text alignment.
100
148
  def text(*)
101
149
  super
102
150
  end
103
151
 
104
- # inqtext
105
152
  def inqtext(x, y, string)
106
153
  inquiry [{ double: 4 }, { double: 4 }] do |tbx, tby|
107
154
  super(x, y, string, tbx, tby)
@@ -109,32 +156,72 @@ module GR
109
156
  end
110
157
 
111
158
  # Allows you to specify a polygonal shape of an area to be filled.
159
+ # @param x [Array, NArray] A list containing the X coordinates
160
+ # @param y [Array, NArray] A list containing the Y coordinates
161
+ #
162
+ # The attributes that control the appearance of fill areas are fill area interior
163
+ # style, fill area style index and fill area color index.
112
164
  def fillarea(x, y)
113
165
  n = equal_length(x, y)
114
166
  super(n, x, y)
115
167
  end
116
168
 
117
- # Display rasterlike images in a device-independent manner.
118
- # The cell array function partitions a rectangle given by two corner points into DIMX X DIMY cells,
119
- # each of them colored individually by the corresponding color index of the given cell array.
169
+ # Display rasterlike images in a device-independent manner. The cell array
170
+ # function partitions a rectangle given by two corner points into DIMX X DIMY
171
+ # cells, each of them colored individually by the corresponding color index
172
+ # of the given cell array.
173
+ # @param xmin [Numeric] Lower left point of the rectangle
174
+ # @param ymin [Numeric] Lower left point of the rectangle
175
+ # @param xmax [Numeric] Upper right point of the rectangle
176
+ # @param ymax [Numeric] Upper right point of the rectangle
177
+ # @param dimx [Integer] X dimension of the color index array
178
+ # @param dimy [Integer] Y dimension of the color index array
179
+ # @param color [Array, NArray] Color index array
180
+ #
181
+ # The values for `xmin`, `xmax`, `ymin` and `ymax` are in world coordinates.
120
182
  def cellarray(xmin, xmax, ymin, ymax, dimx, dimy, color)
121
183
  super(xmin, xmax, ymin, ymax, dimx, dimy, 1, 1, dimx, dimy, int(color))
122
184
  end
123
185
 
124
186
  # Display a two dimensional color index array with nonuniform cell sizes.
187
+ # @param x [Array, NArray] X coordinates of the cell edges
188
+ # @param y [Array, NArray] Y coordinates of the cell edges
189
+ # @param dimx [Integer] X dimension of the color index array
190
+ # @param dimy [Integer] Y dimension of the color index array
191
+ # @param color [Array, NArray] Color index array
125
192
  def nonuniformcellarray(x, y, dimx, dimy, color)
126
193
  raise ArgumentError unless x.length == dimx + 1 && y.length == dimy + 1
127
194
 
128
195
  super(x, y, dimx, dimy, 1, 1, dimx, dimy, int(color))
129
196
  end
130
197
 
131
- # Display a two dimensional color index array mapped to a disk using polar coordinates.
198
+ # Display a two dimensional color index array mapped to a disk using polar
199
+ # coordinates.
200
+ # @param xorg [Numeric] X coordinate of the disk center in world coordinates
201
+ # @param yorg [Numeric] Y coordinate of the disk center in world coordinates
202
+ # @param phimin [Numeric] start angle of the disk sector in degrees
203
+ # @param phimax [Numeric] end angle of the disk sector in degrees
204
+ # @param rmin [Numeric] inner radius of the punctured disk in world coordinates
205
+ # @param rmax [Numeric] outer radius of the punctured disk in world coordinates
206
+ # @param dimiphi [Integer] Phi (X) dimension of the color index array
207
+ # @param dimr [Integer] iR (Y) dimension of the color index array
208
+ # @param color [Array, NArray] Color index array
209
+ #
210
+ # The two dimensional color index array is mapped to the resulting image by
211
+ # interpreting the X-axis of the array as the angle and the Y-axis as the raidus.
212
+ # The center point of the resulting disk is located at `xorg`, `yorg` and the
213
+ # radius of the disk is `rmax`.
132
214
  def polarcellarray(x_org, y_org, phimin, phimax, rmin, rmax, dimphi, dimr, color)
133
215
  super(x_org, y_org, phimin, phimax, rmin, rmax, dimphi, dimr, 1, 1, dimphi, dimr, int(color))
134
216
  end
135
217
 
136
218
  # Generates a generalized drawing primitive (GDP) of the type you specify,
137
- # using specified points and any additional information contained in a data record.
219
+ # using specified points and any additional information contained in a data
220
+ # record.
221
+ # @param x [Array, NArray] A list containing the X coordinates
222
+ # @param y [Array, NArray] A list containing the Y coordinates
223
+ # @param primid [Integer] Primitive identifier
224
+ # @param datrec [Array, NArray] Primitive data record
138
225
  def gdp(x, y, primid, datrec)
139
226
  n = equal_length(x, y)
140
227
  ldr = datrec.length
@@ -143,12 +230,21 @@ module GR
143
230
 
144
231
  # Generate a cubic spline-fit,
145
232
  # starting from the first data point and ending at the last data point.
233
+ # @param x [Array, NArray] A list containing the X coordinates
234
+ # @param y [Array, NArray] A list containing the Y coordinates
235
+ # @param m [Integer] The number of points in the polygon to be drawn (`m` > len(`x`))
236
+ # @param method [Integer] The smoothing method
237
+ # * If `method` is > 0, then a generalized cross-validated smoothing spline is calculated.
238
+ # * If `method` is 0, then an interpolating natural cubic spline is calculated.
239
+ # * If `method` is < -1, then a cubic B-spline is calculated.
240
+ # The values for `x` and `y` are in world coordinates. The attributes that
241
+ # control the appearance of a spline-fit are linetype, linewidth and color
242
+ # index.
146
243
  def spline(px, py, m, method)
147
244
  n = equal_length(px, py)
148
245
  super(n, px, py, m, method)
149
246
  end
150
247
 
151
- # gridit
152
248
  def gridit(xd, yd, zd, nx, ny)
153
249
  nd = equal_length(xd, yd, zd)
154
250
  inquiry [{ double: nx }, { double: ny }, { double: nx * ny }] do |px, py, pz|
@@ -156,24 +252,56 @@ module GR
156
252
  end
157
253
  end
158
254
 
255
+ # Specify the line style for polylines.
256
+ # @param style [Integer] The polyline line style
257
+ # * 1 : LINETYPE_SOLID
258
+ # * Solid line
259
+ # * 2 : LINETYPE_DASHED
260
+ # * Dashed line
261
+ # * 3 : LINETYPE_DOTTED
262
+ # * Dotted line
263
+ # * 4 : LINETYPE_DASHED_DOTTED
264
+ # * Dashed-dotted line
265
+ # * -1 : LINETYPE_DASH_2_DOT
266
+ # * Sequence of one dash followed by two dots
267
+ # * -2 : LINETYPE_DASH_3_DOT
268
+ # * Sequence of one dash followed by three dots
269
+ # * -3 : LINETYPE_LONG_DASH
270
+ # * Sequence of long dashes
271
+ # * -4 : LINETYPE_LONG_SHORT_DASH
272
+ # * Sequence of a long dash followed by a short dash
273
+ # * -5 : LINETYPE_SPACED_DASH
274
+ # * Sequence of dashes double spaced
275
+ # * -6 : LINETYPE_SPACED_DOT
276
+ # * Sequence of dots double spaced
277
+ # * -7 : LINETYPE_DOUBLE_DOT
278
+ # * Sequence of pairs of dots
279
+ # * -8 : LINETYPE_TRIPLE_DOT
280
+ # * Sequence of groups of three dots
159
281
  def setlinetype(*)
160
282
  super
161
283
  end
162
284
 
163
- # inqlinetype
164
285
  def inqlinetype
165
286
  inquiry_int { |pt| super(pt) }
166
287
  end
167
288
 
289
+ # Define the line width of subsequent polyline output primitives.
290
+ # @param width [Numeric] The polyline line width scale factor
291
+ # The line width is calculated as the nominal line width generated
292
+ # on the workstation multiplied by the line width scale factor.
293
+ # This value is mapped by the workstation to the nearest available line width.
294
+ # The default line width is 1.0, or 1 times the line width generated on the graphics device.
168
295
  def setlinewidth(*)
169
296
  super
170
297
  end
171
298
 
172
- # inqlinewidth
173
299
  def inqlinewidth
174
300
  inquiry_double { |pt| super(pt) }
175
301
  end
176
302
 
303
+ # Define the color of subsequent polyline output primitives.
304
+ # @param color [Integer] The polyline color index (COLOR < 1256)
177
305
  def setlinecolorind(*)
178
306
  super
179
307
  end
@@ -183,37 +311,167 @@ module GR
183
311
  inquiry_int { |pt| super(pt) }
184
312
  end
185
313
 
314
+ # Specifiy the marker type for polymarkers.
315
+ # @param style [Integer] The polymarker marker type
316
+ # * 1 : MARKERTYPE_DOT
317
+ # * Smallest displayable dot
318
+ # * 2 : MARKERTYPE_PLUS
319
+ # * Plus sign
320
+ # * 3 : MARKERTYPE_ASTERISK
321
+ # * Asterisk
322
+ # * 4 : MARKERTYPE_CIRCLE
323
+ # * Hollow circle
324
+ # * 5 : MARKERTYPE_DIAGONAL_CROSS
325
+ # * Diagonal cross
326
+ # * -1 : MARKERTYPE_SOLID_CIRCLE
327
+ # * Filled circle
328
+ # * -2 : MARKERTYPE_TRIANGLE_UP
329
+ # * Hollow triangle pointing upward
330
+ # * -3 : MARKERTYPE_SOLID_TRI_UP
331
+ # * Filled triangle pointing upward
332
+ # * -4 : MARKERTYPE_TRIANGLE_DOWN
333
+ # * Hollow triangle pointing downward
334
+ # * -5 : MARKERTYPE_SOLID_TRI_DOWN
335
+ # * Filled triangle pointing downward
336
+ # * -6 : MARKERTYPE_SQUARE
337
+ # * Hollow square
338
+ # * -7 : MARKERTYPE_SOLID_SQUARE
339
+ # * Filled square
340
+ # * -8 : MARKERTYPE_BOWTIE
341
+ # * Hollow bowtie
342
+ # * -9 : MARKERTYPE_SOLID_BOWTIE
343
+ # * Filled bowtie
344
+ # * -10 : MARKERTYPE_HGLASS
345
+ # * Hollow hourglass
346
+ # * -11 : MARKERTYPE_SOLID_HGLASS
347
+ # * Filled hourglass
348
+ # * -12 : MARKERTYPE_DIAMOND
349
+ # * Hollow diamond
350
+ # * -13 : MARKERTYPE_SOLID_DIAMOND
351
+ # * Filled Diamond
352
+ # * -14 : MARKERTYPE_STAR
353
+ # * Hollow star
354
+ # * -15 : MARKERTYPE_SOLID_STAR
355
+ # * Filled Star
356
+ # * -16 : MARKERTYPE_TRI_UP_DOWN
357
+ # * Hollow triangles pointing up and down overlaid
358
+ # * -17 : MARKERTYPE_SOLID_TRI_RIGHT
359
+ # * Filled triangle point right
360
+ # * -18 : MARKERTYPE_SOLID_TRI_LEFT
361
+ # * Filled triangle pointing left
362
+ # * -19 : MARKERTYPE_HOLLOW PLUS
363
+ # * Hollow plus sign
364
+ # * -20 : MARKERTYPE_SOLID PLUS
365
+ # * Solid plus sign
366
+ # * -21 : MARKERTYPE_PENTAGON
367
+ # * Pentagon
368
+ # * -22 : MARKERTYPE_HEXAGON
369
+ # * Hexagon
370
+ # * -23 : MARKERTYPE_HEPTAGON
371
+ # * Heptagon
372
+ # * -24 : MARKERTYPE_OCTAGON
373
+ # * Octagon
374
+ # * -25 : MARKERTYPE_STAR_4
375
+ # * 4-pointed star
376
+ # * -26 : MARKERTYPE_STAR_5
377
+ # * 5-pointed star (pentagram)
378
+ # * -27 : MARKERTYPE_STAR_6
379
+ # * 6-pointed star (hexagram)
380
+ # * -28 : MARKERTYPE_STAR_7
381
+ # * 7-pointed star (heptagram)
382
+ # * -29 : MARKERTYPE_STAR_8
383
+ # * 8-pointed star (octagram)
384
+ # * -30 : MARKERTYPE_VLINE
385
+ # * verical line
386
+ # * -31 : MARKERTYPE_HLINE
387
+ # * horizontal line
388
+ # * -32 : MARKERTYPE_OMARK
389
+ # * o-mark
390
+ # Polymarkers appear centered over their specified coordinates.
186
391
  def setmarkertype(*)
187
392
  super
188
393
  end
189
394
 
190
- # inqmarkertype
191
395
  def inqmarkertype
192
396
  inquiry_int { |pt| super(pt) }
193
397
  end
194
398
 
399
+ # Specify the marker size for polymarkers.
400
+ # @param size [Numeric] Scale factor applied to the nominal marker size
401
+ # The polymarker size is calculated as the nominal size generated on the graphics device
402
+ # multiplied by the marker size scale factor.
195
403
  def setmarkersize(*)
196
404
  super
197
405
  end
198
406
 
199
- # inqmarkersize
407
+ # Inquire the marker size for polymarkers.
200
408
  def inqmarkersize
201
409
  inquiry_double { |pt| super(pt) }
202
410
  end
203
411
 
412
+ # Define the color of subsequent polymarker output primitives.
413
+ # @param color [Integer] The polymarker color index (COLOR < 1256)
204
414
  def setmarkercolorind(*)
205
415
  super
206
416
  end
207
417
 
208
- # inqmarkercolorind
209
418
  def inqmarkercolorind
210
419
  inquiry_int { |pt| super(pt) }
211
420
  end
212
421
 
422
+ # Specify the text font and precision for subsequent text output primitives.
423
+ # @param font [Integer] Text font
424
+ # * 101 : FONT_TIMES_ROMAN
425
+ # * 102 : FONT_TIMES_ITALIC
426
+ # * 103 : FONT_TIMES_BOLD
427
+ # * 104 : FONT_TIMES_BOLDITALIC
428
+ # * 105 : FONT_HELVETICA
429
+ # * 106 : FONT_HELVETICA_OBLIQUE
430
+ # * 107 : FONT_HELVETICA_BOLD
431
+ # * 108 : FONT_HELVETICA_BOLDOBLIQUE
432
+ # * 109 : FONT_COURIER
433
+ # * 110 : FONT_COURIER_OBLIQUE
434
+ # * 111 : FONT_COURIER_BOLD
435
+ # * 112 : FONT_COURIER_BOLDOBLIQUE
436
+ # * 113 : FONT_SYMBOL
437
+ # * 114 : FONT_BOOKMAN_LIGHT
438
+ # * 115 : FONT_BOOKMAN_LIGHTITALIC
439
+ # * 116 : FONT_BOOKMAN_DEMI
440
+ # * 117 : FONT_BOOKMAN_DEMIITALIC
441
+ # * 118 : FONT_NEWCENTURYSCHLBK_ROMAN
442
+ # * 119 : FONT_NEWCENTURYSCHLBK_ITALIC
443
+ # * 120 : FONT_NEWCENTURYSCHLBK_BOLD
444
+ # * 121 : FONT_NEWCENTURYSCHLBK_BOLDITALIC
445
+ # * 122 : FONT_AVANTGARDE_BOOK
446
+ # * 123 : FONT_AVANTGARDE_BOOKOBLIQUE
447
+ # * 124 : FONT_AVANTGARDE_DEMI
448
+ # * 125 : FONT_AVANTGARDE_DEMIOBLIQUE
449
+ # * 126 : FONT_PALATINO_ROMAN
450
+ # * 127 : FONT_PALATINO_ITALIC
451
+ # * 128 : FONT_PALATINO_BOLD
452
+ # * 129 : FONT_PALATINO_BOLDITALIC
453
+ # * 130 : FONT_ZAPFCHANCERY_MEDIUMITALIC
454
+ # * 131 : FONT_ZAPFDINGBATS
455
+ # @param precision [Integer] Text precision
456
+ # * 0 : TEXT_PRECISION_STRING
457
+ # * String precision (higher quality)
458
+ # * 1 : TEXT_PRECISION_CHAR
459
+ # * Character precision (medium quality)
460
+ # * 2 : TEXT_PRECISION_STROKE
461
+ # * Stroke precision (lower quality)
462
+ # The appearance of a font depends on the text precision value specified.
463
+ # STRING, CHARACTER or STROKE precision allows for a greater or lesser
464
+ # realization of the text primitives, for efficiency. STRING is the default
465
+ # precision for GR and produces the highest quality output.
213
466
  def settextfontprec(*)
214
467
  super
215
468
  end
216
469
 
470
+ # Set the current character expansion factor (width to height ratio).
471
+ # @param factor [Numeric] Text expansion factor applied to the nominal text width-to-height ratio
472
+ # `setcharexpan` defines the width of subsequent text output primitives. The expansion
473
+ # factor alters the width of the generated characters, but not their height. The default
474
+ # text expansion factor is 1, or one times the normal width-to-height ratio of the text.
217
475
  def setcharexpan(*)
218
476
  super
219
477
  end
@@ -222,57 +480,157 @@ module GR
222
480
  super
223
481
  end
224
482
 
483
+ # Sets the current text color index.
484
+ # @param color [Integer] The text color index (COLOR < 1256)
485
+ # `settextcolorind` defines the color of subsequent text output primitives.
486
+ # GR uses the default foreground color (black=1) for the default text color index.
225
487
  def settextcolorind(*)
226
488
  super
227
489
  end
228
490
 
491
+ # Set the current character height.
492
+ # @param height [Numeric] Text height value
493
+ # `setcharheight` defines the height of subsequent text output primitives. Text height
494
+ # is defined as a percentage of the default window. GR uses the default text height of
495
+ # 0.027 (2.7% of the height of the default window).
229
496
  def setcharheight(*)
230
497
  super
231
498
  end
232
499
 
500
+ # Set the current character text angle up vector.
501
+ # @param ux [Numeric] Text up vector
502
+ # @param uy [Numeric] Text up vector
503
+ # `setcharup` defines the vertical rotation of subsequent text output primitives.
504
+ # The text up vector is initially set to (0, 1), horizontal to the baseline.
233
505
  def setcharup(*)
234
506
  super
235
507
  end
236
508
 
509
+ # Define the current direction in which subsequent text will be drawn.
510
+ # @param path [Integer] Text path
511
+ # * 0 : TEXT_PATH_RIGHT
512
+ # * left-to-right
513
+ # * 1 : TEXT_PATH_LEFT
514
+ # * right-to-left
515
+ # * 2 : TEXT_PATH_UP
516
+ # * downside-up
517
+ # * 3 : TEXT_PATH_DOWN
518
+ # * upside-down
237
519
  def settextpath(*)
238
520
  super
239
521
  end
240
522
 
523
+ # Set the current horizontal and vertical alignment for text.
524
+ # @param horizontal [Integer] Horizontal text alignment
525
+ # * 0 : TEXT_HALIGN_NORMAL
526
+ # * 1 : TEXT_HALIGN_LEFT
527
+ # * Left justify
528
+ # * 2 : TEXT_HALIGN_CENTER
529
+ # * Center justify
530
+ # * 3 : TEXT_HALIGN_RIGHT
531
+ # * Right justify
532
+ # @param vertical [Integer] Vertical text alignment
533
+ # * 0 : TEXT_VALIGN_NORMAL  
534
+ # * 1 : TEXT_VALIGN_TOP
535
+ # * Align with the top of the characters
536
+ # * 2 : TEXT_VALIGN_CAP
537
+ # * Aligned with the cap of the characters
538
+ # * 3 : TEXT_VALIGN_HALF
539
+ # * Aligned with the half line of the characters
540
+ # * 4 : TEXT_VALIGN_BASE
541
+ # * Aligned with the base line of the characters
542
+ # * 5 : TEXT_VALIGN_BOTTOM
543
+ # * Aligned with the bottom line of the characters
544
+ # `settextalign` specifies how the characters in a text primitive will be aligned
545
+ # in horizontal and vertical space. The default text alignment indicates horizontal left
546
+ # alignment and vertical baseline alignment.
241
547
  def settextalign(*)
242
548
  super
243
549
  end
244
550
 
551
+ # Set the fill area interior style to be used for fill areas.
552
+ # @param style [Integer] The style of fill to be used
553
+ # * 0 : HOLLOW
554
+ # * No filling. Just draw the bounding polyline
555
+ # * 1 : SOLID
556
+ # * Fill the interior of the polygon using the fill color index
557
+ # * 2 : PATTERN
558
+ # * Fill the interior of the polygon using the style index as a pattern index
559
+ # * 3 : HATCH
560
+ # * Fill the interior of the polygon using the style index as a cross-hatched style
561
+ # `setfillintstyle` defines the interior style for subsequent fill area output
562
+ # primitives. The default interior style is HOLLOW.
245
563
  def setfillintstyle(*)
246
564
  super
247
565
  end
248
566
 
249
- # inqfillintstyle
567
+ # Returns the fill area interior style to be used for fill areas.
250
568
  def inqfillintstyle
251
569
  inquiry_int { |pt| super(pt) }
252
570
  end
253
571
 
572
+ # Sets the fill style to be used for subsequent fill areas.
573
+ # @param index [Integer] The fill style index to be used
574
+ # `setfillstyle` specifies an index when PATTERN fill or HATCH fill is requested by the
575
+ # `setfillintstyle` function. If the interior style is set to PATTERN, the fill style
576
+ # index points to a device-independent pattern table. If interior style is set to HATCH
577
+ # the fill style index indicates different hatch styles. If HOLLOW or SOLID is specified
578
+ # for the interior style, the fill style index is unused.
254
579
  def setfillstyle(*)
255
580
  super
256
581
  end
257
582
 
258
- # inqfillstyle
583
+ # Returns the current fill area color index.
259
584
  def inqfillstyle
260
585
  inquiry_int { |pt| super(pt) }
261
586
  end
262
587
 
588
+ # Sets the current fill area color index.
589
+ # @param color [Integer] The text color index (COLOR < 1256)
590
+ # `setfillcolorind` defines the color of subsequent fill area output primitives.
591
+ # GR uses the default foreground color (black=1) for the default fill area color index.
263
592
  def setfillcolorind(*)
264
593
  super
265
594
  end
266
595
 
267
- # inqfillcolorind
596
+ # Returns the current fill area color index.
268
597
  def inqfillcolorind
269
598
  inquiry_int { |pt| super(pt) }
270
599
  end
271
600
 
601
+ # `setcolorrep` allows to redefine an existing color index representation by specifying
602
+ # an RGB color triplet.
603
+ # @param index [Integer] Color index in the range 0 to 1256
604
+ # @param red [Numeric] Red intensity in the range 0.0 to 1.0
605
+ # @param green [Numeric] Green intensity in the range 0.0 to 1.0
606
+ # @param blue [Numeric] Blue intensity in the range 0.0 to 1.0
272
607
  def setcolorrep(*)
273
608
  super
274
609
  end
275
610
 
611
+ # `setscale` sets the type of transformation to be used for subsequent GR output
612
+ # primitives.
613
+ # @param options [Integer] Scale specification
614
+ # * 1 : OPTION_X_LOG
615
+ # * Logarithmic X-axis
616
+ # * 2 : OPTION_Y_LOG
617
+ # * Logarithmic Y-axis
618
+ # * 4 : OPTION_Z_LOG
619
+ # * Logarithmic Z-axis
620
+ # * 8 : OPTION_FLIP_X
621
+ # * Flip X-axis
622
+ # * 16 : OPTION_FLIP_Y
623
+ # * Flip Y-axis
624
+ # * 32 : OPTION_FLIP_Z
625
+ # * Flip Z-axis
626
+ # `setscale` defines the current transformation according to the given scale
627
+ # specification which may be or'ed together using any of the above options. GR uses
628
+ # these options for all subsequent output primitives until another value is provided.
629
+ # The scale options are used to transform points from an abstract logarithmic or
630
+ # semi-logarithmic coordinate system, which may be flipped along each axis, into the
631
+ # world coordinate system.
632
+ # Note: When applying a logarithmic transformation to a specific axis, the system
633
+ # assumes that the axes limits are greater than zero.
276
634
  def setscale(*)
277
635
  super
278
636
  end
@@ -282,6 +640,19 @@ module GR
282
640
  inquiry_int { |pt| super(pt) }
283
641
  end
284
642
 
643
+ # `setwindow` establishes a window, or rectangular subspace, of world coordinates to be
644
+ # plotted. If you desire log scaling or mirror-imaging of axes, use the SETSCALE function.
645
+ # @param xmin [Numeric] The left horizontal coordinate of the window (`xmin` < `xmax`).
646
+ # @param xmax [Numeric] The right horizontal coordinate of the window.
647
+ # @param ymin [Numeric] The bottom vertical coordinate of the window (`ymin` < `ymax`).
648
+ # @param ymax [Numeric] The top vertical coordinate of the window.
649
+ # `setwindow` defines the rectangular portion of the World Coordinate space (WC) to be
650
+ # associated with the specified normalization transformation. The WC window and the
651
+ # Normalized Device Coordinates (NDC) viewport define the normalization transformation
652
+ # through which all output primitives are mapped. The WC window is mapped onto the
653
+ # rectangular NDC viewport which is, in turn, mapped onto the display surface of the
654
+ # open and active workstation, in device coordinates. By default, GR uses the range
655
+ # \[0,1] x [0,1], in world coordinates, as the normalization transformation window.
285
656
  def setwindow(*)
286
657
  super
287
658
  end
@@ -293,6 +664,17 @@ module GR
293
664
  end
294
665
  end
295
666
 
667
+ # `setviewport` establishes a rectangular subspace of normalized device coordinates.
668
+ # @param xmin [Numeric] The left horizontal coordinate of the viewport.
669
+ # @param xmax [Numeric] The right horizontal coordinate of the viewport (0 <= `xmin` < `xmax` <= 1).
670
+ # @param ymin [Numeric] The bottom vertical coordinate of the viewport.
671
+ # @param ymax [Numeric] The top vertical coordinate of the viewport (0 <= `ymin` < `ymax` <= 1).
672
+ # `setviewport` defines the rectangular portion of the Normalized Device Coordinate
673
+ # (NDC) space to be associated with the specified normalization transformation. The
674
+ # NDC viewport and World Coordinate (WC) window define the normalization transformation
675
+ # through which all output primitives pass. The WC window is mapped onto the rectangular
676
+ # NDC viewport which is, in turn, mapped onto the display surface of the open and active
677
+ # workstation, in device coordinates.
296
678
  def setviewport(*)
297
679
  super
298
680
  end
@@ -304,18 +686,51 @@ module GR
304
686
  end
305
687
  end
306
688
 
689
+ # `selntran` selects a predefined transformation from world coordinates to normalized
690
+ # device coordinates.
691
+ # @param transform [Integer] A normalization transformation number.
692
+ # * 0 : Selects the identity transformation in which both the window and viewport have the range of 0 to 1
693
+ # * >= 1 : Selects a normalization transformation as defined by `setwindow` and `setviewport`
307
694
  def selntran(*)
308
695
  super
309
696
  end
310
697
 
698
+ # Set the clipping indicator.
699
+ # @params indicator [Integer] An indicator specifying whether clipping is on or off.
700
+ # * 0 : Clipping is off. Data outside of the window will be drawn.
701
+ # * 1 : Clipping is on. Data outside of the window will not be drawn.
702
+ # `setclip` enables or disables clipping of the image drawn in the current window.
703
+ # Clipping is defined as the removal of those portions of the graph that lie outside of
704
+ # the defined viewport. If clipping is on, GR does not draw generated output primitives
705
+ # past the viewport boundaries. If clipping is off, primitives may exceed the viewport
706
+ # boundaries, and they will be drawn to the edge of the workstation window.
707
+ # By default, clipping is on.
311
708
  def setclip(*)
312
709
  super
313
710
  end
314
711
 
712
+ # Set the area of the NDC viewport that is to be drawn in the workstation window.
713
+ # @param xmin [Numeric] The left horizontal coordinate of the workstation window.
714
+ # @param xmax [Numeric] The right horizontal coordinate of the workstation window (0 <= `xmin` < `xmax` <= 1).
715
+ # @param ymin [Numeric] The bottom vertical coordinate of the workstation window.
716
+ # @param ymax [Numeric] The top vertical coordinate of the workstation window (0 <= `ymin` < `ymax` <= 1).
717
+ # `setwswindow` defines the rectangular area of the Normalized Device Coordinate space
718
+ # to be output to the device. By default, the workstation transformation will map the
719
+ # range [0,1] x [0,1] in NDC onto the largest square on the workstation’s display
720
+ # surface. The aspect ratio of the workstation window is maintained at 1 to 1.
315
721
  def setwswindow(*)
316
722
  super
317
723
  end
318
724
 
725
+ # Define the size of the workstation graphics window in meters.
726
+ # @param xmin [Numeric] The left horizontal coordinate of the workstation viewport.
727
+ # @param xmax [Numeric] The right horizontal coordinate of the workstation viewport.
728
+ # @param ymin [Numeric] The bottom vertical coordinate of the workstation viewport.
729
+ # @param ymax [Numeric] The top vertical coordinate of the workstation viewport.
730
+ # `setwsviewport` places a workstation window on the display of the specified size in
731
+ # meters. This command allows the workstation window to be accurately sized for a
732
+ # display or hardcopy device, and is often useful for sizing graphs for desktop
733
+ # publishing applications.
319
734
  def setwsviewport(*)
320
735
  super
321
736
  end
@@ -348,17 +763,79 @@ module GR
348
763
  super
349
764
  end
350
765
 
766
+ # Set the abstract Z-space used for mapping three-dimensional output primitives into
767
+ # the current world coordinate space.
768
+ # @param zmin [Numeric] Minimum value for the Z-axis.
769
+ # @param zmax [Numeric] Maximum value for the Z-axis.
770
+ # @param rotation [Integer] Angle for the rotation of the X axis, in degrees.
771
+ # @param tilt [integer] Viewing angle of the Z axis in degrees.
772
+ # `setspace` establishes the limits of an abstract Z-axis and defines the angles for
773
+ # rotation and for the viewing angle (tilt) of a simulated three-dimensional graph,
774
+ # used for mapping corresponding output primitives into the current window.
775
+ # These settings are used for all subsequent three-dimensional output primitives until
776
+ # other values are specified. Angles of rotation and viewing angle must be specified
777
+ # between 0° and 90°.
351
778
  def setspace(*)
352
779
  super
353
780
  end
354
781
 
355
- # inqspace
356
782
  def inqspace
357
783
  inquiry %i[double double int int] do |*pts|
358
784
  super(*pts)
359
785
  end
360
786
  end
361
787
 
788
+ # Draw a text at position `x`, `y` using the current text attributes. Strings can be
789
+ # defined to create basic mathematical expressions and Greek letters.
790
+ # @param x [Numeric] The X coordinate of starting position of the text string
791
+ # @param y [Numeric] The Y coordinate of starting position of the text string
792
+ # @param string [String] The text to be drawn
793
+ #
794
+ # The values for X and Y are in normalized device coordinates.
795
+ # The attributes that control the appearance of text are text font and precision,
796
+ # character expansion factor, character spacing, text color index, character
797
+ # height, character up vector, text path and text alignment.
798
+ #
799
+ # The character string is interpreted to be a simple mathematical formula.
800
+ # The following notations apply:
801
+ #
802
+ # Subscripts and superscripts: These are indicated by carets ('^') and underscores
803
+ # \('_'). If the sub/superscript contains more than one character, it must be enclosed
804
+ # in curly braces ('{}').
805
+ #
806
+ # Fractions are typeset with A '/' B, where A stands for the numerator and B for the
807
+ # denominator.
808
+ #
809
+ # To include a Greek letter you must specify the corresponding keyword after a
810
+ # backslash ('\') character. The text translator produces uppercase or lowercase
811
+ # Greek letters depending on the case of the keyword.
812
+ # * Α α - alpha
813
+ # * Β β - beta
814
+ # * Γ γ - gamma
815
+ # * Δ δ - delta
816
+ # * Ε ε - epsilon
817
+ # * Ζ ζ - zeta
818
+ # * Η η - eta
819
+ # * Θ θ - theta
820
+ # * Ι ι - iota
821
+ # * Κ κ - kappa
822
+ # * Λ λ - lambda
823
+ # * Μ μ - mu
824
+ # * Ν ν - Nu / v
825
+ # * Ξ ξ - xi
826
+ # * Ο ο - omicron
827
+ # * Π π - pi
828
+ # * Ρ ρ - rho
829
+ # * Σ σ - sigma
830
+ # * Τ τ - tau
831
+ # * Υ υ - upsilon
832
+ # * Φ φ - phi
833
+ # * Χ χ - chi
834
+ # * Ψ ψ - psi
835
+ # * Ω ω - omega
836
+ # Note: `\v` is a replacement for `\nu` which would conflict with `\n` (newline)
837
+ # For more sophisticated mathematical formulas, you should use the `gr.mathtex`
838
+ # function.
362
839
  def textext(*)
363
840
  super
364
841
  end
@@ -370,27 +847,88 @@ module GR
370
847
  end
371
848
  end
372
849
 
850
+ # Draw X and Y coordinate axes with linearly and/or logarithmically spaced tick marks.
851
+ # @param x_tick [Numeric] The interval between minor tick marks on the X axis.
852
+ # @param y_tick [Numeric] The interval between minor tick marks on the Y axis.
853
+ # @param x_org [Numeric] The world coordinates of the origin (point of intersection) of the X axis.
854
+ # @param y_org [Numeric] The world coordinates of the origin (point of intersection) of the Y axis.
855
+ # @param major_x [Integer]
856
+ # Unitless integer values specifying the number of minor tick intervals
857
+ # between major tick marks. Values of 0 or 1 imply no minor ticks.
858
+ # Negative values specify no labels will be drawn for the associated axis.
859
+ # @param major_y [Integer]
860
+ # Unitless integer values specifying the number of minor tick intervals
861
+ # between major tick marks. Values of 0 or 1 imply no minor ticks.
862
+ # Negative values specify no labels will be drawn for the associated axis.
863
+ # @param tick_size [Numeric]
864
+ # The length of minor tick marks specified in a normalized device
865
+ # coordinate unit. Major tick marks are twice as long as minor tick marks.
866
+ # A negative value reverses the tick marks on the axes from inward facing
867
+ # to outward facing (or vice versa).
373
868
  def axes(*)
374
869
  super
375
870
  end
376
871
 
377
872
  alias axes2d axes
378
873
 
874
+ # Draw a linear and/or logarithmic grid.
875
+ # @param x_tick [Numeric] The length in world coordinates of the interval between minor grid lines.
876
+ # @param y_tick [Numeric] The length in world coordinates of the interval between minor grid lines.
877
+ # @param x_org [Numeric] The world coordinates of the origin (point of intersection) of the grid.
878
+ # @param y_org [Numeric] The world coordinates of the origin (point of intersection) of the grid.
879
+ # @param major_x [Integer]
880
+ # Unitless integer values specifying the number of minor grid lines
881
+ # between major grid lines. Values of 0 or 1 imply no grid lines.
882
+ # @param major_y [Integer]
883
+ # Unitless integer values specifying the number of minor grid lines
884
+ # between major grid lines. Values of 0 or 1 imply no grid lines.
885
+ #
886
+ # Major grid lines correspond to the axes origin and major tick marks whether visible
887
+ # or not. Minor grid lines are drawn at points equal to minor tick marks. Major grid
888
+ # lines are drawn using black lines and minor grid lines are drawn using gray lines.
379
889
  def grid(*)
380
890
  super
381
891
  end
382
892
 
893
+ # Draw a linear and/or logarithmic grid.
894
+ # @param x_tick [Numeric] The length in world coordinates of the interval between minor grid lines.
895
+ # @param y_tick [Numeric] The length in world coordinates of the interval between minor grid lines.
896
+ # @param z_tick [Numeric] The length in world coordinates of the interval between minor grid lines.
897
+ # @param x_org [Numeric] The world coordinates of the origin (point of intersection) of the grid.
898
+ # @param y_org [Numeric] The world coordinates of the origin (point of intersection) of the grid.
899
+ # @param z_org [Numeric] The world coordinates of the origin (point of intersection) of the grid.
900
+ # @param major_x [Integer]
901
+ # Unitless integer values specifying the number of minor grid lines
902
+ # between major grid lines. Values of 0 or 1 imply no grid lines.
903
+ # @param major_y [Integer]
904
+ # Unitless integer values specifying the number of minor grid lines
905
+ # between major grid lines. Values of 0 or 1 imply no grid lines.
906
+ # @param major_z [Integer]
907
+ # Unitless integer values specifying the number of minor grid lines
908
+ # between major grid lines. Values of 0 or 1 imply no grid lines.
909
+ #
910
+ # Major grid lines correspond to the axes origin and major tick marks whether visible
911
+ # or not. Minor grid lines are drawn at points equal to minor tick marks. Major grid
912
+ # lines are drawn using black lines and minor grid lines are drawn using gray lines.
383
913
  def grid3d(*)
384
914
  super
385
915
  end
386
916
 
387
917
  # Draw a standard vertical error bar graph.
918
+ # @param x [Array, NArray] A list of length N containing the X coordinates
919
+ # @param y [Array, NArray] A list of length N containing the Y coordinates
920
+ # @param e1 [Array, NArray] The absolute values of the lower error bar data
921
+ # @param e2 [Array, NArray] The absolute values of the lower error bar data
388
922
  def verrorbars(px, py, e1, e2)
389
923
  n = equal_length(px, py, e1, e2)
390
924
  super(n, px, py, e1, e2)
391
925
  end
392
926
 
393
927
  # Draw a standard horizontal error bar graph.
928
+ # @param x [Array, NArray] A list of length N containing the X coordinates
929
+ # @param y [Array, NArray] A list of length N containing the Y coordinates
930
+ # @param e1 [Array, NArray] The absolute values of the lower error bar data
931
+ # @param e2 [Array, NArray] The absolute values of the lower error bar data
394
932
  def herrorbars(px, py, e1, e2)
395
933
  n = equal_length(px, py, e1, e2)
396
934
  super(n, px, py, e1, e2)
@@ -398,26 +936,96 @@ module GR
398
936
 
399
937
  # Draw a 3D curve using the current line attributes,
400
938
  # starting from the first data point and ending at the last data point.
939
+ # @param x [Array, NArray] A list of length N containing the X coordinates
940
+ # @param y [Array, NArray] A list of length N containing the Y coordinates
941
+ # @param z [Array, NArray] A list of length N containing the Z coordinates
942
+ # The values for `x`, `y` and `z` are in world coordinates. The attributes that
943
+ # control the appearance of a polyline are linetype, linewidth and color
944
+ # index.
401
945
  def polyline3d(px, py, pz)
402
946
  n = equal_length(px, py, pz)
403
947
  super(n, px, py, pz)
404
948
  end
405
949
 
406
950
  # Draw marker symbols centered at the given 3D data points.
951
+ # @param x [Array, NArray] A list of length N containing the X coordinates
952
+ # @param y [Array, NArray] A list of length N containing the Y coordinates
953
+ # @param z [Array, NArray] A list of length N containing the Z coordinates
954
+ # The values for `x`, `y` and `z` are in world coordinates. The attributes
955
+ # that control the appearance of a polymarker are marker type, marker size
956
+ # scale factor and color index.
407
957
  def polymarker3d(px, py, pz)
408
958
  n = equal_length(px, py, pz)
409
959
  super(n, px, py, pz)
410
960
  end
411
961
 
962
+ # Draw X, Y and Z coordinate axes with linearly and/or logarithmically
963
+ # spaced tick marks.
964
+ # @param x_tick [Numeric] The interval between minor tick marks on the X axis.
965
+ # @param y_tick [Numeric] The interval between minor tick marks on the Y axis.
966
+ # @param z_tick [Numeric] The interval between minor tick marks on the Z axis.
967
+ # @param x_org [Numeric] The world coordinates of the origin (point of intersection) of the X axes.
968
+ # @param y_org [Numeric] The world coordinates of the origin (point of intersection) of the Y axes.
969
+ # @param z_org [Numeric] The world coordinates of the origin (point of intersection) of the Z axes.
970
+ # @param major_x [Integer]
971
+ # Unitless integer values specifying the number of minor tick intervals
972
+ # between major tick marks. Values of 0 or 1 imply no minor ticks.
973
+ # Negative values specify no labels will be drawn for the associated axis.
974
+ # @param major_y [Integer]
975
+ # Unitless integer values specifying the number of minor tick intervals
976
+ # between major tick marks. Values of 0 or 1 imply no minor ticks.
977
+ # Negative values specify no labels will be drawn for the associated axis.
978
+ # @param major_z [Integer]
979
+ # Unitless integer values specifying the number of minor tick intervals
980
+ # between major tick marks. Values of 0 or 1 imply no minor ticks.
981
+ # Negative values specify no labels will be drawn for the associated axis.
982
+ # @param [Numeric] tick_size
983
+ # The length of minor tick marks specified in a normalized device
984
+ # coordinate unit. Major tick marks are twice as long as minor tick marks.
985
+ # A negative value reverses the tick marks on the axes from inward facing
986
+ # to outward facing (or vice versa).
987
+ # Tick marks are positioned along each axis so that major tick marks fall on the axes
988
+ # origin (whether visible or not). Major tick marks are labeled with the corresponding
989
+ # data values. Axes are drawn according to the scale of the window. Axes and tick marks
990
+ # are drawn using solid lines; line color and width can be modified using the
991
+ # `setlinetype` and `setlinewidth` functions. Axes are drawn according to
992
+ # the linear or logarithmic transformation established by the `setscale` function.
412
993
  def axes3d(*)
413
994
  super
414
995
  end
415
996
 
997
+ # Display axis titles just outside of their respective axes.
998
+ # @param x_title [String] The text to be displayed on the X axis
999
+ # @param x_title [String] The text to be displayed on the Y axis
1000
+ # @param x_title [String] The text to be displayed on the Z axis
416
1001
  def titles3d(*)
417
1002
  super
418
1003
  end
419
1004
 
420
1005
  # Draw a three-dimensional surface plot for the given data points.
1006
+ # @param x [Array, NArray] A list containing the X coordinates
1007
+ # @param y [Array, NArray] A list containing the Y coordinates
1008
+ # @param z [Array, NArray]
1009
+ # A list of length `len(x)` * `len(y)` or an appropriately dimensioned
1010
+ # array containing the Z coordinates
1011
+ # @param option [Integer] Surface display option
1012
+ # * 0 LINES
1013
+ # * Use X Y polylines to denote the surface
1014
+ # * 1 MESH
1015
+ # * Use a wire grid to denote the surface
1016
+ # * 2 FILLED_MESH
1017
+ # * Applies an opaque grid to the surface
1018
+ # * 3 Z_SHADED_MESH
1019
+ # * Applies Z-value shading to the surface
1020
+ # * 4 COLORED_MESH
1021
+ # * Applies a colored grid to the surface
1022
+ # * 5 CELL_ARRAY
1023
+ # * Applies a grid of individually-colored cells to the surface
1024
+ # * 6 SHADED_MESH
1025
+ # * Applies light source shading to the 3-D surface
1026
+ # `x` and `y` define a grid. `z` is a singly dimensioned array containing at least
1027
+ # `nx` * `ny` data points. Z describes the surface height at each point on the grid.
1028
+ # Data is ordered as shown in the table:
421
1029
  def surface(px, py, pz, option)
422
1030
  # TODO: check: Arrays have incorrect length or dimension.
423
1031
  nx = px.length
@@ -428,6 +1036,18 @@ module GR
428
1036
  # Draw contours of a three-dimensional data set
429
1037
  # whose values are specified over a rectangular mesh.
430
1038
  # Contour lines may optionally be labeled.
1039
+ # @param x [Array, NArray] A list containing the X coordinates
1040
+ # @param y [Array, NArray] A list containing the Y coordinates
1041
+ # @param h [Array, NArray] A list containing the Z coordinate for the height values
1042
+ # @param z [Array, NArray]
1043
+ # A list containing the Z coordinate for the height values
1044
+ # A list of length `len(x)` * `len(y)` or an appropriately dimensioned
1045
+ # array containing the Z coordinates
1046
+ # @param major_h [Integer]
1047
+ # Directs GR to label contour lines. For example, a value of 3 would label
1048
+ # every third line. A value of 1 will label every line. A value of 0
1049
+ # produces no labels. To produce colored contour lines, add an offset
1050
+ # of 1000 to `major_h`.
431
1051
  def contour(px, py, h, pz, major_h)
432
1052
  # TODO: check: Arrays have incorrect length or dimension.
433
1053
  nx = px.length
@@ -438,6 +1058,15 @@ module GR
438
1058
 
439
1059
  # Draw filled contours of a three-dimensional data set
440
1060
  # whose values are specified over a rectangular mesh.
1061
+ # @param x [Array, NArray] A list containing the X coordinates
1062
+ # @param y [Array, NArray] A list containing the Y coordinates
1063
+ # @param h [Array, NArray]
1064
+ # A list containing the Z coordinate for the height values or the number
1065
+ # of contour lines which will be evenly distributed between minimum and
1066
+ # maximum Z value
1067
+ # @param z [Array, NArray]
1068
+ # A list of length `len(x)` * `len(y)` or an appropriately dimensioned
1069
+ # array containing the Z coordinates
441
1070
  def contourf(px, py, h, pz, major_h)
442
1071
  # TODO: check: Arrays have incorrect length or dimension.
443
1072
  nx = px.length
@@ -453,7 +1082,6 @@ module GR
453
1082
  super(npoints, x, y, z, nlevels, levels)
454
1083
  end
455
1084
 
456
- # hexbin
457
1085
  def hexbin(x, y, nbins)
458
1086
  n = x.length
459
1087
  super(n, x, y, nbins)
@@ -468,7 +1096,7 @@ module GR
468
1096
  inquiry_int { |pt| super(pt) }
469
1097
  end
470
1098
 
471
- # Define a linear interpolated colormap by a list of RGB colors.
1099
+ # TODO: GR.jl python-gr different API
472
1100
  def setcolormapfromrgb(r, g, b, positions: nil)
473
1101
  n = equal_length(r, g, b)
474
1102
  if positions.nil?
@@ -483,7 +1111,6 @@ module GR
483
1111
  super
484
1112
  end
485
1113
 
486
- # inqcolor
487
1114
  def inqcolor(color)
488
1115
  inquiry_int do |rgb|
489
1116
  super(color, rgb)
@@ -494,7 +1121,6 @@ module GR
494
1121
  super
495
1122
  end
496
1123
 
497
- # hsvtorgb
498
1124
  def hsvtorgb(h, s, v)
499
1125
  inquiry %i[double double double] do |r, g, b|
500
1126
  super(h, s, v, r, g, b)
@@ -517,10 +1143,60 @@ module GR
517
1143
  super
518
1144
  end
519
1145
 
1146
+ # Open and activate a print device.
1147
+ # @param pathname [String] Filename for the print device.
1148
+ # The following file types are supported:
1149
+ # * .ps, .eps : PostScript
1150
+ # * .pdf : Portable Document Format
1151
+ # * .bmp : Windows Bitmap (BMP)
1152
+ # * .jpeg, .jpg : JPEG image file
1153
+ # * .png : Portable Network Graphics file (PNG)
1154
+ # * .tiff, .tif : Tagged Image File Format (TIFF)
1155
+ # * .fig : Xfig vector graphics file
1156
+ # * .svg : Scalable Vector Graphics
1157
+ # * .wmf : Windows Metafile
1158
+ # `beginprint` opens an additional graphics output device. The device type is obtained
1159
+ # from the given file extension.
520
1160
  def beginprint(*)
521
1161
  super
522
1162
  end
523
1163
 
1164
+ # Open and activate a print device with the given layout attributes.
1165
+ # @param pathname [String] Filename for the print device.
1166
+ # @param mode [String] Output mode (Color, GrayScale)
1167
+ # @param fmt [String] Output format
1168
+ # The available formats are:
1169
+ # * A4 : 0.210 x 0.297
1170
+ # * B5 : 0.176 x 0.250
1171
+ # * Letter : 0.216 x 0.279
1172
+ # * Legal : 0.216 x 0.356
1173
+ # * Executive : 0.191 x 0.254
1174
+ # * A0 : 0.841 x 1.189
1175
+ # * A1 : 0.594 x 0.841
1176
+ # * A2 : 0.420 x 0.594
1177
+ # * A3 : 0.297 x 0.420
1178
+ # * A5 : 0.148 x 0.210
1179
+ # * A6 : 0.105 x 0.148
1180
+ # * A7 : 0.074 x 0.105
1181
+ # * A8 : 0.052 x 0.074
1182
+ # * A9 : 0.037 x 0.052
1183
+ # * B0 : 1.000 x 1.414
1184
+ # * B1 : 0.500 x 0.707
1185
+ # * B10 : 0.031 x 0.044
1186
+ # * B2 : 0.500 x 0.707
1187
+ # * B3 : 0.353 x 0.500
1188
+ # * B4 : 0.250 x 0.353
1189
+ # * B6 : 0.125 x 0.176
1190
+ # * B7 : 0.088 x 0.125
1191
+ # * B8 : 0.062 x 0.088
1192
+ # * B9 : 0.044 x 0.062
1193
+ # * C5E : 0.163 x 0.229
1194
+ # * Comm10E : 0.105 x 0.241
1195
+ # * DLE : 0.110 x 0.220
1196
+ # * Folio : 0.210 x 0.330
1197
+ # * Ledger : 0.432 x 0.279
1198
+ # * Tabloid : 0.279 x 0.432
1199
+ # @param orientation [String] Page orientation (Landscape, Portait)
524
1200
  def beginprintext(*)
525
1201
  super
526
1202
  end
@@ -529,7 +1205,6 @@ module GR
529
1205
  super
530
1206
  end
531
1207
 
532
- # ndctowc
533
1208
  def ndctowc(x, y)
534
1209
  inquiry %i[double double] do |px, py|
535
1210
  px.write_double x
@@ -538,7 +1213,6 @@ module GR
538
1213
  end
539
1214
  end
540
1215
 
541
- # wctondc
542
1216
  def wctondc(x, y)
543
1217
  inquiry %i[double double] do |px, py|
544
1218
  px.write_double x
@@ -547,7 +1221,6 @@ module GR
547
1221
  end
548
1222
  end
549
1223
 
550
- # wc3towc
551
1224
  def wc3towc(x, y, z)
552
1225
  inquiry %i[double double double] do |px, py, pz|
553
1226
  px.write_double x
@@ -557,36 +1230,109 @@ module GR
557
1230
  end
558
1231
  end
559
1232
 
1233
+ # Draw a rectangle using the current line attributes.
1234
+ # @param xmin [Numeric] Lower left edge of the rectangle
1235
+ # @param xmax [Numeric] Lower right edge of the rectangle
1236
+ # @param ymin [Numeric] Upper left edge of the rectangle
1237
+ # @param ymax [Numeric] Upper right edge of the rectangle
560
1238
  def drawrect(*)
561
1239
  super
562
1240
  end
563
1241
 
1242
+ # Draw a filled rectangle using the current fill attributes.
1243
+ # @param xmin [Numeric] Lower left edge of the rectangle
1244
+ # @param xmax [Numeric] Lower right edge of the rectangle
1245
+ # @param ymin [Numeric] Upper left edge of the rectangle
1246
+ # @param ymax [Numeric] Upper right edge of the rectangle
564
1247
  def fillrect(*)
565
1248
  super
566
1249
  end
567
1250
 
1251
+ # Draw a circular or elliptical arc covering the specified rectangle.
1252
+ # @param xmin [Numeric] Lower left edge of the rectangle
1253
+ # @param xmax [Numeric] Lower right edge of the rectangle
1254
+ # @param ymin [Numeric] Upper left edge of the rectangle
1255
+ # @param ymax [Numeric] Upper right edge of the rectangle
1256
+ # @param a1 [Numeric] The start angle
1257
+ # @param a2 [Numeric] The end angle
1258
+ # The resulting arc begins at `a1` and ends at `a2` degrees. Angles are interpreted
1259
+ # such that 0 degrees is at the 3 o'clock position. The center of the arc is the center
1260
+ # of the given rectangle.
568
1261
  def drawarc(*)
569
1262
  super
570
1263
  end
571
1264
 
1265
+ # Fill a circular or elliptical arc covering the specified rectangle.
1266
+ # @param xmin [Numeric] Lower left edge of the rectangle
1267
+ # @param xmax [Numeric] Lower right edge of the rectangle
1268
+ # @param ymin [Numeric] Upper left edge of the rectangle
1269
+ # @param ymax [Numeric] Upper right edge of the rectangle
1270
+ # @param a1 [Numeric] The start angle
1271
+ # @param a2 [Numeric] The end angle
1272
+ # The resulting arc begins at `a1` and ends at `a2` degrees. Angles are interpreted
1273
+ # such that 0 degrees is at the 3 o'clock position. The center of the arc is the center
1274
+ # of the given rectangle.
572
1275
  def fillarc(*)
573
1276
  super
574
1277
  end
575
1278
 
576
1279
  # Draw simple and compound outlines consisting of line segments and bezier curves.
1280
+ # @param points [Array, NArray] (N, 2) array of (x, y) vertices
1281
+ # @parm codes [Array, NArray] N-length array of path codes
1282
+ # * STOP : end the entire path
1283
+ # * MOVETO : move to the given vertex
1284
+ # * LINETO : draw a line from the current position to the given vertex
1285
+ # * CURVE3 : draw a quadratic Bézier curve
1286
+ # * CURVE4 : draw a cubic Bézier curve
1287
+ # * CLOSEPOLY : draw a line segment to the start point of the current path
1288
+ # @parm fill [Integer] A flag indication whether resulting path is to be filled or not
577
1289
  def drawpath(points, codes, fill)
578
1290
  len = codes.length
579
1291
  super(len, points, uint8(codes), fill)
580
1292
  end
581
1293
 
1294
+ # Set the arrow style to be used for subsequent arrow commands.
1295
+ # @param style [Integer] The arrow style to be used
1296
+ # The default arrow style is 1.
1297
+ # * 1 : simple, single-ended
1298
+ # * 2 : simple, single-ended, acute head
1299
+ # * 3 : hollow, single-ended
1300
+ # * 4 : filled, single-ended
1301
+ # * 5 : triangle, single-ended
1302
+ # * 6 : filled triangle, single-ended
1303
+ # * 7 : kite, single-ended
1304
+ # * 8 : filled kite, single-ended
1305
+ # * 9 : simple, double-ended
1306
+ # * 10 : simple, double-ended, acute head
1307
+ # * 11 : hollow, double-ended
1308
+ # * 12 : filled, double-ended
1309
+ # * 13 : triangle, double-ended
1310
+ # * 14 : filled triangle, double-ended
1311
+ # * 15 : kite, double-ended
1312
+ # * 16 : filled kite, double-ended
1313
+ # * 17 : double line, single-ended
1314
+ # * 18 : double line, double-ended
1315
+ # `setarrowstyle` defines the arrow style for subsequent arrow primitives.
582
1316
  def setarrowstyle(*)
583
1317
  super
584
1318
  end
585
1319
 
1320
+ # Set the arrow size to be used for subsequent arrow commands.
1321
+ # @param size [Numeric] The arrow size to be used
1322
+ # `setarrowsize` defines the arrow size for subsequent arrow primitives.
1323
+ # The default arrow size is 1.
586
1324
  def setarrowsize(*)
587
1325
  super
588
1326
  end
589
1327
 
1328
+ # Draw an arrow between two points.
1329
+ # @param x1 [Numeric] Starting point of the arrow (tail)
1330
+ # @param y1 [Numeric] Starting point of the arrow (tail)
1331
+ # @param x2 [Numeric] Head of the arrow
1332
+ # @param y2 [Numeric] Head of the arrow
1333
+ # Different arrow styles (angles between arrow tail and wing, optionally filled
1334
+ # heads, double headed arrows) are available and can be set with the `setarrowstyle`
1335
+ # function.
590
1336
  def drawarrow(*)
591
1337
  super
592
1338
  end
@@ -601,6 +1347,23 @@ module GR
601
1347
  end
602
1348
 
603
1349
  # Draw an image into a given rectangular area.
1350
+ # @param xmin [Numeric] First corner point of the rectangle
1351
+ # @param ymin [Numeric] First corner point of the rectangle
1352
+ # @param xmax [Numeric] Second corner point of the rectangle
1353
+ # @param ymax [Numeric] Second corner point of the rectangle
1354
+ # @param width [Integer] The width and the height of the image
1355
+ # @param height [Integer] The width and the height of the image
1356
+ # @param data [Array, NArray] An array of color values dimensioned `width` by `height`
1357
+ # @param model [Integer] Color model ( default = 0 )
1358
+ # The available color models are:
1359
+ # * 0 : MODEL_RGB
1360
+ # * AABBGGRR
1361
+ # * 1 : MODEL_HSV
1362
+ # * AAVVSSHH
1363
+ # The points (`xmin`, `ymin`) and (`xmax`, `ymax`) are world coordinates defining
1364
+ # diagonally opposite corner points of a rectangle. This rectangle is divided into
1365
+ # `width` by `height` cells. The two-dimensional array `data` specifies colors
1366
+ # for each cell.
604
1367
  def drawimage(xmin, xmax, ymin, ymax, width, height, data, model = 0)
605
1368
  super(xmin, xmax, ymin, ymax, width, height, uint(data), model)
606
1369
  end
@@ -609,21 +1372,40 @@ module GR
609
1372
  super
610
1373
  end
611
1374
 
1375
+ # `setshadow` allows drawing of shadows, realized by images painted underneath,
1376
+ # and offset from, graphics objects such that the shadow mimics the effect of a light
1377
+ # source cast on the graphics objects.
1378
+ # @param offsetx [Numeric]
1379
+ # An x-offset, which specifies how far in the horizontal direction the
1380
+ # shadow is offset from the object
1381
+ # @param offsety [Numeric]
1382
+ # A y-offset, which specifies how far in the vertical direction the shadow
1383
+ # is offset from the object
1384
+ # @param blur [Numeric]
1385
+ # A blur value, which specifies whether the object has a hard or a diffuse edge
612
1386
  def setshadow(*)
613
1387
  super
614
1388
  end
615
1389
 
1390
+ # Set the value of the alpha component associated with GR colors.
1391
+ # @param alpha [Numeric] An alpha value (0.0 - 1.0)
616
1392
  def settransparency(*)
617
1393
  super
618
1394
  end
619
1395
 
620
1396
  # Change the coordinate transformation according to the given matrix.
1397
+ # @param mat [Array, NArray] 2D transformation matrix
621
1398
  def setcoordxform(mat)
622
1399
  raise if mat.size != 6
623
1400
 
624
1401
  super(mat)
625
1402
  end
626
1403
 
1404
+ # Open a file for graphics output.
1405
+ # @param path [String] Filename for the graphics file.
1406
+ # `begingraphics` allows to write all graphics output into a XML-formatted file until
1407
+ # the `endgraphics` functions is called. The resulting file may later be imported with
1408
+ # the `importgraphics` function.
627
1409
  def begingraphics(*)
628
1410
  super
629
1411
  end
@@ -640,6 +1422,11 @@ module GR
640
1422
  super
641
1423
  end
642
1424
 
1425
+ # Generate a character string starting at the given location. Strings can be defined
1426
+ # to create mathematical symbols and Greek letters using LaTeX syntax.
1427
+ # @param x [Numeric] Position of the text string specified in world coordinates
1428
+ # @param y [Numeric] Position of the text string specified in world coordinates
1429
+ # @param string [String] The text string to be drawn
643
1430
  def mathtex(*)
644
1431
  super
645
1432
  end
@@ -667,7 +1454,6 @@ module GR
667
1454
  super
668
1455
  end
669
1456
 
670
- # inqbbox
671
1457
  def inqbbox
672
1458
  inquiry %i[double double double double] do |*pts|
673
1459
  super(*pts)
@@ -716,12 +1502,15 @@ module GR
716
1502
  end
717
1503
 
718
1504
  # Draw a triangular surface plot for the given data points.
1505
+ # @param x [Array, NArray] A list containing the X coordinates
1506
+ # @param y [Array, NArray] A list containing the Y coordinates
1507
+ # @param z [Array, NArray] A list containing the Z coordinates
719
1508
  def trisurface(px, py, pz)
720
1509
  n = [px, py, pz].map(&:length).min
721
1510
  super(n, px, py, pz)
722
1511
  end
723
1512
 
724
- # gradient
1513
+ # @deprecated
725
1514
  def gradient(x, y, z)
726
1515
  # TODO: check: Arrays have incorrect length or dimension.
727
1516
  nx = x.length
@@ -731,7 +1520,17 @@ module GR
731
1520
  end
732
1521
  end
733
1522
 
734
- # quiver
1523
+ # Draw a quiver plot on a grid of nx*ny points.
1524
+ # @param nx [Integer] The number of points along the x-axis of the grid
1525
+ # @param ny [Integer] The number of points along the y-axis of the grid
1526
+ # @param x [Array, NArray] A list containing the X coordinates
1527
+ # @param y [Array, NArray] A list containing the Y coordinates
1528
+ # @param u [Array, NArray] A list containing the U component for each point on the grid
1529
+ # @param v [Array, NArray] A list containing the V component for each point on the grid
1530
+ # @param color [Integer]
1531
+ # A bool to indicate whether or not the arrows should be colored using
1532
+ # the current colormap
1533
+ # The values for `x` and `y` are in world coordinates.
735
1534
  def quiver(x, y, u, v, color)
736
1535
  # TODO: check: Arrays have incorrect length or dimension.
737
1536
  nx = x.length
@@ -739,7 +1538,26 @@ module GR
739
1538
  super(nx, ny, x, y, u, v, (color ? 1 : 0))
740
1539
  end
741
1540
 
742
- # interp2
1541
+ # Interpolation in two dimensions using one of four different methods. The
1542
+ # input points are located on a grid, described by `x`, `y` and `z`.
1543
+ # The target grid ist described by `xq` and `yq`.
1544
+ # Returns an array containing the resulting z-values.
1545
+ # @param x [Array, NArray] Array containing the input grid's x-values
1546
+ # @param y [Array, NArray] Array containing the input grid's y-values
1547
+ # @param z [Array, NArray] Array containing the input grid's z-values (number of values: nx * ny)
1548
+ # @param xq [Array, NArray] Array containing the target grid's x-values
1549
+ # @param yq [Array, NArray] Array containing the target grid's y-values
1550
+ # @param method [Integer] Used method for interpolation
1551
+ # The available methods for interpolation are the following:
1552
+ # * 0 : INTERP2_NEAREST
1553
+ # * Nearest neighbour interpolation
1554
+ # * 1 : INTERP2_LINEAR
1555
+ # * Linear interpolation
1556
+ # * 2 : INTERP_2_SPLINE
1557
+ # * Interpolation using natural cubic splines
1558
+ # * 3 : INTERP2_CUBIC
1559
+ # * Cubic interpolation
1560
+ # @param extrapval [Numeric] The extrapolation value
743
1561
  def interp2(x, y, z, xq, yq, method, extrapval) # flatten
744
1562
  nx = x.length
745
1563
  ny = y.length
@@ -751,12 +1569,30 @@ module GR
751
1569
  end
752
1570
  end
753
1571
 
754
- # version
1572
+ # Returns the combined version strings of the GR runtime.
755
1573
  def version
756
1574
  super.read_string
757
1575
  end
758
1576
 
759
1577
  # Display a point set as a aggregated and rasterized image.
1578
+ # @param x [Array, NArray] A pointer to the X coordinates
1579
+ # @param y [Array, NArray] A pointer to the Y coordinates
1580
+ # @param dims [Array, NArray] The size of the grid used for rasterization
1581
+ # @param xform [Integer] The transformation type used for color mapping
1582
+ # The available transformation types are:
1583
+ # * 0 : XFORM_BOOLEAN
1584
+ # * boolean
1585
+ # * 1 : XFORM_LINEAR
1586
+ # * linear
1587
+ # * 2 : XFORM_LOG
1588
+ # * logarithmic
1589
+ # * 3 : XFORM_LOGLOG
1590
+ # * double logarithmic
1591
+ # * 4 : XFORM_CUBIC
1592
+ # * cubic
1593
+ # * 5 : XFORM_EQUALIZED
1594
+ # * histogram equalized
1595
+ # The values for `x` and `y` are in world coordinates.
760
1596
  def shadepoints(x, y, dims: [1200, 1200], xform: 1)
761
1597
  n = x.length
762
1598
  w, h = dims
@@ -764,25 +1600,93 @@ module GR
764
1600
  end
765
1601
 
766
1602
  # Display a line set as an aggregated and rasterized image.
1603
+ # @param x [Array, NArray] A pointer to the X coordinates
1604
+ # @param y [Array, NArray] A pointer to the Y coordinates
1605
+ # @param dims [Array, NArray] The size of the grid used for rasterization
1606
+ # @param xform [Integer] The transformation type used for color mapping
1607
+ # The available transformation types are:
1608
+ # * 0 : XFORM_BOOLEAN
1609
+ # * boolean
1610
+ # * 1 : XFORM_LINEAR
1611
+ # * linear
1612
+ # * 2 : XFORM_LOG
1613
+ # * logarithmic
1614
+ # * 3 : XFORM_LOGLOG
1615
+ # * double logarithmic
1616
+ # * 4 : XFORM_CUBIC
1617
+ # * cubic
1618
+ # * 5 : XFORM_EQUALIZED
1619
+ # * histogram equalized
1620
+ # The values for `x` and `y` are in world coordinates.
1621
+ # NaN values can be used to separate the point set into line segments.
767
1622
  def shadelines(x, y, dims: [1200, 1200], xform: 1)
768
1623
  n = x.length
769
1624
  w, h = dims
770
1625
  super(n, x, y, xform, w, h)
771
1626
  end
772
1627
 
773
- def panzoom(*)
774
- super
775
- end
776
-
777
1628
  # panzoom
778
1629
  def panzoom(x, y, zoom)
779
1630
  inquiry %i[double double double double] do |xmin, xmax, ymin, ymax|
780
1631
  super(x, y, zoom, zoom, xmin, xmax, ymin, ymax)
781
1632
  end
782
1633
  end
783
- end
784
1634
 
785
- # Constants - imported from GR.jl
1635
+ # Set the resample method used for gr.drawimage().
1636
+ # @param resample_method [Integer] the new resample method.
1637
+ # The available options are:
1638
+ # * 0x00000000 : RESAMPLE_DEFAULT
1639
+ # * default
1640
+ # * 0x01010101 : RESAMPLE_NEAREST
1641
+ # * nearest neighbour
1642
+ # * 0x02020202 : RESAMPLE_LINEAR
1643
+ # * linear
1644
+ # * 0x03030303 : RESAMPLE_LANCZOS
1645
+ # * Lanczos
1646
+ # Alternatively, combinations of these methods can be selected for horizontal or vertical upsampling or downsampling:
1647
+ # * 0x00000000 : UPSAMPLE_VERTICAL_DEFAULT
1648
+ # * default for vertical upsampling
1649
+ # * 0x00000000 : UPSAMPLE_HORIZONTAL_DEFAULT
1650
+ # * default for horizontal upsampling
1651
+ # * 0x00000000 : DOWNSAMPLE_VERTICAL_DEFAULT
1652
+ # * default for vertical downsampling
1653
+ # * 0x00000000 : DOWNSAMPLE_HORIZONTAL_DEFAULT
1654
+ # * default for horizontal downsampling
1655
+ # * 0x00000001 : UPSAMPLE_VERTICAL_NEAREST
1656
+ # * nearest neighbor for vertical upsampling
1657
+ # * 0x00000100 : UPSAMPLE_HORIZONTAL_NEAREST
1658
+ # * nearest neighbor for horizontal upsampling
1659
+ # * 0x00010000 : DOWNSAMPLE_VERTICAL_NEAREST
1660
+ # * nearest neighbor for vertical downsampling
1661
+ # * 0x01000000 : DOWNSAMPLE_HORIZONTAL_NEAREST
1662
+ # * nearest neighbor for horizontal downsampling
1663
+ # * 0x00000002 : UPSAMPLE_VERTICAL_LINEAR
1664
+ # * linear for vertical upsampling
1665
+ # * 0x00000200 : UPSAMPLE_HORIZONTAL_LINEAR
1666
+ # * linear for horizontal upsampling
1667
+ # * 0x00020000 : DOWNSAMPLE_VERTICAL_LINEAR
1668
+ # * linear for vertical downsampling
1669
+ # * 0x02000000 : DOWNSAMPLE_HORIZONTAL_LINEAR
1670
+ # * linear for horizontal downsampling
1671
+ # * 0x00000003 : UPSAMPLE_VERTICAL_LANCZOS
1672
+ # * lanczos for vertical upsampling
1673
+ # * 0x00000300 : UPSAMPLE_HORIZONTAL_LANCZOS
1674
+ # * lanczos for horizontal upsampling
1675
+ # * 0x00030000 : DOWNSAMPLE_VERTICAL_LANCZOS
1676
+ # * lanczos for vertical downsampling
1677
+ # * 0x03000000 : DOWNSAMPLE_HORIZONTAL_LANCZOS
1678
+ # * lanczos for horizontal downsampling
1679
+ def setresamplemethod(*)
1680
+ super
1681
+ end
1682
+
1683
+ # Inquire the resample method used for gr.drawimage().
1684
+ def inqresamplemethod
1685
+ inquiry_uint do |resample_method|
1686
+ super(resample_method)
1687
+ end
1688
+ end
1689
+ end
786
1690
 
787
1691
  ASF_BUNDLED = 0
788
1692
  ASF_INDIVIDUAL = 1
@@ -968,6 +1872,21 @@ module GR
968
1872
  FONT_ZAPFCHANCERY_MEDIUMITALIC = 130
969
1873
  FONT_ZAPFDINGBATS = 131
970
1874
 
1875
+ # GR.beginprint types
1876
+ PRINT_PS = 'ps'
1877
+ PRINT_EPS = 'eps'
1878
+ PRINT_PDF = 'pdf'
1879
+ PRINT_PGF = 'pgf'
1880
+ PRINT_BMP = 'bmp'
1881
+ PRINT_JPEG = 'jpeg'
1882
+ PRINT_JPG = 'jpg'
1883
+ PRINT_PNG = 'png'
1884
+ PRINT_TIFF = 'tiff'
1885
+ PRINT_TIF = 'tif'
1886
+ PRINT_FIG = 'fig'
1887
+ PRINT_SVG = 'svg'
1888
+ PRINT_WMF = 'wmf'
1889
+
971
1890
  PATH_STOP = 0x00
972
1891
  PATH_MOVETO = 0x01
973
1892
  PATH_LINETO = 0x02
@@ -984,4 +1903,21 @@ module GR
984
1903
  XFORM_LOGLOG = 3
985
1904
  XFORM_CUBIC = 4
986
1905
  XFORM_EQUALIZED = 5
1906
+
1907
+ UPSAMPLE_VERTICAL_DEFAULT = 0x00000000
1908
+ UPSAMPLE_HORIZONTAL_DEFAULT = 0x00000000
1909
+ DOWNSAMPLE_VERTICAL_DEFAULT = 0x00000000
1910
+ DOWNSAMPLE_HORIZONTAL_DEFAULT = 0x00000000
1911
+ UPSAMPLE_VERTICAL_NEAREST = 0x00000001
1912
+ UPSAMPLE_HORIZONTAL_NEAREST = 0x00000100
1913
+ DOWNSAMPLE_VERTICAL_NEAREST = 0x00010000
1914
+ DOWNSAMPLE_HORIZONTAL_NEAREST = 0x01000000
1915
+ UPSAMPLE_VERTICAL_LINEAR = 0x00000002
1916
+ UPSAMPLE_HORIZONTAL_LINEAR = 0x00000200
1917
+ DOWNSAMPLE_VERTICAL_LINEAR = 0x00020000
1918
+ DOWNSAMPLE_HORIZONTAL_LINEAR = 0x02000000
1919
+ UPSAMPLE_VERTICAL_LANCZOS = 0x00000003
1920
+ UPSAMPLE_HORIZONTAL_LANCZOS = 0x00000300
1921
+ DOWNSAMPLE_VERTICAL_LANCZOS = 0x00030000
1922
+ DOWNSAMPLE_HORIZONTAL_LANCZOS = 0x03000000
987
1923
  end