ruby-gr 0.0.23 → 0.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 25cf22ddd78bcfc66e0feb206821fe40d193b972ee7ed0512ae29b7ed3feaf57
4
- data.tar.gz: 273b62f5cd998231148923f09749b8aed2117da8bc2dae1773b6e6cb537b151d
3
+ metadata.gz: 54882caa13673ab79c5589d9ba8fcd02d3fef5adb0b2ad820e4aa75dc6894273
4
+ data.tar.gz: 5d57cc79475d98ac75c4fef19d3af024085774ca835978b79d878fb49873e267
5
5
  SHA512:
6
- metadata.gz: d1d8c8f88277e83cdde72bee429fc9b1a8bc4b2b2d976f4dfea4d423465d5e4da0b8b948fb00fc6ed44b518b6658077f1596c2763b514bf51ab60973a9ffddbe
7
- data.tar.gz: a1fe8ab99fc491ae99c9e4245bb0226518898f2655c0dff9b616ce98ce0ddd7a322778b3e2bd48d38144676947823f5390d6ce9e8d18efe175b5920d218802f5
6
+ metadata.gz: 5b22d5d24b5fba2fa5f806543cc513e4a4d12f7d416f7aa94b3378b7deccef5974dcaf0454afd6e0bfcb6a07322ea6fce71067c9da4eb3b7188f680e0affbf3d
7
+ data.tar.gz: 4fef6ebc51e3ff253e59017c85c8d8d9ac2a56c8000a628944603c4e3645365283a403e09dbec0a7fe654353cd8f418bcfa8fbf9e5f3cd37de11eaee2b900d3a
data/README.md CHANGED
@@ -1,7 +1,5 @@
1
1
  # GR.rb
2
2
 
3
- [![The MIT License](https://img.shields.io/badge/license-MIT-orange.svg)](LICENSE.txt)
4
- [![Build Status](https://travis-ci.org/red-data-tools/GR.rb.svg?branch=master)](https://travis-ci.org/red-data-tools/GR.rb)
5
3
  [![Gem Version](https://badge.fury.io/rb/ruby-gr.svg)](https://badge.fury.io/rb/ruby-gr)
6
4
  [![Gitter Chat](https://badges.gitter.im/red-data-tools/en.svg)](https://gitter.im/red-data-tools/en)
7
5
  [![Docs Latest](https://img.shields.io/badge/docs-latest-blue.svg)](https://rubydoc.info/gems/ruby-gr)
@@ -42,7 +40,7 @@ Set environment variable `GRDIR`.
42
40
  export GRDIR="/your/path/to/gr"
43
41
  ```
44
42
 
45
- Note: If you use package managers to install GR, [pkg-config](https://github.com/ruby-gnome/pkg-config) may automatically detect the shared library location without specifying the `GRDIR` environment variable.
43
+ If you use package managers to install GR, [pkg-config](https://github.com/ruby-gnome/pkg-config) may automatically detect the shared library location without specifying the `GRDIR` environment variable.
46
44
 
47
45
  ## Quick Start
48
46
 
@@ -89,7 +87,7 @@ GR.savefig("figure.png")
89
87
 
90
88
  ## API Overview
91
89
 
92
- There are two different approaches to plotting with GR.rb. One way is to call Matlab-like APIs. The other is to call GR/GR3 native functions. We are planning to prepare a [more object-oriented interface](https://github.com/kojix2/GRUtils.rb) based on [GRUtils.jl](https://github.com/heliosdrm/GRUtils.jl) in the future.
90
+ There are two different approaches to plotting with GR.rb. One way is to call Matlab-like APIs. The other is to call GR/GR3 native functions.
93
91
 
94
92
  #### GR::Plot - A simple, matlab-style API.
95
93
 
@@ -99,6 +97,7 @@ GR.plot(x, y)
99
97
  ```
100
98
 
101
99
  List of vailable functions. See [GR.rb Wiki](https://github.com/red-data-tools/GR.rb/wiki) for details.
100
+ Some GR module methods are overridden.
102
101
 
103
102
  [`plot`](../../wiki/Plotting-functions#plot)
104
103
  [`step`](../../wiki/Plotting-functions#step)
@@ -124,6 +123,8 @@ List of vailable functions. See [GR.rb Wiki](https://github.com/red-data-tools/G
124
123
  [`imshow`](../../wiki/Plotting-functions#imshow)
125
124
  [`isosurface`](../../wiki/Plotting-functions#isosurface)
126
125
 
126
+ We are planning to prepare a [more object-oriented interface](https://github.com/kojix2/GRUtils.rb) based on [GRUtils.jl](https://github.com/heliosdrm/GRUtils.jl) in the future.
127
+
127
128
  #### GR - A module for calling native GR functions.
128
129
 
129
130
  2-D Plots and common 3-D Plots.
@@ -153,6 +154,8 @@ GR3.cameralookat(-3, 2, -2, 0, 0, 0, 0, 0, -1)
153
154
  - [GR Framework](https://gr-framework.org/)
154
155
  - [GR.rb API Documentation](https://rubydoc.info/gems/ruby-gr)
155
156
 
157
+ Although GR.rb adds methods dynamically, we try our best to provide a complete yard document. However, if you want to see more up-to-date information, we recommend using the official GR reference.
158
+
156
159
  ## GR Installation
157
160
 
158
161
  ### Installing an official release (recommended)
data/lib/gr.rb CHANGED
@@ -36,7 +36,7 @@
36
36
  # | +--------------+ |
37
37
  # +------------------+
38
38
  #
39
- # (You can edit the above AA diagram with http://asciiflow.com/))
39
+ # (You can edit the above AA diagram with http://asciiflow.com/)
40
40
  #
41
41
  # Fiddley is Ruby-FFI compatible API layer for Fiddle.
42
42
  #
@@ -81,26 +81,20 @@ module GR
81
81
  # a Fiddley::MemoryPointer in the GRBase class.
82
82
  extend GRBase
83
83
 
84
- # Now you can see a lot of methods just calling super here.
85
- # They are written to help the yard generate the documentation.
86
84
  class << self
87
- def initgr(*)
88
- super
89
- end
85
+ # @!method initgr
90
86
 
91
- def opengks(*)
92
- super
93
- end
87
+ # @!method opengks
94
88
 
95
- def closegks(*)
96
- super
97
- end
89
+ # @!method closegks
98
90
 
99
91
  # Get the current display size.
92
+ #
100
93
  # Depending on the current workstation type, the current display might be
101
94
  # the primary screen (e.g. when using gksqt or GKSTerm) or a purely virtual
102
95
  # display (e.g. when using Cairo). When a high DPI screen is used as the
103
96
  # current display, width and height will be in logical pixels.
97
+ #
104
98
  # @return [Array] meter_width, meter_height, width, height
105
99
  def inqdspsize
106
100
  inquiry %i[double double int int] do |*pts|
@@ -109,6 +103,7 @@ module GR
109
103
  end
110
104
 
111
105
  # Open a graphical workstation.
106
+ #
112
107
  # @param workstation_id [Integer] A workstation identifier.
113
108
  # @param connection [String] A connection identifier.
114
109
  # @param workstation_type [Integer] The desired workstation type.
@@ -134,70 +129,82 @@ module GR
134
129
  # * 410 : Socket driver
135
130
  # * 415 : 0MQ driver
136
131
  # * 420 : OpenGL
137
- def openws(*)
138
- super
139
- end
132
+ #
133
+ # @!method openws
140
134
 
141
135
  # Close the specified workstation.
136
+ #
142
137
  # @param workstation_id [Integer] A workstation identifier.
143
- def closews(*)
144
- super
145
- end
138
+ #
139
+ # @!method closews
146
140
 
147
141
  # Activate the specified workstation.
142
+ #
148
143
  # @param workstation_id [Integer] A workstation identifier.
149
- def activatews(*)
150
- super
151
- end
144
+ #
145
+ # @!method activatews
152
146
 
153
147
  # Deactivate the specified workstation.
148
+ #
154
149
  # @param workstation_id [Integer] A workstation identifier.
155
- def deactivatews(*)
156
- super
157
- end
150
+ #
151
+ # @!method deactivatews
158
152
 
159
153
  # Configure the specified workstation.
160
- def configurews(*)
161
- super
162
- end
154
+ #
155
+ # @!method configurews
163
156
 
164
- def clearws(*)
165
- super
166
- end
157
+ # Clear the specified workstation.
158
+ #
159
+ # @!method clearws
167
160
 
168
- def updatews(*)
169
- super
170
- end
161
+ # Update the specified workstation.
162
+ #
163
+ # @!method updatews
171
164
 
172
165
  # Draw a polyline using the current line attributes,
173
166
  # starting from the first data point and ending at the last data point.
167
+ #
174
168
  # @param x [Array, NArray] A list containing the X coordinates
175
169
  # @param y [Array, NArray] A list containing the Y coordinates
170
+ #
171
+ # The values for x and y are in world coordinates.
172
+ # The attributes that control the appearance of a polyline are linetype,
173
+ # linewidth and color index.
174
+ #
176
175
  def polyline(x, y)
177
176
  n = equal_length(x, y)
178
177
  super(n, x, y)
179
178
  end
180
179
 
181
180
  # Draw marker symbols centered at the given data points.
181
+ #
182
182
  # @param x [Array, NArray] A list containing the X coordinates
183
183
  # @param y [Array, NArray] A list containing the Y coordinates
184
+ #
185
+ # The values for x and y are in world coordinates.
186
+ # The attributes that control the appearance of a polymarker are marker type,
187
+ # marker size scale factor and color index.
188
+ #
184
189
  def polymarker(x, y)
185
190
  n = equal_length(x, y)
186
191
  super(n, x, y)
187
192
  end
188
193
 
189
194
  # Draw a text at position `x`, `y` using the current text attributes.
190
- # @param x [Numeric] The X coordinate of starting position of the text string
191
- # @param y [Numeric] The Y coordinate of starting position of the text string
192
- # @param string [String] The text to be drawn
195
+ #
196
+ # @param x [Numeric] The X coordinate of starting position of the text
197
+ # string
198
+ # @param y [Numeric] The Y coordinate of starting position of the text
199
+ # string
200
+ # @param string [String] The text to be drawn
193
201
  #
194
202
  # The values for `x` and `y` are in normalized device coordinates.
195
- # The attributes that control the appearance of text are text font and precision,
196
- # character expansion factor, character spacing, text color index, character
197
- # height, character up vector, text path and text alignment.
198
- def text(*)
199
- super
200
- end
203
+ # The attributes that control the appearance of text are text font and
204
+ # precision, character expansion factor, character spacing, text color index,
205
+ # character height, character up vector, text path and text alignment.
206
+ #
207
+ # @!method text
201
208
 
202
209
  def inqtext(x, y, string)
203
210
  inquiry [{ double: 4 }, { double: 4 }] do |tbx, tby|
@@ -206,11 +213,13 @@ module GR
206
213
  end
207
214
 
208
215
  # Allows you to specify a polygonal shape of an area to be filled.
216
+ #
209
217
  # @param x [Array, NArray] A list containing the X coordinates
210
218
  # @param y [Array, NArray] A list containing the Y coordinates
211
219
  #
212
- # The attributes that control the appearance of fill areas are fill area interior
213
- # style, fill area style index and fill area color index.
220
+ # The attributes that control the appearance of fill areas are fill area
221
+ # interior style, fill area style index and fill area color index.
222
+ #
214
223
  def fillarea(x, y)
215
224
  n = equal_length(x, y)
216
225
  super(n, x, y)
@@ -220,28 +229,33 @@ module GR
220
229
  # function partitions a rectangle given by two corner points into DIMX X DIMY
221
230
  # cells, each of them colored individually by the corresponding color index
222
231
  # of the given cell array.
223
- # @param xmin [Numeric] Lower left point of the rectangle
224
- # @param ymin [Numeric] Lower left point of the rectangle
225
- # @param xmax [Numeric] Upper right point of the rectangle
226
- # @param ymax [Numeric] Upper right point of the rectangle
227
- # @param dimx [Integer] X dimension of the color index array
228
- # @param dimy [Integer] Y dimension of the color index array
232
+ #
233
+ # @param xmin [Numeric] Lower left point of the rectangle
234
+ # @param ymin [Numeric] Lower left point of the rectangle
235
+ # @param xmax [Numeric] Upper right point of the rectangle
236
+ # @param ymax [Numeric] Upper right point of the rectangle
237
+ # @param dimx [Integer] X dimension of the color index array
238
+ # @param dimy [Integer] Y dimension of the color index array
229
239
  # @param color [Array, NArray] Color index array
230
240
  #
231
241
  # The values for `xmin`, `xmax`, `ymin` and `ymax` are in world coordinates.
242
+ #
232
243
  def cellarray(xmin, xmax, ymin, ymax, dimx, dimy, color)
233
244
  super(xmin, xmax, ymin, ymax, dimx, dimy, 1, 1, dimx, dimy, int(color))
234
245
  end
235
246
 
236
247
  # Display a two dimensional color index array with nonuniform cell sizes.
237
- # @param x [Array, NArray] X coordinates of the cell edges
238
- # @param y [Array, NArray] Y coordinates of the cell edges
239
- # @param dimx [Integer] X dimension of the color index array
240
- # @param dimy [Integer] Y dimension of the color index array
248
+ #
249
+ # @param x [Array, NArray] X coordinates of the cell edges
250
+ # @param y [Array, NArray] Y coordinates of the cell edges
251
+ # @param dimx [Integer] X dimension of the color index array
252
+ # @param dimy [Integer] Y dimension of the color index array
241
253
  # @param color [Array, NArray] Color index array
254
+ #
242
255
  # The values for `x` and `y` are in world coordinates. `x` must contain
243
256
  # `dimx` + 1 elements and `y` must contain `dimy` + 1 elements. The elements
244
257
  # i and i+1 are respectively the edges of the i-th cell in X and Y direction.
258
+ #
245
259
  def nonuniformcellarray(x, y, dimx, dimy, color)
246
260
  raise ArgumentError unless x.length == dimx + 1 && y.length == dimy + 1
247
261
 
@@ -250,20 +264,46 @@ module GR
250
264
 
251
265
  # Display a two dimensional color index array mapped to a disk using polar
252
266
  # coordinates.
253
- # @param xorg [Numeric] X coordinate of the disk center in world coordinates
254
- # @param yorg [Numeric] Y coordinate of the disk center in world coordinates
255
- # @param phimin [Numeric] start angle of the disk sector in degrees
256
- # @param phimax [Numeric] end angle of the disk sector in degrees
257
- # @param rmin [Numeric] inner radius of the punctured disk in world coordinates
258
- # @param rmax [Numeric] outer radius of the punctured disk in world coordinates
259
- # @param dimiphi [Integer] Phi (X) dimension of the color index array
260
- # @param dimr [Integer] iR (Y) dimension of the color index array
261
- # @param color [Array, NArray] Color index array
262
267
  #
263
268
  # The two dimensional color index array is mapped to the resulting image by
264
- # interpreting the X-axis of the array as the angle and the Y-axis as the raidus.
265
- # The center point of the resulting disk is located at `xorg`, `yorg` and the
266
- # radius of the disk is `rmax`.
269
+ # interpreting the X-axis of the array as the angle and the Y-axis as the
270
+ # raidus. The center point of the resulting disk is located at `xorg`, `yorg`
271
+ # and the radius of the disk is `rmax`.
272
+ #
273
+ # @param xorg [Numeric] X coordinate of the disk center in world
274
+ # coordinates
275
+ # @param yorg [Numeric] Y coordinate of the disk center in world
276
+ # coordinates
277
+ # @param phimin [Numeric] start angle of the disk sector in degrees
278
+ # @param phimax [Numeric] end angle of the disk sector in degrees
279
+ # @param rmin [Numeric] inner radius of the punctured disk in world
280
+ # coordinates
281
+ # @param rmax [Numeric] outer radius of the punctured disk in world
282
+ # coordinates
283
+ # @param dimiphi [Integer] Phi (X) dimension of the color index array
284
+ # @param dimr [Integer] iR (Y) dimension of the color index array
285
+ # @param color [Array, NArray] Color index array
286
+ #
287
+ # The additional parameters to the function can be used to further control
288
+ # the mapping from polar to cartesian coordinates.
289
+ #
290
+ # If `rmin` is greater than 0 the input data is mapped to a punctured disk
291
+ # (or annulus) with an inner radius of `rmin` and an outer radius `rmax`. If
292
+ # `rmin` is greater than `rmax` the Y-axis of the array is reversed.
293
+ #
294
+ # The parameter `phimin` and `phimax` can be used to map the data to a
295
+ # sector of the (punctured) disk starting at `phimin` and ending at `phimax`.
296
+ # If `phimin` is greater than `phimax` the X-axis is reversed. The visible
297
+ # sector is the one starting in mathematically positive direction
298
+ # (counterclockwise) at the smaller angle and ending at the larger angle.
299
+ # An example of the four possible options can be found below:
300
+ #
301
+ # * phimin phimax Result
302
+ # * 90 270 Left half visible, mapped counterclockwise
303
+ # * 270 90 Left half visible, mapped clockwise
304
+ # * -90 90 Right half visible, mapped counterclockwise
305
+ # * 90 -90 Right half visible, mapped clockwise
306
+ #
267
307
  def polarcellarray(x_org, y_org, phimin, phimax, rmin, rmax, dimphi, dimr, color)
268
308
  super(x_org, y_org, phimin, phimax, rmin, rmax, dimphi, dimr, 1, 1, dimphi, dimr, int(color))
269
309
  end
@@ -271,10 +311,12 @@ module GR
271
311
  # Generates a generalized drawing primitive (GDP) of the type you specify,
272
312
  # using specified points and any additional information contained in a data
273
313
  # record.
274
- # @param x [Array, NArray] A list containing the X coordinates
275
- # @param y [Array, NArray] A list containing the Y coordinates
276
- # @param primid [Integer] Primitive identifier
314
+ #
315
+ # @param x [Array, NArray] A list containing the X coordinates
316
+ # @param y [Array, NArray] A list containing the Y coordinates
317
+ # @param primid [Integer] Primitive identifier
277
318
  # @param datrec [Array, NArray] Primitive data record
319
+ #
278
320
  def gdp(x, y, primid, datrec)
279
321
  n = equal_length(x, y)
280
322
  ldr = datrec.length
@@ -283,22 +325,35 @@ module GR
283
325
 
284
326
  # Generate a cubic spline-fit,
285
327
  # starting from the first data point and ending at the last data point.
286
- # @param x [Array, NArray] A list containing the X coordinates
287
- # @param y [Array, NArray] A list containing the Y coordinates
288
- # @param m [Integer] The number of points in the polygon to be drawn (`m` > len(`x`))
289
- # @param method [Integer] The smoothing method
328
+ #
329
+ # @param x [Array, NArray] A list containing the X coordinates
330
+ # @param y [Array, NArray] A list containing the Y coordinates
331
+ # @param m [Integer] The number of points in the polygon to be
332
+ # drawn (`m` > len(`x`))
333
+ # @param method [Integer] The smoothing method
290
334
  # * If `method` is > 0, then a generalized cross-validated smoothing spline is calculated.
291
335
  # * If `method` is 0, then an interpolating natural cubic spline is calculated.
292
336
  # * If `method` is < -1, then a cubic B-spline is calculated.
337
+ #
293
338
  # The values for `x` and `y` are in world coordinates. The attributes that
294
339
  # control the appearance of a spline-fit are linetype, linewidth and color
295
340
  # index.
341
+ #
296
342
  def spline(x, y, m, method)
297
343
  n = equal_length(x, y)
298
344
  super(n, x, y, m, method)
299
345
  end
300
346
 
301
347
  # Interpolate data from arbitrary points at points on a rectangular grid.
348
+ #
349
+ # @param xd [Array, NArray] X coordinates of the input points
350
+ # @param yd [Array, NArray] Y coordinates of the input points
351
+ # @param zd [Array, NArray] values of the points
352
+ # @param nx [Array, NArray] The number of points in X direction for the
353
+ # output grid
354
+ # @param ny [Array, NArray] The number of points in Y direction for the
355
+ # output grid
356
+ #
302
357
  def gridit(xd, yd, zd, nx, ny)
303
358
  nd = equal_length(xd, yd, zd)
304
359
  inquiry [{ double: nx }, { double: ny }, { double: nx * ny }] do |px, py, pz|
@@ -307,172 +362,130 @@ module GR
307
362
  end
308
363
 
309
364
  # Specify the line style for polylines.
365
+ #
310
366
  # @param style [Integer] The polyline line style
311
- # * 1 : LINETYPE_SOLID
312
- # * Solid line
313
- # * 2 : LINETYPE_DASHED
314
- # * Dashed line
315
- # * 3 : LINETYPE_DOTTED
316
- # * Dotted line
317
- # * 4 : LINETYPE_DASHED_DOTTED
318
- # * Dashed-dotted line
319
- # * -1 : LINETYPE_DASH_2_DOT
320
- # * Sequence of one dash followed by two dots
321
- # * -2 : LINETYPE_DASH_3_DOT
322
- # * Sequence of one dash followed by three dots
323
- # * -3 : LINETYPE_LONG_DASH
324
- # * Sequence of long dashes
325
- # * -4 : LINETYPE_LONG_SHORT_DASH
326
- # * Sequence of a long dash followed by a short dash
327
- # * -5 : LINETYPE_SPACED_DASH
328
- # * Sequence of dashes double spaced
329
- # * -6 : LINETYPE_SPACED_DOT
330
- # * Sequence of dots double spaced
331
- # * -7 : LINETYPE_DOUBLE_DOT
332
- # * Sequence of pairs of dots
333
- # * -8 : LINETYPE_TRIPLE_DOT
334
- # * Sequence of groups of three dots
335
- def setlinetype(*)
336
- super
337
- end
367
+ # * 1 : LINETYPE_SOLID - Solid line
368
+ # * 2 : LINETYPE_DASHED - Dashed line
369
+ # * 3 : LINETYPE_DOTTED - Dotted line
370
+ # * 4 : LINETYPE_DASHED_DOTTED - Dashed-dotted line
371
+ # * -1 : LINETYPE_DASH_2_DOT - Sequence of one dash followed by two dots
372
+ # * -2 : LINETYPE_DASH_3_DOT - Sequence of one dash followed by three dots
373
+ # * -3 : LINETYPE_LONG_DASH - Sequence of long dashes
374
+ # * -4 : LINETYPE_LONG_SHORT_DASH - Sequence of a long dash followed by a short dash
375
+ # * -5 : LINETYPE_SPACED_DASH - Sequence of dashes double spaced
376
+ # * -6 : LINETYPE_SPACED_DOT - Sequence of dots double spaced
377
+ # * -7 : LINETYPE_DOUBLE_DOT - Sequence of pairs of dots
378
+ # * -8 : LINETYPE_TRIPLE_DOT - Sequence of groups of three dots
379
+ #
380
+ # @!method setlinetype
338
381
 
339
382
  def inqlinetype
340
383
  inquiry_int { |pt| super(pt) }
341
384
  end
342
385
 
343
386
  # Define the line width of subsequent polyline output primitives.
387
+ #
388
+ # The line width is calculated as the nominal line width generated on the
389
+ # workstation multiplied by the line width scale factor. This value is mapped
390
+ # by the workstation to the nearest available line width. The default line
391
+ # width is 1.0, or 1 times the line width generated on the graphics device.
392
+ #
344
393
  # @param width [Numeric] The polyline line width scale factor
345
- # The line width is calculated as the nominal line width generated
346
- # on the workstation multiplied by the line width scale factor.
347
- # This value is mapped by the workstation to the nearest available line width.
348
- # The default line width is 1.0, or 1 times the line width generated on the graphics device.
349
- def setlinewidth(*)
350
- super
351
- end
394
+ #
395
+ # @!method setlinewidth
352
396
 
353
397
  def inqlinewidth
354
398
  inquiry_double { |pt| super(pt) }
355
399
  end
356
400
 
357
401
  # Define the color of subsequent polyline output primitives.
402
+ #
358
403
  # @param color [Integer] The polyline color index (COLOR < 1256)
359
- def setlinecolorind(*)
360
- super
361
- end
404
+ #
405
+ # @!method setlinecolorind
362
406
 
363
407
  def inqlinecolorind
364
408
  inquiry_int { |pt| super(pt) }
365
409
  end
366
410
 
367
411
  # Specifiy the marker type for polymarkers.
412
+ #
368
413
  # @param style [Integer] The polymarker marker type
369
- # * 1 : MARKERTYPE_DOT
370
- # * Smallest displayable dot
371
- # * 2 : MARKERTYPE_PLUS
372
- # * Plus sign
373
- # * 3 : MARKERTYPE_ASTERISK
374
- # * Asterisk
375
- # * 4 : MARKERTYPE_CIRCLE
376
- # * Hollow circle
377
- # * 5 : MARKERTYPE_DIAGONAL_CROSS
378
- # * Diagonal cross
379
- # * -1 : MARKERTYPE_SOLID_CIRCLE
380
- # * Filled circle
381
- # * -2 : MARKERTYPE_TRIANGLE_UP
382
- # * Hollow triangle pointing upward
383
- # * -3 : MARKERTYPE_SOLID_TRI_UP
384
- # * Filled triangle pointing upward
385
- # * -4 : MARKERTYPE_TRIANGLE_DOWN
386
- # * Hollow triangle pointing downward
387
- # * -5 : MARKERTYPE_SOLID_TRI_DOWN
388
- # * Filled triangle pointing downward
389
- # * -6 : MARKERTYPE_SQUARE
390
- # * Hollow square
391
- # * -7 : MARKERTYPE_SOLID_SQUARE
392
- # * Filled square
393
- # * -8 : MARKERTYPE_BOWTIE
394
- # * Hollow bowtie
395
- # * -9 : MARKERTYPE_SOLID_BOWTIE
396
- # * Filled bowtie
397
- # * -10 : MARKERTYPE_HGLASS
398
- # * Hollow hourglass
399
- # * -11 : MARKERTYPE_SOLID_HGLASS
400
- # * Filled hourglass
401
- # * -12 : MARKERTYPE_DIAMOND
402
- # * Hollow diamond
403
- # * -13 : MARKERTYPE_SOLID_DIAMOND
404
- # * Filled Diamond
405
- # * -14 : MARKERTYPE_STAR
406
- # * Hollow star
407
- # * -15 : MARKERTYPE_SOLID_STAR
408
- # * Filled Star
409
- # * -16 : MARKERTYPE_TRI_UP_DOWN
410
- # * Hollow triangles pointing up and down overlaid
411
- # * -17 : MARKERTYPE_SOLID_TRI_RIGHT
412
- # * Filled triangle point right
413
- # * -18 : MARKERTYPE_SOLID_TRI_LEFT
414
- # * Filled triangle pointing left
415
- # * -19 : MARKERTYPE_HOLLOW PLUS
416
- # * Hollow plus sign
417
- # * -20 : MARKERTYPE_SOLID PLUS
418
- # * Solid plus sign
419
- # * -21 : MARKERTYPE_PENTAGON
420
- # * Pentagon
421
- # * -22 : MARKERTYPE_HEXAGON
422
- # * Hexagon
423
- # * -23 : MARKERTYPE_HEPTAGON
424
- # * Heptagon
425
- # * -24 : MARKERTYPE_OCTAGON
426
- # * Octagon
427
- # * -25 : MARKERTYPE_STAR_4
428
- # * 4-pointed star
429
- # * -26 : MARKERTYPE_STAR_5
430
- # * 5-pointed star (pentagram)
431
- # * -27 : MARKERTYPE_STAR_6
432
- # * 6-pointed star (hexagram)
433
- # * -28 : MARKERTYPE_STAR_7
434
- # * 7-pointed star (heptagram)
435
- # * -29 : MARKERTYPE_STAR_8
436
- # * 8-pointed star (octagram)
437
- # * -30 : MARKERTYPE_VLINE
438
- # * verical line
439
- # * -31 : MARKERTYPE_HLINE
440
- # * horizontal line
441
- # * -32 : MARKERTYPE_OMARK
442
- # * o-mark
414
+ # * 1 : MARKERTYPE_DOT - Smallest displayable dot
415
+ # * 2 : MARKERTYPE_PLUS - Plus sign
416
+ # * 3 : MARKERTYPE_ASTERISK - Asterisk
417
+ # * 4 : MARKERTYPE_CIRCLE - Hollow circle
418
+ # * 5 : MARKERTYPE_DIAGONAL_CROSS - Diagonal cross
419
+ # * -1 : MARKERTYPE_SOLID_CIRCLE - Filled circle
420
+ # * -2 : MARKERTYPE_TRIANGLE_UP - Hollow triangle pointing upward
421
+ # * -3 : MARKERTYPE_SOLID_TRI_UP - Filled triangle pointing upward
422
+ # * -4 : MARKERTYPE_TRIANGLE_DOWN - Hollow triangle pointing downward
423
+ # * -5 : MARKERTYPE_SOLID_TRI_DOWN - Filled triangle pointing downward
424
+ # * -6 : MARKERTYPE_SQUARE - Hollow square
425
+ # * -7 : MARKERTYPE_SOLID_SQUARE - Filled square
426
+ # * -8 : MARKERTYPE_BOWTIE - Hollow bowtie
427
+ # * -9 : MARKERTYPE_SOLID_BOWTIE - Filled bowtie
428
+ # * -10 : MARKERTYPE_HGLASS - Hollow hourglass
429
+ # * -11 : MARKERTYPE_SOLID_HGLASS - Filled hourglass
430
+ # * -12 : MARKERTYPE_DIAMOND - Hollow diamond
431
+ # * -13 : MARKERTYPE_SOLID_DIAMOND - Filled Diamond
432
+ # * -14 : MARKERTYPE_STAR - Hollow star
433
+ # * -15 : MARKERTYPE_SOLID_STAR - Filled Star
434
+ # * -16 : MARKERTYPE_TRI_UP_DOWN - Hollow triangles pointing up and down overlaid
435
+ # * -17 : MARKERTYPE_SOLID_TRI_RIGHT - Filled triangle point right
436
+ # * -18 : MARKERTYPE_SOLID_TRI_LEFT - Filled triangle pointing left
437
+ # * -19 : MARKERTYPE_HOLLOW PLUS - Hollow plus sign
438
+ # * -20 : MARKERTYPE_SOLID PLUS - Solid plus sign
439
+ # * -21 : MARKERTYPE_PENTAGON - Pentagon
440
+ # * -22 : MARKERTYPE_HEXAGON - Hexagon
441
+ # * -23 : MARKERTYPE_HEPTAGON - Heptagon
442
+ # * -24 : MARKERTYPE_OCTAGON - Octagon
443
+ # * -25 : MARKERTYPE_STAR_4 - 4-pointed star
444
+ # * -26 : MARKERTYPE_STAR_5 - 5-pointed star (pentagram)
445
+ # * -27 : MARKERTYPE_STAR_6 - 6-pointed star (hexagram)
446
+ # * -28 : MARKERTYPE_STAR_7 - 7-pointed star (heptagram)
447
+ # * -29 : MARKERTYPE_STAR_8 - 8-pointed star (octagram)
448
+ # * -30 : MARKERTYPE_VLINE - verical line
449
+ # * -31 : MARKERTYPE_HLINE - horizontal line
450
+ # * -32 : MARKERTYPE_OMARK - o-mark
451
+ #
443
452
  # Polymarkers appear centered over their specified coordinates.
444
- def setmarkertype(*)
445
- super
446
- end
453
+ #
454
+ # @!method setmarkertype
447
455
 
448
456
  def inqmarkertype
449
457
  inquiry_int { |pt| super(pt) }
450
458
  end
451
459
 
452
460
  # Specify the marker size for polymarkers.
461
+ #
462
+ # The polymarker size is calculated as the nominal size generated on the
463
+ # graphics device multiplied by the marker size scale factor.
464
+ #
453
465
  # @param size [Numeric] Scale factor applied to the nominal marker size
454
- # The polymarker size is calculated as the nominal size generated on the graphics device
455
- # multiplied by the marker size scale factor.
456
- def setmarkersize(*)
457
- super
458
- end
466
+ #
467
+ # @!method setmarkersize
459
468
 
460
469
  # Inquire the marker size for polymarkers.
470
+ #
471
+ # @return [Numeric] Scale factor applied to the nominal marker size
472
+ #
461
473
  def inqmarkersize
462
474
  inquiry_double { |pt| super(pt) }
463
475
  end
464
476
 
465
477
  # Define the color of subsequent polymarker output primitives.
478
+ #
466
479
  # @param color [Integer] The polymarker color index (COLOR < 1256)
467
- def setmarkercolorind(*)
468
- super
469
- end
480
+ #
481
+ # @!method setmarkercolorind
470
482
 
471
483
  def inqmarkercolorind
472
484
  inquiry_int { |pt| super(pt) }
473
485
  end
474
486
 
475
487
  # Specify the text font and precision for subsequent text output primitives.
488
+ #
476
489
  # @param font [Integer] Text font
477
490
  # * 101 : FONT_TIMES_ROMAN
478
491
  # * 102 : FONT_TIMES_ITALIC
@@ -507,201 +520,215 @@ module GR
507
520
  # * 131 : FONT_ZAPFDINGBATS
508
521
  # * 232 : FONT_COMPUTERMODERN
509
522
  # * 233 : FONT_DEJAVUSANS
523
+ #
510
524
  # @param precision [Integer] Text precision
511
- # * 0 : TEXT_PRECISION_STRING
512
- # * String precision (higher quality)
513
- # * 1 : TEXT_PRECISION_CHAR
514
- # * Character precision (medium quality)
515
- # * 2 : TEXT_PRECISION_STROKE
516
- # * Stroke precision (lower quality)
517
- # * 3 : TEXT_PRECISION_OUTLINE
518
- # * Outline precision (highest quality)
525
+ # * 0 : TEXT_PRECISION_STRING - String precision (higher quality)
526
+ # * 1 : TEXT_PRECISION_CHAR - Character precision (medium quality)
527
+ # * 2 : TEXT_PRECISION_STROKE - Stroke precision (lower quality)
528
+ # * 3 : TEXT_PRECISION_OUTLINE - Outline precision (highest quality)
529
+ #
519
530
  # The appearance of a font depends on the text precision value specified.
520
531
  # STRING, CHARACTER or STROKE precision allows for a greater or lesser
521
532
  # realization of the text primitives, for efficiency. STRING is the default
522
533
  # precision for GR and produces the highest quality output using either
523
534
  # native font rendering or FreeType. OUTLINE uses the GR path rendering
524
535
  # functions to draw individual glyphs and produces the highest quality output.
525
- def settextfontprec(*)
526
- super
527
- end
536
+ #
537
+ # @!method settextfontprec
528
538
 
529
539
  # Set the current character expansion factor (width to height ratio).
530
- # @param factor [Numeric] Text expansion factor applied to the nominal text width-to-height ratio
531
- # `setcharexpan` defines the width of subsequent text output primitives. The expansion
532
- # factor alters the width of the generated characters, but not their height. The default
533
- # text expansion factor is 1, or one times the normal width-to-height ratio of the text.
534
- def setcharexpan(*)
535
- super
536
- end
540
+ #
541
+ # `setcharexpan` defines the width of subsequent text output primitives.
542
+ # The expansion factor alters the width of the generated characters, but not
543
+ # their height. The default text expansion factor is 1, or one times the
544
+ # normal width-to-height ratio of the text.
545
+ #
546
+ # @param factor [Numeric] Text expansion factor applied to the nominal text
547
+ # width-to-height ratio
548
+ #
549
+ # @!method setcharexpan
537
550
 
538
- def setcharspace(*)
539
- super
540
- end
551
+ # @!method setcharspace
541
552
 
542
553
  # Sets the current text color index.
543
- # @param color [Integer] The text color index (COLOR < 1256)
554
+ #
544
555
  # `settextcolorind` defines the color of subsequent text output primitives.
545
- # GR uses the default foreground color (black=1) for the default text color index.
546
- def settextcolorind(*)
547
- super
548
- end
556
+ # GR uses the default foreground color (black=1) for the default text color
557
+ # index.
558
+ #
559
+ # @param color [Integer] The text color index (COLOR < 1256)
560
+ #
561
+ # @!method settextcolorind
549
562
 
550
563
  # Gets the current text color index.
564
+ #
551
565
  # This function gets the color of text output primitives.
566
+ #
552
567
  # @return [Integer] color The text color index (COLOR < 1256)
553
568
  def inqtextcolorind
554
569
  inquiry_int { |pt| super(pt) }
555
570
  end
556
571
 
557
572
  # Set the current character height.
573
+ #
574
+ # `setcharheight` defines the height of subsequent text output primitives.
575
+ # Text height is defined as a percentage of the default window. GR uses the
576
+ # default text height of 0.027 (2.7% of the height of the default window).
577
+ #
558
578
  # @param height [Numeric] Text height value
559
- # `setcharheight` defines the height of subsequent text output primitives. Text height
560
- # is defined as a percentage of the default window. GR uses the default text height of
561
- # 0.027 (2.7% of the height of the default window).
562
- def setcharheight(*)
563
- super
564
- end
579
+ #
580
+ # @!method setcharheight
565
581
 
566
582
  # Gets the current character height.
583
+ #
567
584
  # This function gets the height of text output primitives. Text height is
568
585
  # defined as a percentage of the default window. GR uses the default text
569
586
  # height of 0.027 (2.7% of the height of the default window).
587
+ #
588
+ # @return [Numeric] Text height value
570
589
  def inqcharheight
571
590
  inquiry_double { |pt| super(pt) }
572
591
  end
573
592
 
574
593
  # Set the current character text angle up vector.
575
- # @param ux [Numeric] Text up vector
576
- # @param uy [Numeric] Text up vector
577
- # `setcharup` defines the vertical rotation of subsequent text output primitives.
578
- # The text up vector is initially set to (0, 1), horizontal to the baseline.
579
- def setcharup(*)
580
- super
581
- end
594
+ #
595
+ # `setcharup` defines the vertical rotation of subsequent text output
596
+ # primitives. The text up vector is initially set to (0, 1), horizontal to
597
+ # the baseline.
598
+ #
599
+ # @param ux [Numeric] X coordinate of the text up vector
600
+ # @param uy [Numeric] Y coordinate of the text up vector
601
+ #
602
+ # @!method setcharup
582
603
 
583
604
  # Define the current direction in which subsequent text will be drawn.
605
+ #
584
606
  # @param path [Integer] Text path
585
- # * 0 : TEXT_PATH_RIGHT
586
- # * left-to-right
587
- # * 1 : TEXT_PATH_LEFT
588
- # * right-to-left
589
- # * 2 : TEXT_PATH_UP
590
- # * downside-up
591
- # * 3 : TEXT_PATH_DOWN
592
- # * upside-down
593
- def settextpath(*)
594
- super
595
- end
607
+ # * 0 : TEXT_PATH_RIGHT - left-to-right
608
+ # * 1 : TEXT_PATH_LEFT - right-to-left
609
+ # * 2 : TEXT_PATH_UP - downside-up
610
+ # * 3 : TEXT_PATH_DOWN - upside-down
611
+ #
612
+ # @!method settextpath
596
613
 
597
614
  # Set the current horizontal and vertical alignment for text.
615
+ #
598
616
  # @param horizontal [Integer] Horizontal text alignment
599
- # * 0 : TEXT_HALIGN_NORMAL
600
- # * 1 : TEXT_HALIGN_LEFT
601
- # * Left justify
602
- # * 2 : TEXT_HALIGN_CENTER
603
- # * Center justify
604
- # * 3 : TEXT_HALIGN_RIGHT
605
- # * Right justify
617
+ # * 0 : TEXT_HALIGN_NORMALlygon using the fill color index
618
+
619
+ # * 1 : TEXT_HALIGN_LEFT - Left justify
620
+ # * 2 : TEXT_HALIGN_CENTER - Center justify
621
+ # * 3 : TEXT_HALIGN_RIGHT - Right justify
622
+ #
606
623
  # @param vertical [Integer] Vertical text alignment
607
624
  # * 0 : TEXT_VALIGN_NORMAL  
608
- # * 1 : TEXT_VALIGN_TOP
609
- # * Align with the top of the characters
610
- # * 2 : TEXT_VALIGN_CAP
611
- # * Aligned with the cap of the characters
612
- # * 3 : TEXT_VALIGN_HALF
613
- # * Aligned with the half line of the characters
614
- # * 4 : TEXT_VALIGN_BASE
615
- # * Aligned with the base line of the characters
616
- # * 5 : TEXT_VALIGN_BOTTOM
617
- # * Aligned with the bottom line of the characters
618
- # `settextalign` specifies how the characters in a text primitive will be aligned
619
- # in horizontal and vertical space. The default text alignment indicates horizontal left
620
- # alignment and vertical baseline alignment.
621
- def settextalign(*)
622
- super
623
- end
625
+ # * 1 : TEXT_VALIGN_TOP - Align with the top of the characters
626
+ # * 2 : TEXT_VALIGN_CAP - Aligned with the cap of the characters
627
+ # * 3 : TEXT_VALIGN_HALF - Aligned with the half line of the characters
628
+ # * 4 : TEXT_VALIGN_BASE - Aligned with the base line of the characters
629
+ # * 5 : TEXT_VALIGN_BOTTOM - Aligned with the bottom line of the characters
630
+ #
631
+ # `settextalign` specifies how the characters in a text primitive will be
632
+ # aligned in horizontal and vertical space. The default text alignment
633
+ # indicates horizontal left alignment and vertical baseline alignment.
634
+ #
635
+ # @!method settextalign
624
636
 
625
637
  # Set the fill area interior style to be used for fill areas.
638
+ #
626
639
  # @param style [Integer] The style of fill to be used
627
- # * 0 : HOLLOW
628
- # * No filling. Just draw the bounding polyline
629
- # * 1 : SOLID
630
- # * Fill the interior of the polygon using the fill color index
631
- # * 2 : PATTERN
632
- # * Fill the interior of the polygon using the style index as a pattern index
633
- # * 3 : HATCH
634
- # * Fill the interior of the polygon using the style index as a cross-hatched style
635
- # * 4 : SOLID_WITH_BORDER
636
- # * Fill the interior of the polygon using the fill color index and draw the bounding polyline
640
+ # * 0 : HOLLOW - No filling. Just draw the bounding polyline
641
+ # * 1 : SOLID - Fill the interior of the polygon using the fill color index
642
+ # * 2 : PATTERN - Fill the interior of the polygon using the style index as a pattern index
643
+ # * 3 : HATCH - Fill the interior of the polygon using the style index as a cross-hatched style
644
+ # * 4 : SOLID_WITH_BORDER - Fill the interior of the polygon using the fill color index and draw the bounding polyline
645
+ #
637
646
  # `setfillintstyle` defines the interior style for subsequent fill area output
638
647
  # primitives. The default interior style is HOLLOW.
639
- def setfillintstyle(*)
640
- super
641
- end
648
+ #
649
+ # @!method setfillintstyle
642
650
 
643
651
  # Returns the fill area interior style to be used for fill areas.
652
+ #
653
+ # This function gets the currently set fill style.
654
+ #
655
+ # @return [Integer] The currently set fill style
644
656
  def inqfillintstyle
645
657
  inquiry_int { |pt| super(pt) }
646
658
  end
647
659
 
648
660
  # Sets the fill style to be used for subsequent fill areas.
661
+ #
662
+ # `setfillstyle` specifies an index when PATTERN fill or HATCH fill is
663
+ # requested by the`setfillintstyle` function. If the interior style is set
664
+ # to PATTERN, the fill style index points to a device-independent pattern
665
+ # table. If interior style is set to HATCH the fill style index indicates
666
+ # different hatch styles. If HOLLOW or SOLID is specified for the interior
667
+ # style, the fill style index is unused.
668
+ #
649
669
  # @param index [Integer] The fill style index to be used
650
- # `setfillstyle` specifies an index when PATTERN fill or HATCH fill is requested by the
651
- # `setfillintstyle` function. If the interior style is set to PATTERN, the fill style
652
- # index points to a device-independent pattern table. If interior style is set to HATCH
653
- # the fill style index indicates different hatch styles. If HOLLOW or SOLID is specified
654
- # for the interior style, the fill style index is unused.
655
- def setfillstyle(*)
656
- super
657
- end
670
+ #
671
+ # @!method setfillstyle
658
672
 
659
673
  # Returns the current fill area color index.
674
+ #
660
675
  # This function gets the color index for PATTERN and HATCH fills.
676
+ #
677
+ # @return [Integer] The currently set fill style color index
661
678
  def inqfillstyle
662
679
  inquiry_int { |pt| super(pt) }
663
680
  end
664
681
 
665
682
  # Sets the current fill area color index.
683
+ #
684
+ # `setfillcolorind` defines the color of subsequent fill area output
685
+ # primitives. GR uses the default foreground color (black=1) for the default
686
+ # fill area color index.
687
+ #
666
688
  # @param color [Integer] The text color index (COLOR < 1256)
667
- # `setfillcolorind` defines the color of subsequent fill area output primitives.
668
- # GR uses the default foreground color (black=1) for the default fill area color index.
669
- def setfillcolorind(*)
670
- super
671
- end
689
+ #
690
+ # @!method setfillcolorind
672
691
 
673
692
  # Returns the current fill area color index.
693
+ #
674
694
  # This function gets the color of fill area output primitives.
695
+ #
696
+ # @return [Integer] The text color index (COLOR < 1256)
675
697
  def inqfillcolorind
676
698
  inquiry_int { |pt| super(pt) }
677
699
  end
678
700
 
679
- # `setcolorrep` allows to redefine an existing color index representation by specifying
680
- # an RGB color triplet.
701
+ # Redefine an existing color index representation by specifying an RGB color
702
+ # triplet.
703
+ #
681
704
  # @param index [Integer] Color index in the range 0 to 1256
682
- # @param red [Numeric] Red intensity in the range 0.0 to 1.0
705
+ # @param red [Numeric] Red intensity in the range 0.0 to 1.0
683
706
  # @param green [Numeric] Green intensity in the range 0.0 to 1.0
684
- # @param blue [Numeric] Blue intensity in the range 0.0 to 1.0
685
- def setcolorrep(*)
686
- super
687
- end
707
+ # @param blue [Numeric] Blue intensity in the range 0.0 to 1.0
708
+ #
709
+ # @!method setcolorrep
688
710
 
689
- # `setwindow` establishes a window, or rectangular subspace, of world coordinates to be
690
- # plotted. If you desire log scaling or mirror-imaging of axes, use the SETSCALE function.
691
- # @param xmin [Numeric] The left horizontal coordinate of the window (`xmin` < `xmax`).
711
+ # `setwindow` establishes a window, or rectangular subspace, of world
712
+ # coordinates to be plotted. If you desire log scaling or mirror-imaging of
713
+ # axes, use the SETSCALE function.
714
+ #
715
+ # `setwindow` defines the rectangular portion of the World Coordinate space
716
+ # (WC) to be associated with the specified normalization transformation. The
717
+ # WC window and the Normalized Device Coordinates (NDC) viewport define the
718
+ # normalization transformation through which all output primitives are
719
+ # mapped. The WC window is mapped onto the rectangular NDC viewport which is,
720
+ # in turn, mapped onto the display surface of the open and active workstation,
721
+ # in device coordinates. By default, GR uses the range [0,1] x [0,1], in
722
+ # world coordinates, as the normalization transformation window.
723
+ #
724
+ # @param xmin [Numeric] The left horizontal coordinate of the window
725
+ # (`xmin` < `xmax`).
692
726
  # @param xmax [Numeric] The right horizontal coordinate of the window.
693
- # @param ymin [Numeric] The bottom vertical coordinate of the window (`ymin` < `ymax`).
727
+ # @param ymin [Numeric] The bottom vertical coordinate of the window
728
+ # (`ymin` < `ymax`).
694
729
  # @param ymax [Numeric] The top vertical coordinate of the window.
695
- # `setwindow` defines the rectangular portion of the World Coordinate space (WC) to be
696
- # associated with the specified normalization transformation. The WC window and the
697
- # Normalized Device Coordinates (NDC) viewport define the normalization transformation
698
- # through which all output primitives are mapped. The WC window is mapped onto the
699
- # rectangular NDC viewport which is, in turn, mapped onto the display surface of the
700
- # open and active workstation, in device coordinates. By default, GR uses the range
701
- # \[0,1] x [0,1], in world coordinates, as the normalization transformation window.
702
- def setwindow(*)
703
- super
704
- end
730
+ #
731
+ # @!method setwindow
705
732
 
706
733
  # inqwindow
707
734
  def inqwindow
@@ -710,20 +737,25 @@ module GR
710
737
  end
711
738
  end
712
739
 
713
- # `setviewport` establishes a rectangular subspace of normalized device coordinates.
740
+ # `setviewport` establishes a rectangular subspace of normalized device
741
+ # coordinates.
742
+ #
743
+ # `setviewport` defines the rectangular portion of the Normalized Device
744
+ # Coordinate (NDC) space to be associated with the specified normalization
745
+ # transformation. The NDC viewport and World Coordinate (WC) window define
746
+ # the normalization transformation through which all output primitives pass.
747
+ # The WC window is mapped onto the rectangular NDC viewport which is, in
748
+ # turn, mapped onto the display surface of the open and active workstation,
749
+ # in device coordinates.
750
+ #
714
751
  # @param xmin [Numeric] The left horizontal coordinate of the viewport.
715
- # @param xmax [Numeric] The right horizontal coordinate of the viewport (0 <= `xmin` < `xmax` <= 1).
752
+ # @param xmax [Numeric] The right horizontal coordinate of the viewport
753
+ # (0 <= `xmin` < `xmax` <= 1).
716
754
  # @param ymin [Numeric] The bottom vertical coordinate of the viewport.
717
- # @param ymax [Numeric] The top vertical coordinate of the viewport (0 <= `ymin` < `ymax` <= 1).
718
- # `setviewport` defines the rectangular portion of the Normalized Device Coordinate
719
- # (NDC) space to be associated with the specified normalization transformation. The
720
- # NDC viewport and World Coordinate (WC) window define the normalization transformation
721
- # through which all output primitives pass. The WC window is mapped onto the rectangular
722
- # NDC viewport which is, in turn, mapped onto the display surface of the open and active
723
- # workstation, in device coordinates.
724
- def setviewport(*)
725
- super
726
- end
755
+ # @param ymax [Numeric] The top vertical coordinate of the viewport
756
+ # (0 <= `ymin` < `ymax` <= 1).
757
+ #
758
+ # @!method setviewport
727
759
 
728
760
  # inqviewport
729
761
  def inqviewport
@@ -732,99 +764,103 @@ module GR
732
764
  end
733
765
  end
734
766
 
735
- # `selntran` selects a predefined transformation from world coordinates to normalized
736
- # device coordinates.
767
+ # `selntran` selects a predefined transformation from world coordinates to
768
+ # normalized device coordinates.
769
+ #
737
770
  # @param transform [Integer] A normalization transformation number.
738
- # * 0 : Selects the identity transformation in which both the window and viewport have the range of 0 to 1
739
- # * >= 1 : Selects a normalization transformation as defined by `setwindow` and `setviewport`
740
- def selntran(*)
741
- super
742
- end
771
+ # * 0 : Selects the identity transformation in which both the window and
772
+ # viewport have the range of 0 to 1
773
+ # * >= 1 : Selects a normalization transformation as defined by `setwindow`
774
+ # and `setviewport`
775
+ #
776
+ # @!method selntran
743
777
 
744
778
  # Set the clipping indicator.
745
- # @params indicator [Integer] An indicator specifying whether clipping is on or off.
779
+ #
780
+ # @params indicator [Integer] An indicator specifying whether clipping is on
781
+ # or off.
746
782
  # * 0 : Clipping is off. Data outside of the window will be drawn.
747
783
  # * 1 : Clipping is on. Data outside of the window will not be drawn.
748
- # `setclip` enables or disables clipping of the image drawn in the current window.
749
- # Clipping is defined as the removal of those portions of the graph that lie outside of
750
- # the defined viewport. If clipping is on, GR does not draw generated output primitives
751
- # past the viewport boundaries. If clipping is off, primitives may exceed the viewport
752
- # boundaries, and they will be drawn to the edge of the workstation window.
753
- # By default, clipping is on.
754
- def setclip(*)
755
- super
756
- end
757
-
758
- # Set the area of the NDC viewport that is to be drawn in the workstation window.
759
- # @param xmin [Numeric] The left horizontal coordinate of the workstation window.
760
- # @param xmax [Numeric] The right horizontal coordinate of the workstation window (0 <= `xmin` < `xmax` <= 1).
761
- # @param ymin [Numeric] The bottom vertical coordinate of the workstation window.
762
- # @param ymax [Numeric] The top vertical coordinate of the workstation window (0 <= `ymin` < `ymax` <= 1).
763
- # `setwswindow` defines the rectangular area of the Normalized Device Coordinate space
764
- # to be output to the device. By default, the workstation transformation will map the
765
- # range [0,1] x [0,1] in NDC onto the largest square on the workstation’s display
766
- # surface. The aspect ratio of the workstation window is maintained at 1 to 1.
767
- def setwswindow(*)
768
- super
769
- end
784
+ #
785
+ # `setclip` enables or disables clipping of the image drawn in the current
786
+ # window. Clipping is defined as the removal of those portions of the graph
787
+ # that lie outside of the defined viewport. If clipping is on, GR does not
788
+ # draw generated output primitives past the viewport boundaries. If clipping
789
+ # is off, primitives may exceed the viewport boundaries, and they will be
790
+ # drawn to the edge of the workstation window. By default, clipping is on.
791
+ #
792
+ # @!method setclip
793
+
794
+ # Set the area of the NDC viewport that is to be drawn in the workstation
795
+ # window.
796
+ #
797
+ # `setwswindow` defines the rectangular area of the Normalized Device
798
+ # Coordinate space to be output to the device. By default, the workstation
799
+ # transformation will map the range [0,1] x [0,1] in NDC onto the largest
800
+ # square on the workstation’s display surface. The aspect ratio of the
801
+ # workstation window is maintained at 1 to 1.
802
+ #
803
+ # @param xmin [Numeric] The left horizontal coordinate of the workstation
804
+ # window.
805
+ # @param xmax [Numeric] The right horizontal coordinate of the workstation
806
+ # window (0 <= `xmin` < `xmax` <= 1).
807
+ # @param ymin [Numeric] The bottom vertical coordinate of the workstation
808
+ # window.
809
+ # @param ymax [Numeric] The top vertical coordinate of the workstation
810
+ # window (0 <= `ymin` < `ymax` <= 1).
811
+ #
812
+ # @!method setwswindow
770
813
 
771
814
  # Define the size of the workstation graphics window in meters.
772
- # @param xmin [Numeric] The left horizontal coordinate of the workstation viewport.
773
- # @param xmax [Numeric] The right horizontal coordinate of the workstation viewport.
774
- # @param ymin [Numeric] The bottom vertical coordinate of the workstation viewport.
775
- # @param ymax [Numeric] The top vertical coordinate of the workstation viewport.
776
- # `setwsviewport` places a workstation window on the display of the specified size in
777
- # meters. This command allows the workstation window to be accurately sized for a
778
- # display or hardcopy device, and is often useful for sizing graphs for desktop
779
- # publishing applications.
780
- def setwsviewport(*)
781
- super
782
- end
815
+ #
816
+ # `setwsviewport` places a workstation window on the display of the
817
+ # specified size in meters. This command allows the workstation window to be
818
+ # accurately sized for a display or hardcopy device, and is often useful for
819
+ # sizing graphs for desktop publishing applications.
820
+ #
821
+ # @param xmin [Numeric] The left horizontal coordinate of the workstation
822
+ # viewport.
823
+ # @param xmax [Numeric] The right horizontal coordinate of the workstation
824
+ # viewport.
825
+ # @param ymin [Numeric] The bottom vertical coordinate of the workstation
826
+ # viewport.
827
+ # @param ymax [Numeric] The top vertical coordinate of the workstation
828
+ # viewport.
829
+ #
830
+ # @!method setwsviewport
783
831
 
784
- def createseg(*)
785
- super
786
- end
832
+ # @!method createseg
787
833
 
788
- def copysegws(*)
789
- super
790
- end
834
+ # @!method copysegws
791
835
 
792
- def redrawsegws(*)
793
- super
794
- end
836
+ # @!method redrawsegws
795
837
 
796
- def setsegtran(*)
797
- super
798
- end
838
+ # @!method setsegtran
799
839
 
800
- def closeseg(*)
801
- super
802
- end
840
+ # @!method closeseg
803
841
 
804
- def emergencyclosegks(*)
805
- super
806
- end
842
+ # @!method emergencyclosegks
807
843
 
808
- def updategks(*)
809
- super
810
- end
844
+ # @!method updategks
811
845
 
812
- # Set the abstract Z-space used for mapping three-dimensional output primitives into
813
- # the current world coordinate space.
814
- # @param zmin [Numeric] Minimum value for the Z-axis.
815
- # @param zmax [Numeric] Maximum value for the Z-axis.
846
+ # Set the abstract Z-space used for mapping three-dimensional output
847
+ # primitives into the current world coordinate space.
848
+ #
849
+ # `setspace` establishes the limits of an abstract Z-axis and defines the
850
+ # angles for rotation and for the viewing angle (tilt) of a simulated
851
+ # three-dimensional graph, used for mapping corresponding output primitives
852
+ # into the current window. These settings are used for all subsequent
853
+ # three-dimensional output primitives until other values are specified.
854
+ # Angles of rotation and viewing angle must be specified between 0° and 90°.
855
+ #
856
+ # @param zmin [Numeric] Minimum value for the Z-axis.
857
+ # @param zmax [Numeric] Maximum value for the Z-axis.
816
858
  # @param rotation [Integer] Angle for the rotation of the X axis, in degrees.
817
- # @param tilt [integer] Viewing angle of the Z axis in degrees.
818
- # @return [Integer]
819
- # `setspace` establishes the limits of an abstract Z-axis and defines the angles for
820
- # rotation and for the viewing angle (tilt) of a simulated three-dimensional graph,
821
- # used for mapping corresponding output primitives into the current window.
822
- # These settings are used for all subsequent three-dimensional output primitives until
823
- # other values are specified. Angles of rotation and viewing angle must be specified
824
- # between 0° and 90°.
825
- def setspace(*)
826
- super
827
- end
859
+ # @param tilt [integer] Viewing angle of the Z axis in degrees.
860
+ #
861
+ # @return [Integer]
862
+ #
863
+ # @!method setspace
828
864
 
829
865
  def inqspace
830
866
  inquiry %i[double double int int] do |*pts|
@@ -832,64 +868,63 @@ module GR
832
868
  end
833
869
  end
834
870
 
835
- # `setscale` sets the type of transformation to be used for subsequent GR output
836
- # primitives.
871
+ # `setscale` sets the type of transformation to be used for subsequent GR
872
+ # output primitives.
873
+ #
837
874
  # @param options [Integer] Scale specification
838
- # * 1 : OPTION_X_LOG
839
- # * Logarithmic X-axis
840
- # * 2 : OPTION_Y_LOG
841
- # * Logarithmic Y-axis
842
- # * 4 : OPTION_Z_LOG
843
- # * Logarithmic Z-axis
844
- # * 8 : OPTION_FLIP_X
845
- # * Flip X-axis
846
- # * 16 : OPTION_FLIP_Y
847
- # * Flip Y-axis
848
- # * 32 : OPTION_FLIP_Z
849
- # * Flip Z-axis
875
+ # * 1 : OPTION_X_LOG - Logarithmic X-axis
876
+ # * 2 : OPTION_Y_LOG - Logarithmic Y-axis
877
+ # * 4 : OPTION_Z_LOG - Logarithmic Z-axis
878
+ # * 8 : OPTION_FLIP_X - Flip X-axis
879
+ # * 16 : OPTION_FLIP_Y - Flip Y-axis
880
+ # * 32 : OPTION_FLIP_Z - Flip Z-axis
881
+ #
850
882
  # @return [Integer]
883
+ #
851
884
  # `setscale` defines the current transformation according to the given scale
852
- # specification which may be or'ed together using any of the above options. GR uses
853
- # these options for all subsequent output primitives until another value is provided.
854
- # The scale options are used to transform points from an abstract logarithmic or
855
- # semi-logarithmic coordinate system, which may be flipped along each axis, into the
856
- # world coordinate system.
857
- # Note: When applying a logarithmic transformation to a specific axis, the system
858
- # assumes that the axes limits are greater than zero.
859
- def setscale(*)
860
- super
861
- end
885
+ # specification which may be or'ed together using any of the above options.
886
+ # GR uses these options for all subsequent output primitives until another
887
+ # value is provided. The scale options are used to transform points from an
888
+ # abstract logarithmic or semi-logarithmic coordinate system, which may be
889
+ # flipped along each axis, into the world coordinate system.
890
+ #
891
+ # Note: When applying a logarithmic transformation to a specific axis, the
892
+ # system assumes that the axes limits are greater than zero.
893
+ #
894
+ # @!method setscale
862
895
 
863
896
  # inqscale
864
897
  def inqscale
865
898
  inquiry_int { |pt| super(pt) }
866
899
  end
867
900
 
868
- # Draw a text at position `x`, `y` using the current text attributes. Strings can be
869
- # defined to create basic mathematical expressions and Greek letters.
901
+ # Draw a text at position `x`, `y` using the current text attributes.
902
+ # Strings can be defined to create basic mathematical expressions and Greek
903
+ # letters.
904
+ #
905
+ # The values for X and Y are in normalized device coordinates.
906
+ # The attributes that control the appearance of text are text font and
907
+ # precision, character expansion factor, character spacing, text color index,
908
+ # character height, character up vector, text path and text alignment.
909
+ #
870
910
  # @param x [Numeric] The X coordinate of starting position of the text string
871
911
  # @param y [Numeric] The Y coordinate of starting position of the text string
872
- # @param string [String] The text to be drawn
912
+ # @param string [String] The text to be drawn
873
913
  # @return [Integer]
874
914
  #
875
- # The values for X and Y are in normalized device coordinates.
876
- # The attributes that control the appearance of text are text font and precision,
877
- # character expansion factor, character spacing, text color index, character
878
- # height, character up vector, text path and text alignment.
879
- #
880
915
  # The character string is interpreted to be a simple mathematical formula.
881
916
  # The following notations apply:
882
917
  #
883
- # Subscripts and superscripts: These are indicated by carets ('^') and underscores
884
- # \('_'). If the sub/superscript contains more than one character, it must be enclosed
885
- # in curly braces ('{}').
918
+ # Subscripts and superscripts: These are indicated by carets ('^') and
919
+ # underscores \('_'). If the sub/superscript contains more than one character,
920
+ # it must be enclosed in curly braces ('{}').
886
921
  #
887
- # Fractions are typeset with A '/' B, where A stands for the numerator and B for the
888
- # denominator.
922
+ # Fractions are typeset with A '/' B, where A stands for the numerator and B
923
+ # for the denominator.
889
924
  #
890
925
  # To include a Greek letter you must specify the corresponding keyword after a
891
- # backslash ('\') character. The text translator produces uppercase or lowercase
892
- # Greek letters depending on the case of the keyword.
926
+ # backslash ('\') character. The text translator produces uppercase or
927
+ # lowercase Greek letters depending on the case of the keyword.
893
928
  # * Α α - alpha
894
929
  # * Β β - beta
895
930
  # * Γ γ - gamma
@@ -915,11 +950,10 @@ module GR
915
950
  # * Ψ ψ - psi
916
951
  # * Ω ω - omega
917
952
  # Note: `\v` is a replacement for `\nu` which would conflict with `\n` (newline)
918
- # For more sophisticated mathematical formulas, you should use the `gr.mathtex`
953
+ # For more sophisticated mathematical formulas, you should use the `mathtex`
919
954
  # function.
920
- def textext(*)
921
- super
922
- end
955
+ #
956
+ # @!method textext
923
957
 
924
958
  # inqtextext
925
959
  def inqtextext(x, y, string)
@@ -928,11 +962,17 @@ module GR
928
962
  end
929
963
  end
930
964
 
931
- # Draw X and Y coordinate axes with linearly and/or logarithmically spaced tick marks.
932
- # @param x_tick [Numeric] The interval between minor tick marks on the X axis.
933
- # @param y_tick [Numeric] The interval between minor tick marks on the Y axis.
934
- # @param x_org [Numeric] The world coordinates of the origin (point of intersection) of the X axis.
935
- # @param y_org [Numeric] The world coordinates of the origin (point of intersection) of the Y axis.
965
+ # Draw X and Y coordinate axes with linearly and/or logarithmically spaced
966
+ # tick marks.
967
+ #
968
+ # @param x_tick [Numeric]
969
+ # The interval between minor tick marks on the X axis.
970
+ # @param y_tick [Numeric]
971
+ # The interval between minor tick marks on the Y axis.
972
+ # @param x_org [Numeric]
973
+ # The world coordinates of the origin (point of intersection) of the X axis.
974
+ # @param y_org [Numeric]
975
+ # The world coordinates of the origin (point of intersection) of the Y axis.
936
976
  # @param major_x [Integer]
937
977
  # Unitless integer values specifying the number of minor tick intervals
938
978
  # between major tick marks. Values of 0 or 1 imply no minor ticks.
@@ -946,6 +986,7 @@ module GR
946
986
  # coordinate unit. Major tick marks are twice as long as minor tick marks.
947
987
  # A negative value reverses the tick marks on the axes from inward facing
948
988
  # to outward facing (or vice versa).
989
+ #
949
990
  # Tick marks are positioned along each axis so that major tick marks fall on
950
991
  # the axes origin (whether visible or not). Major tick marks are labeled
951
992
  # with the corresponding data values. Axes are drawn according to the scale
@@ -953,95 +994,134 @@ module GR
953
994
  # and width can be modified using the gr_setlinetype and gr_setlinewidth
954
995
  # functions. Axes are drawn according to the linear or logarithmic
955
996
  # transformation established by the gr_setscale function.
956
- def axes(*)
957
- super
958
- end
997
+ #
998
+ # @!method axes
959
999
 
960
1000
  alias axes2d axes
961
1001
 
962
1002
  # Create axes in the current workspace and supply a custom function for
963
1003
  # changing the behaviour of the tick labels.
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 x_org [Numeric] The world coordinate of the origin (point of intersection) of the X axis.
967
- # @param y_org [Numeric] The world coordinate of the origin (point of intersection) of the Y axis.
968
- # @param major_x [Integer] Unitless integer value specifying the number of minor tick intervals between major tick marks on the X axis. Values of 0 or 1 imply no minor ticks. Negative values specify no labels will be drawn for the associated axis.
969
- # @param major_y [Integer] Unitless integer value specifying the number of minor tick intervals between major tick marks on the Y axis. Values of 0 or 1 imply no minor ticks. Negative values specify no labels will be drawn for the associated axis.
970
- # @param tick_size [Numeric] The length of minor tick marks specified in a normalized device coordinate unit. Major tick marks are twice as long as minor tick marks. A negative value reverses the tick marks on the axes from inward facing to outward facing (or vice versa).
971
- # @param fpx [Pointer] Function pointer to a function that returns a label for a given tick on the X axis. The callback function should have the following arguments [Numeric]
972
- # @param fpy [Pointer] Exactly same as the fpx above, but for the the Y axis.
1004
+ #
1005
+ # @note This method uses GRCommons::Fiddley::Function as a callback function.
1006
+ # Please read the source code If you have to use it. There are some
1007
+ # examples of the use of this function in the Plot class..
1008
+ #
973
1009
  # Similar to gr_axes() but allows more fine-grained control over tick labels
974
1010
  # and text positioning by supplying callback functions. Within the callback
975
1011
  # function you can use normal GR text primitives for performing any
976
1012
  # manipulations on the label text.
977
1013
  # See gr_axes() for more details on drawing axes.
1014
+ #
1015
+ # @param x_tick [Numeric]
1016
+ # The interval between minor tick marks on the X axis.
1017
+ # @param y_tick [Numeric]
1018
+ # The interval between minor tick marks on the Y axis.
1019
+ # @param x_org [Numeric]
1020
+ # The world coordinate of the origin (point of intersection) of the X axis.
1021
+ # @param y_org [Numeric]
1022
+ # The world coordinate of the origin (point of intersection) of the Y axis.
1023
+ # @param major_x [Integer]
1024
+ # Unitless integer value specifying the number of minor tick intervals
1025
+ # between major tick marks on the X axis. Values of 0 or 1 imply no minor
1026
+ # ticks. Negative values specify no labels will be drawn for the associated
1027
+ # axis.
1028
+ # @param major_y [Integer]
1029
+ # Unitless integer value specifying the number of minor tick intervals
1030
+ # between major tick marks on the Y axis. Values of 0 or 1 imply no minor
1031
+ # ticks. Negative values specify no labels will be drawn for the associated
1032
+ # axis.
1033
+ # @param tick_size [Numeric]
1034
+ # The length of minor tick marks specified in a normalized device
1035
+ # coordinate unit. Major tick marks are twice as long as minor tick marks.
1036
+ # A negative value reverses the tick marks on the axes from inward facing
1037
+ # to outward facing (or vice versa).
1038
+ # @param fpx [Pointer]
1039
+ # Function pointer to a function that returns a label for a given tick on
1040
+ # the X axis. The callback function should have the following arguments.
1041
+ # @param fpy [Pointer] Exactly same as the fpx above, but for the the Y axis.
1042
+ #
978
1043
  # * fpx/fpy
979
1044
  # * param x [Numeric] NDC of the label in X direction.
980
1045
  # * param y [Numeric] NDC of the label in Y direction.
981
1046
  # * param svalue [String] Internal string representation of the text drawn by GR at (x,y).
982
1047
  # * param value [Numeric] Floating point representation of the label drawn at (x,y).
983
- def axeslbl(*)
984
- super
985
- end
1048
+ #
1049
+ # @!method axeslbl
986
1050
 
987
1051
  # Draw a linear and/or logarithmic grid.
988
- # @param x_tick [Numeric] The length in world coordinates of the interval between minor grid lines.
989
- # @param y_tick [Numeric] The length in world coordinates of the interval between minor grid lines.
990
- # @param x_org [Numeric] The world coordinates of the origin (point of intersection) of the grid.
991
- # @param y_org [Numeric] The world coordinates of the origin (point of intersection) of the grid.
992
- # @param major_x [Integer]
993
- # Unitless integer values specifying the number of minor grid lines
994
- # between major grid lines. Values of 0 or 1 imply no grid lines.
995
- # @param major_y [Integer]
996
- # Unitless integer values specifying the number of minor grid lines
997
- # between major grid lines. Values of 0 or 1 imply no grid lines.
998
1052
  #
999
- # Major grid lines correspond to the axes origin and major tick marks whether visible
1000
- # or not. Minor grid lines are drawn at points equal to minor tick marks. Major grid
1001
- # lines are drawn using black lines and minor grid lines are drawn using gray lines.
1002
- def grid(*)
1003
- super
1004
- end
1053
+ # Major grid lines correspond to the axes origin and major tick marks whether
1054
+ # visible or not. Minor grid lines are drawn at points equal to minor tick
1055
+ # marks. Major grid lines are drawn using black lines and minor grid lines
1056
+ # are drawn using gray lines.
1057
+ #
1058
+ # @param x_tick [Numeric] The length in world coordinates of the interval
1059
+ # between minor grid lines.
1060
+ # @param y_tick [Numeric] The length in world coordinates of the interval
1061
+ # between minor grid lines.
1062
+ # @param x_org [Numeric] The world coordinates of the origin (point of
1063
+ # intersection) of the grid.
1064
+ # @param y_org [Numeric] The world coordinates of the origin (point of
1065
+ # intersection) of the grid.
1066
+ # @param major_x [Integer] Unitless integer values specifying the number of
1067
+ # minor grid lines between major grid lines.
1068
+ # Values of 0 or 1 imply no grid lines.
1069
+ # @param major_y [Integer] Unitless integer values specifying the number of
1070
+ # minor grid lines between major grid lines.
1071
+ # Values of 0 or 1 imply no grid lines.
1072
+ #
1073
+ # @!method grid
1005
1074
 
1006
1075
  # Draw a linear and/or logarithmic grid.
1007
- # @param x_tick [Numeric] The length in world coordinates of the interval between minor grid lines.
1008
- # @param y_tick [Numeric] The length in world coordinates of the interval between minor grid lines.
1009
- # @param z_tick [Numeric] The length in world coordinates of the interval between minor grid lines.
1010
- # @param x_org [Numeric] The world coordinates of the origin (point of intersection) of the grid.
1011
- # @param y_org [Numeric] The world coordinates of the origin (point of intersection) of the grid.
1012
- # @param z_org [Numeric] The world coordinates of the origin (point of intersection) of the grid.
1013
- # @param major_x [Integer]
1014
- # Unitless integer values specifying the number of minor grid lines
1015
- # between major grid lines. Values of 0 or 1 imply no grid lines.
1016
- # @param major_y [Integer]
1017
- # Unitless integer values specifying the number of minor grid lines
1018
- # between major grid lines. Values of 0 or 1 imply no grid lines.
1019
- # @param major_z [Integer]
1020
- # Unitless integer values specifying the number of minor grid lines
1021
- # between major grid lines. Values of 0 or 1 imply no grid lines.
1022
1076
  #
1023
- # Major grid lines correspond to the axes origin and major tick marks whether visible
1024
- # or not. Minor grid lines are drawn at points equal to minor tick marks. Major grid
1025
- # lines are drawn using black lines and minor grid lines are drawn using gray lines.
1026
- def grid3d(*)
1027
- super
1028
- end
1077
+ # Major grid lines correspond to the axes origin and major tick marks whether
1078
+ # visible or not. Minor grid lines are drawn at points equal to minor tick
1079
+ # marks. Major grid lines are drawn using black lines and minor grid lines
1080
+ # are drawn using gray lines.
1081
+ #
1082
+ # @param x_tick [Numeric] The length in world coordinates of the interval
1083
+ # between minor grid lines.
1084
+ # @param y_tick [Numeric] The length in world coordinates of the interval
1085
+ # between minor grid lines.
1086
+ # @param z_tick [Numeric] The length in world coordinates of the interval
1087
+ # between minor grid lines.
1088
+ # @param x_org [Numeric] The world coordinates of the origin (point of
1089
+ # intersection) of the grid.
1090
+ # @param y_org [Numeric] The world coordinates of the origin (point of
1091
+ # intersection) of the grid.
1092
+ # @param z_org [Numeric] The world coordinates of the origin (point of
1093
+ # intersection) of the grid.
1094
+ # @param major_x [Integer] Unitless integer values specifying the number
1095
+ # of minor grid lines between major grid lines.
1096
+ # Values of 0 or 1 imply no grid lines.
1097
+ # @param major_y [Integer] Unitless integer values specifying the number
1098
+ # of minor grid lines between major grid lines.
1099
+ # Values of 0 or 1 imply no grid lines.
1100
+ # @param major_z [Integer] Unitless integer values specifying the number of
1101
+ # minor grid lines between major grid lines.
1102
+ # Values of 0 or 1 imply no grid lines.
1103
+ #
1104
+ # @!method grid3d
1029
1105
 
1030
1106
  # Draw a standard vertical error bar graph.
1031
- # @param x [Array, NArray] A list of length N containing the X coordinates
1032
- # @param y [Array, NArray] A list of length N containing the Y coordinates
1107
+ #
1108
+ # @param x [Array, NArray] A list of length N containing the X coordinates
1109
+ # @param y [Array, NArray] A list of length N containing the Y coordinates
1033
1110
  # @param e1 [Array, NArray] The absolute values of the lower error bar data
1034
1111
  # @param e2 [Array, NArray] The absolute values of the lower error bar data
1112
+ #
1035
1113
  def verrorbars(x, y, e1, e2)
1036
1114
  n = equal_length(x, y, e1, e2)
1037
1115
  super(n, x, y, e1, e2)
1038
1116
  end
1039
1117
 
1040
1118
  # Draw a standard horizontal error bar graph.
1119
+ #
1041
1120
  # @param x [Array, NArray] A list of length N containing the X coordinates
1042
1121
  # @param y [Array, NArray] A list of length N containing the Y coordinates
1043
1122
  # @param e1 [Array, NArray] The absolute values of the lower error bar data
1044
1123
  # @param e2 [Array, NArray] The absolute values of the lower error bar data
1124
+ #
1045
1125
  def herrorbars(x, y, e1, e2)
1046
1126
  n = equal_length(x, y, e1, e2)
1047
1127
  super(n, x, y, e1, e2)
@@ -1049,24 +1129,30 @@ module GR
1049
1129
 
1050
1130
  # Draw a 3D curve using the current line attributes,
1051
1131
  # starting from the first data point and ending at the last data point.
1052
- # @param x [Array, NArray] A list of length N containing the X coordinates
1053
- # @param y [Array, NArray] A list of length N containing the Y coordinates
1054
- # @param z [Array, NArray] A list of length N containing the Z coordinates
1132
+ #
1055
1133
  # The values for `x`, `y` and `z` are in world coordinates. The attributes that
1056
1134
  # control the appearance of a polyline are linetype, linewidth and color
1057
1135
  # index.
1136
+ #
1137
+ # @param x [Array, NArray] A list of length N containing the X coordinates
1138
+ # @param y [Array, NArray] A list of length N containing the Y coordinates
1139
+ # @param z [Array, NArray] A list of length N containing the Z coordinates
1140
+ #
1058
1141
  def polyline3d(x, y, z)
1059
1142
  n = equal_length(x, y, z)
1060
1143
  super(n, x, y, z)
1061
1144
  end
1062
1145
 
1063
1146
  # Draw marker symbols centered at the given 3D data points.
1064
- # @param x [Array, NArray] A list of length N containing the X coordinates
1065
- # @param y [Array, NArray] A list of length N containing the Y coordinates
1066
- # @param z [Array, NArray] A list of length N containing the Z coordinates
1147
+ #
1067
1148
  # The values for `x`, `y` and `z` are in world coordinates. The attributes
1068
1149
  # that control the appearance of a polymarker are marker type, marker size
1069
1150
  # scale factor and color index.
1151
+ #
1152
+ # @param x [Array, NArray] A list of length N containing the X coordinates
1153
+ # @param y [Array, NArray] A list of length N containing the Y coordinates
1154
+ # @param z [Array, NArray] A list of length N containing the Z coordinates
1155
+ #
1070
1156
  def polymarker3d(x, y, z)
1071
1157
  n = equal_length(x, y, z)
1072
1158
  super(n, x, y, z)
@@ -1074,12 +1160,24 @@ module GR
1074
1160
 
1075
1161
  # Draw X, Y and Z coordinate axes with linearly and/or logarithmically
1076
1162
  # spaced tick marks.
1163
+ #
1164
+ # Tick marks are positioned along each axis so that major tick marks fall on
1165
+ # the axes origin (whether visible or not). Major tick marks are labeled with
1166
+ # the corresponding data values. Axes are drawn according to the scale of the
1167
+ # window. Axes and tick marks are drawn using solid lines; line color and
1168
+ # width can be modified using the `setlinetype` and `setlinewidth` functions.
1169
+ # Axes are drawn according to the linear or logarithmic transformation
1170
+ # established by the `setscale` function.
1171
+ #
1077
1172
  # @param x_tick [Numeric] The interval between minor tick marks on the X axis.
1078
1173
  # @param y_tick [Numeric] The interval between minor tick marks on the Y axis.
1079
1174
  # @param z_tick [Numeric] The interval between minor tick marks on the Z axis.
1080
- # @param x_org [Numeric] The world coordinates of the origin (point of intersection) of the X axes.
1081
- # @param y_org [Numeric] The world coordinates of the origin (point of intersection) of the Y axes.
1082
- # @param z_org [Numeric] The world coordinates of the origin (point of intersection) of the Z axes.
1175
+ # @param x_org [Numeric]
1176
+ # The world coordinates of the origin (point of intersection) of the X axes.
1177
+ # @param y_org [Numeric]
1178
+ # The world coordinates of the origin (point of intersection) of the Y axes.
1179
+ # @param z_org [Numeric]
1180
+ # The world coordinates of the origin (point of intersection) of the Z axes.
1083
1181
  # @param major_x [Integer]
1084
1182
  # Unitless integer values specifying the number of minor tick intervals
1085
1183
  # between major tick marks. Values of 0 or 1 imply no minor ticks.
@@ -1097,48 +1195,41 @@ module GR
1097
1195
  # coordinate unit. Major tick marks are twice as long as minor tick marks.
1098
1196
  # A negative value reverses the tick marks on the axes from inward facing
1099
1197
  # to outward facing (or vice versa).
1100
- # Tick marks are positioned along each axis so that major tick marks fall on the axes
1101
- # origin (whether visible or not). Major tick marks are labeled with the corresponding
1102
- # data values. Axes are drawn according to the scale of the window. Axes and tick marks
1103
- # are drawn using solid lines; line color and width can be modified using the
1104
- # `setlinetype` and `setlinewidth` functions. Axes are drawn according to
1105
- # the linear or logarithmic transformation established by the `setscale` function.
1106
- def axes3d(*)
1107
- super
1108
- end
1198
+ #
1199
+ # @!method axes3d
1109
1200
 
1110
1201
  # Display axis titles just outside of their respective axes.
1202
+ #
1111
1203
  # @param x_title [String] The text to be displayed on the X axis
1112
1204
  # @param x_title [String] The text to be displayed on the Y axis
1113
1205
  # @param x_title [String] The text to be displayed on the Z axis
1114
- def titles3d(*)
1115
- super
1116
- end
1206
+ #
1207
+ # @!method titles3d
1117
1208
 
1118
1209
  # Draw a three-dimensional surface plot for the given data points.
1210
+ #
1211
+ # `x` and `y` define a grid. `z` is a singly dimensioned array containing at
1212
+ # least `nx` * `ny` data points. Z describes the surface height at each point
1213
+ # on the grid. Data is ordered as shown in the table:
1214
+ #
1215
+ # @note `surface` is overwritten by `require gr/plot`.
1216
+ # The original method is moved to the underscored name.
1217
+ # The yard document will show the method name after evacuation.
1218
+ #
1119
1219
  # @param x [Array, NArray] A list containing the X coordinates
1120
1220
  # @param y [Array, NArray] A list containing the Y coordinates
1121
1221
  # @param z [Array, NArray]
1122
1222
  # A list of length `len(x)` * `len(y)` or an appropriately dimensioned
1123
1223
  # array containing the Z coordinates
1124
1224
  # @param option [Integer] Surface display option
1125
- # * 0 LINES
1126
- # * Use X Y polylines to denote the surface
1127
- # * 1 MESH
1128
- # * Use a wire grid to denote the surface
1129
- # * 2 FILLED_MESH
1130
- # * Applies an opaque grid to the surface
1131
- # * 3 Z_SHADED_MESH
1132
- # * Applies Z-value shading to the surface
1133
- # * 4 COLORED_MESH
1134
- # * Applies a colored grid to the surface
1135
- # * 5 CELL_ARRAY
1136
- # * Applies a grid of individually-colored cells to the surface
1137
- # * 6 SHADED_MESH
1138
- # * Applies light source shading to the 3-D surface
1139
- # `x` and `y` define a grid. `z` is a singly dimensioned array containing at least
1140
- # `nx` * `ny` data points. Z describes the surface height at each point on the grid.
1141
- # Data is ordered as shown in the table:
1225
+ # * 0 LINES - Use X Y polylines to denote the surface
1226
+ # * 1 MESH - Use a wire grid to denote the surface
1227
+ # * 2 FILLED_MESH - Applies an opaque grid to the surface
1228
+ # * 3 Z_SHADED_MESH - Applies Z-value shading to the surface
1229
+ # * 4 COLORED_MESH - Applies a colored grid to the surface
1230
+ # * 5 CELL_ARRAY - Applies a grid of individually-colored cells to the surface
1231
+ # * 6 SHADED_MESH - Applies light source shading to the 3-D surface
1232
+ #
1142
1233
  def surface(x, y, z, option)
1143
1234
  # TODO: check: Arrays have incorrect length or dimension.
1144
1235
  nx = x.length
@@ -1146,12 +1237,17 @@ module GR
1146
1237
  super(nx, ny, x, y, z, option)
1147
1238
  end
1148
1239
 
1149
- # Draw contours of a three-dimensional data set
1150
- # whose values are specified over a rectangular mesh.
1151
- # Contour lines may optionally be labeled.
1240
+ # Draw contours of a three-dimensional data set whose values are specified
1241
+ # over a rectangular mesh. Contour lines may optionally be labeled.
1242
+ #
1243
+ # @note `contour` is overwritten by `require gr/plot`.
1244
+ # The original method is moved to the underscored name.
1245
+ # The yard document will show the method name after evacuation.
1246
+ #
1152
1247
  # @param x [Array, NArray] A list containing the X coordinates
1153
1248
  # @param y [Array, NArray] A list containing the Y coordinates
1154
- # @param h [Array, NArray] A list containing the Z coordinate for the height values
1249
+ # @param h [Array, NArray]
1250
+ # A list containing the Z coordinate for the height values
1155
1251
  # @param z [Array, NArray]
1156
1252
  # A list containing the Z coordinate for the height values
1157
1253
  # A list of length `len(x)` * `len(y)` or an appropriately dimensioned
@@ -1161,6 +1257,7 @@ module GR
1161
1257
  # every third line. A value of 1 will label every line. A value of 0
1162
1258
  # produces no labels. To produce colored contour lines, add an offset
1163
1259
  # of 1000 to `major_h`.
1260
+ #
1164
1261
  def contour(x, y, h, z, major_h)
1165
1262
  # TODO: check: Arrays have incorrect length or dimension.
1166
1263
  nx = x.length
@@ -1169,8 +1266,13 @@ module GR
1169
1266
  super(nx, ny, nh, x, y, h, z, major_h)
1170
1267
  end
1171
1268
 
1172
- # Draw filled contours of a three-dimensional data set
1173
- # whose values are specified over a rectangular mesh.
1269
+ # Draw filled contours of a three-dimensional data set whose values are
1270
+ # specified over a rectangular mesh.
1271
+ #
1272
+ # @note `contourf` is overwritten by `require gr/plot`.
1273
+ # The original method is moved to the underscored name.
1274
+ # The yard document will show the method name after evacuation.
1275
+ #
1174
1276
  # @param x [Array, NArray] A list containing the X coordinates
1175
1277
  # @param y [Array, NArray] A list containing the Y coordinates
1176
1278
  # @param h [Array, NArray]
@@ -1180,6 +1282,7 @@ module GR
1180
1282
  # @param z [Array, NArray]
1181
1283
  # A list of length `len(x)` * `len(y)` or an appropriately dimensioned
1182
1284
  # array containing the Z coordinates
1285
+ #
1183
1286
  def contourf(x, y, h, z, major_h)
1184
1287
  # TODO: check: Arrays have incorrect length or dimension.
1185
1288
  nx = x.length
@@ -1189,28 +1292,59 @@ module GR
1189
1292
  end
1190
1293
 
1191
1294
  # Draw a contour plot for the given triangle mesh.
1295
+ #
1296
+ # @param x [Array, NArray] A list containing the X coordinates
1297
+ # @param y [Array, NArray] A list containing the Y coordinates
1298
+ # @param z [Array, NArray] A list containing the Z coordinates
1299
+ # @param lavels [Array, NArray] A list of contour levels
1300
+ #
1192
1301
  def tricontour(x, y, z, levels)
1193
1302
  npoints = x.length # equal_length ?
1194
1303
  nlevels = levels.length
1195
1304
  super(npoints, x, y, z, nlevels, levels)
1196
1305
  end
1197
1306
 
1307
+ # @note `hexbin` is overwritten by `require gr/plot`.
1308
+ # The original method is moved to the underscored name.
1309
+ # The yard document will show the method name after evacuation.
1310
+ #
1198
1311
  # @return [Integer]
1199
1312
  def hexbin(x, y, nbins)
1200
1313
  n = x.length
1201
1314
  super(n, x, y, nbins)
1202
1315
  end
1203
1316
 
1204
- def setcolormap(*)
1205
- super
1206
- end
1317
+ # Set the currently used colormap.
1318
+ #
1319
+ # * A list of colormaps can be found at: https://gr-framework.org/colormaps.html
1320
+ # Using a negative index will use the reverse of the selected colormap.
1321
+ #
1322
+ # @param index [Integer] Colormap index
1323
+ #
1324
+ # @!method setcolormap
1207
1325
 
1208
1326
  # inqcolormap
1209
1327
  def inqcolormap
1210
1328
  inquiry_int { |pt| super(pt) }
1211
1329
  end
1212
1330
 
1213
- # TODO: GR.jl python-gr different API
1331
+ # Define a colormap by a list of RGB colors.
1332
+ # @note GR.jl and python-gr have different APIsI
1333
+ #
1334
+ # This function defines a colormap using the n given color intensities.
1335
+ # If less than 256 colors are provided the colors intensities are linear
1336
+ # interpolated. If x is NULL the given color values are evenly distributed
1337
+ # in the colormap. Otherwise the normalized value of x defines the position
1338
+ # of the color in the colormap.
1339
+ #
1340
+ # @param r [Array, NArray] The red intensities in range 0.0 to 1.0
1341
+ # @param g [Array, NArray] The green intensities in range 0.0 to 1.0
1342
+ # @param b [Array, NArray] The blue intensities in range 0.0 to 1.0
1343
+ # @param positions [Array, NArray]
1344
+ # The positions of the corresponding color in the resulting colormap or nil.
1345
+ # The values of positions must increase monotonically from 0.0 to 1.0.
1346
+ # If positions is nil the given colors are evenly distributed in the colormap.
1347
+ #
1214
1348
  def setcolormapfromrgb(r, g, b, positions: nil)
1215
1349
  n = equal_length(r, g, b)
1216
1350
  if positions.nil?
@@ -1221,9 +1355,7 @@ module GR
1221
1355
  super(n, r, g, b, positions)
1222
1356
  end
1223
1357
 
1224
- def colorbar(*)
1225
- super
1226
- end
1358
+ # @!method colorbar
1227
1359
 
1228
1360
  def inqcolor(color)
1229
1361
  inquiry_int do |rgb|
@@ -1232,9 +1364,7 @@ module GR
1232
1364
  end
1233
1365
 
1234
1366
  # @return [Integer]
1235
- def inqcolorfromrgb(*)
1236
- super
1237
- end
1367
+ # @!method inqcolorfromrgb
1238
1368
 
1239
1369
  def hsvtorgb(h, s, v)
1240
1370
  inquiry %i[double double double] do |r, g, b|
@@ -1243,14 +1373,10 @@ module GR
1243
1373
  end
1244
1374
 
1245
1375
  # @return [Numeric]
1246
- def tick(*)
1247
- super
1248
- end
1376
+ # @!method tick
1249
1377
 
1250
1378
  # @return [Integer]
1251
- def validaterange(*)
1252
- super
1253
- end
1379
+ # @!method validaterange
1254
1380
 
1255
1381
  def adjustlimits(amin, amax)
1256
1382
  inquiry %i[double double] do |pamin, pamax|
@@ -1269,24 +1395,28 @@ module GR
1269
1395
  end
1270
1396
 
1271
1397
  # Open and activate a print device.
1398
+ #
1399
+ # `beginprint` opens an additional graphics output device. The device type is obtained
1400
+ # from the given file extension
1401
+ #
1272
1402
  # @param pathname [String] Filename for the print device.
1273
1403
  # The following file types are supported:
1274
- # * .ps, .eps : PostScript
1275
- # * .pdf : Portable Document Format
1276
- # * .bmp : Windows Bitmap (BMP)
1404
+ # * .ps, .eps : PostScript
1405
+ # * .pdf : Portable Document Format
1406
+ # * .bmp : Windows Bitmap (BMP)
1277
1407
  # * .jpeg, .jpg : JPEG image file
1278
- # * .png : Portable Network Graphics file (PNG)
1408
+ # * .png : Portable Network Graphics file (PNG)
1279
1409
  # * .tiff, .tif : Tagged Image File Format (TIFF)
1280
- # * .fig : Xfig vector graphics file
1281
- # * .svg : Scalable Vector Graphics
1282
- # * .wmf : Windows Metafile
1283
- # `beginprint` opens an additional graphics output device. The device type is obtained
1284
- # from the given file extension.
1285
- def beginprint(*)
1286
- super
1287
- end
1410
+ # * .svg : Scalable Vector Graphics
1411
+ # * .wmf : Windows Metafile
1412
+ # * .mp4 : MPEG-4 video file
1413
+ # * .webm : WebM video file
1414
+ # * .ogg : Ogg video file
1415
+ #
1416
+ # @!method beginprint
1288
1417
 
1289
1418
  # Open and activate a print device with the given layout attributes.
1419
+ #
1290
1420
  # @param pathname [String] Filename for the print device.
1291
1421
  # @param mode [String] Output mode (Color, GrayScale)
1292
1422
  # @param fmt [String] Output format
@@ -1322,13 +1452,10 @@ module GR
1322
1452
  # * Ledger : 0.432 x 0.279
1323
1453
  # * Tabloid : 0.279 x 0.432
1324
1454
  # @param orientation [String] Page orientation (Landscape, Portait)
1325
- def beginprintext(*)
1326
- super
1327
- end
1455
+ #
1456
+ # @!method beginprintext
1328
1457
 
1329
- def endprint(*)
1330
- super
1331
- end
1458
+ # @!method endprint
1332
1459
 
1333
1460
  def ndctowc(x, y)
1334
1461
  inquiry %i[double double] do |px, py|
@@ -1356,67 +1483,74 @@ module GR
1356
1483
  end
1357
1484
 
1358
1485
  # Draw a rectangle using the current line attributes.
1486
+ #
1359
1487
  # @param xmin [Numeric] Lower left edge of the rectangle
1360
1488
  # @param xmax [Numeric] Lower right edge of the rectangle
1361
1489
  # @param ymin [Numeric] Upper left edge of the rectangle
1362
1490
  # @param ymax [Numeric] Upper right edge of the rectangle
1363
- def drawrect(*)
1364
- super
1365
- end
1491
+ #
1492
+ # @!method drawrect
1366
1493
 
1367
1494
  # Draw a filled rectangle using the current fill attributes.
1495
+ #
1368
1496
  # @param xmin [Numeric] Lower left edge of the rectangle
1369
1497
  # @param xmax [Numeric] Lower right edge of the rectangle
1370
1498
  # @param ymin [Numeric] Upper left edge of the rectangle
1371
1499
  # @param ymax [Numeric] Upper right edge of the rectangle
1372
- def fillrect(*)
1373
- super
1374
- end
1500
+ #
1501
+ # @!method fillrect
1375
1502
 
1376
1503
  # Draw a circular or elliptical arc covering the specified rectangle.
1504
+ #
1505
+ # The resulting arc begins at `a1` and ends at `a2` degrees. Angles are
1506
+ # interpreted such that 0 degrees is at the 3 o'clock position. The center
1507
+ # of the arc is the center of the given rectangle.
1508
+ #
1377
1509
  # @param xmin [Numeric] Lower left edge of the rectangle
1378
1510
  # @param xmax [Numeric] Lower right edge of the rectangle
1379
1511
  # @param ymin [Numeric] Upper left edge of the rectangle
1380
1512
  # @param ymax [Numeric] Upper right edge of the rectangle
1381
- # @param a1 [Numeric] The start angle
1382
- # @param a2 [Numeric] The end angle
1383
- # The resulting arc begins at `a1` and ends at `a2` degrees. Angles are interpreted
1384
- # such that 0 degrees is at the 3 o'clock position. The center of the arc is the center
1385
- # of the given rectangle.
1386
- def drawarc(*)
1387
- super
1388
- end
1513
+ # @param a1 [Numeric] The start angle
1514
+ # @param a2 [Numeric] The end angle
1515
+ #
1516
+ # @!method drawarc
1389
1517
 
1390
1518
  # Fill a circular or elliptical arc covering the specified rectangle.
1519
+ #
1520
+ # The resulting arc begins at `a1` and ends at `a2` degrees. Angles are
1521
+ # interpreted such that 0 degrees is at the 3 o'clock position. The center
1522
+ # of the arc is the center of the given rectangle.
1523
+ #
1391
1524
  # @param xmin [Numeric] Lower left edge of the rectangle
1392
1525
  # @param xmax [Numeric] Lower right edge of the rectangle
1393
1526
  # @param ymin [Numeric] Upper left edge of the rectangle
1394
1527
  # @param ymax [Numeric] Upper right edge of the rectangle
1395
1528
  # @param a1 [Numeric] The start angle
1396
1529
  # @param a2 [Numeric] The end angle
1397
- # The resulting arc begins at `a1` and ends at `a2` degrees. Angles are interpreted
1398
- # such that 0 degrees is at the 3 o'clock position. The center of the arc is the center
1399
- # of the given rectangle.
1400
- def fillarc(*)
1401
- super
1402
- end
1530
+ #
1531
+ # @!method fillarc
1403
1532
 
1404
- # Draw simple and compound outlines consisting of line segments and bezier curves.
1533
+ # Draw simple and compound outlines consisting of line segments and bezier
1534
+ # curves.
1535
+ #
1405
1536
  # @param points [Array, NArray] (N, 2) array of (x, y) vertices
1406
1537
  # @parm codes [Array, NArray] N-length array of path codes
1407
- # * STOP : end the entire path
1408
- # * MOVETO : move to the given vertex
1409
- # * LINETO : draw a line from the current position to the given vertex
1410
- # * CURVE3 : draw a quadratic Bézier curve
1411
- # * CURVE4 : draw a cubic Bézier curve
1538
+ # * STOP : end the entire path
1539
+ # * MOVETO : move to the given vertex
1540
+ # * LINETO : draw a line from the current position to the given vertex
1541
+ # * CURVE3 : draw a quadratic Bézier curve
1542
+ # * CURVE4 : draw a cubic Bézier curve
1412
1543
  # * CLOSEPOLY : draw a line segment to the start point of the current path
1413
- # @parm fill [Integer] A flag indication whether resulting path is to be filled or not
1544
+ # @parm fill [Integer]
1545
+ # A flag indication whether resulting path is to be filled or not
1546
+ #
1414
1547
  def drawpath(points, codes, fill)
1415
1548
  len = codes.length
1416
1549
  super(len, points, uint8(codes), fill)
1417
1550
  end
1418
1551
 
1419
1552
  # Set the arrow style to be used for subsequent arrow commands.
1553
+ #
1420
1554
  # @param style [Integer] The arrow style to be used
1421
1555
  # The default arrow style is 1.
1422
1556
  # * 1 : simple, single-ended
@@ -1438,29 +1572,30 @@ module GR
1438
1572
  # * 17 : double line, single-ended
1439
1573
  # * 18 : double line, double-ended
1440
1574
  # `setarrowstyle` defines the arrow style for subsequent arrow primitives.
1441
- def setarrowstyle(*)
1442
- super
1443
- end
1575
+ #
1576
+ # @!method setarrowstyle
1444
1577
 
1445
1578
  # Set the arrow size to be used for subsequent arrow commands.
1446
- # @param size [Numeric] The arrow size to be used
1579
+ #
1447
1580
  # `setarrowsize` defines the arrow size for subsequent arrow primitives.
1448
1581
  # The default arrow size is 1.
1449
- def setarrowsize(*)
1450
- super
1451
- end
1582
+ #
1583
+ # @param size [Numeric] The arrow size to be used
1584
+ #
1585
+ # @!method setarrowsize
1452
1586
 
1453
1587
  # Draw an arrow between two points.
1588
+ #
1589
+ # Different arrow styles (angles between arrow tail and wing, optionally
1590
+ # filled heads, double headed arrows) are available and can be set with the
1591
+ # `setarrowstyle` function.
1592
+ #
1454
1593
  # @param x1 [Numeric] Starting point of the arrow (tail)
1455
1594
  # @param y1 [Numeric] Starting point of the arrow (tail)
1456
1595
  # @param x2 [Numeric] Head of the arrow
1457
1596
  # @param y2 [Numeric] Head of the arrow
1458
- # Different arrow styles (angles between arrow tail and wing, optionally filled
1459
- # heads, double headed arrows) are available and can be set with the `setarrowstyle`
1460
- # function.
1461
- def drawarrow(*)
1462
- super
1463
- end
1597
+ #
1598
+ # @!method drawarrow
1464
1599
 
1465
1600
  # @return [Integer]
1466
1601
  def readimage(path)
@@ -1476,35 +1611,35 @@ module GR
1476
1611
  end
1477
1612
 
1478
1613
  # Draw an image into a given rectangular area.
1479
- # @param xmin [Numeric] First corner point of the rectangle
1480
- # @param ymin [Numeric] First corner point of the rectangle
1481
- # @param xmax [Numeric] Second corner point of the rectangle
1482
- # @param ymax [Numeric] Second corner point of the rectangle
1483
- # @param width [Integer] The width and the height of the image
1614
+ #
1615
+ # The points (`xmin`, `ymin`) and (`xmax`, `ymax`) are world coordinates
1616
+ # defining diagonally opposite corner points of a rectangle. This rectangle
1617
+ # is divided into `width` by `height` cells. The two-dimensional array `data`
1618
+ # specifies colors for each cell.
1619
+ #
1620
+ # @param xmin [Numeric] First corner point of the rectangle
1621
+ # @param ymin [Numeric] First corner point of the rectangle
1622
+ # @param xmax [Numeric] Second corner point of the rectangle
1623
+ # @param ymax [Numeric] Second corner point of the rectangle
1624
+ # @param width [Integer] The width and the height of the image
1484
1625
  # @param height [Integer] The width and the height of the image
1485
- # @param data [Array, NArray] An array of color values dimensioned `width` by `height`
1486
- # @param model [Integer] Color model ( default = 0 )
1626
+ # @param data [Array, NArray] An array of color values dimensioned `width` by `height`
1627
+ # @param model [Integer] Color model ( default = 0 )
1487
1628
  # The available color models are:
1488
- # * 0 : MODEL_RGB
1489
- # * AABBGGRR
1490
- # * 1 : MODEL_HSV
1491
- # * AAVVSSHH
1492
- # The points (`xmin`, `ymin`) and (`xmax`, `ymax`) are world coordinates defining
1493
- # diagonally opposite corner points of a rectangle. This rectangle is divided into
1494
- # `width` by `height` cells. The two-dimensional array `data` specifies colors
1495
- # for each cell.
1629
+ # * 0 : MODEL_RGB - AABBGGRR
1630
+ # * 1 : MODEL_HSV - AAVVSSHH
1631
+ #
1496
1632
  def drawimage(xmin, xmax, ymin, ymax, width, height, data, model = 0)
1497
1633
  super(xmin, xmax, ymin, ymax, width, height, uint(data), model)
1498
1634
  end
1499
1635
 
1500
1636
  # @return [Integer]
1501
- def importgraphics(*)
1502
- super
1503
- end
1637
+ # @!method importgraphics
1504
1638
 
1505
- # `setshadow` allows drawing of shadows, realized by images painted underneath,
1506
- # and offset from, graphics objects such that the shadow mimics the effect of a light
1507
- # source cast on the graphics objects.
1639
+ # `setshadow` allows drawing of shadows, realized by images painted
1640
+ # underneath, and offset from, graphics objects such that the shadow mimics
1641
+ # the effect of a light source cast on the graphics objects.
1642
+ #
1508
1643
  # @param offsetx [Numeric]
1509
1644
  # An x-offset, which specifies how far in the horizontal direction the
1510
1645
  # shadow is offset from the object
@@ -1513,18 +1648,19 @@ module GR
1513
1648
  # is offset from the object
1514
1649
  # @param blur [Numeric]
1515
1650
  # A blur value, which specifies whether the object has a hard or a diffuse edge
1516
- def setshadow(*)
1517
- super
1518
- end
1651
+ #
1652
+ # @!method setshadow
1519
1653
 
1520
1654
  # Set the value of the alpha component associated with GR colors.
1655
+ #
1521
1656
  # @param alpha [Numeric] An alpha value (0.0 - 1.0)
1522
- def settransparency(*)
1523
- super
1524
- end
1657
+ #
1658
+ # @!method settransparency
1525
1659
 
1526
1660
  # Change the coordinate transformation according to the given matrix.
1661
+ #
1527
1662
  # @param mat [Array, NArray] 2D transformation matrix
1663
+ #
1528
1664
  def setcoordxform(mat)
1529
1665
  raise if mat.size != 6
1530
1666
 
@@ -1532,17 +1668,15 @@ module GR
1532
1668
  end
1533
1669
 
1534
1670
  # Open a file for graphics output.
1671
+ #
1535
1672
  # @param path [String] Filename for the graphics file.
1536
- # `begingraphics` allows to write all graphics output into a XML-formatted file until
1537
- # the `endgraphics` functions is called. The resulting file may later be imported with
1538
- # the `importgraphics` function.
1539
- def begingraphics(*)
1540
- super
1541
- end
1673
+ # `begingraphics` allows to write all graphics output into a XML-formatted
1674
+ # file until the `endgraphics` functions is called. The resulting file may
1675
+ # later be imported with the `importgraphics` function.
1676
+ #
1677
+ # @!method begingraphics
1542
1678
 
1543
- def endgraphics(*)
1544
- super
1545
- end
1679
+ # @!method endgraphics
1546
1680
 
1547
1681
  # @return [String]
1548
1682
  def getgraphics(*)
@@ -1550,18 +1684,16 @@ module GR
1550
1684
  end
1551
1685
 
1552
1686
  # @return [Integer]
1553
- def drawgraphics(*)
1554
- super
1555
- end
1687
+ # @!method drawgraphics
1556
1688
 
1557
- # Generate a character string starting at the given location. Strings can be defined
1558
- # to create mathematical symbols and Greek letters using LaTeX syntax.
1559
- # @param x [Numeric] Position of the text string specified in world coordinates
1560
- # @param y [Numeric] Position of the text string specified in world coordinates
1689
+ # Generate a character string starting at the given location. Strings can be
1690
+ # defined to create mathematical symbols and Greek letters using LaTeX syntax.
1691
+ #
1692
+ # @param x [Numeric] X coordinate of the starting position of the text string
1693
+ # @param y [Numeric] Y coordinate of the starting position of the text string
1561
1694
  # @param string [String] The text string to be drawn
1562
- def mathtex(*)
1563
- super
1564
- end
1695
+ #
1696
+ # @!method mathtex
1565
1697
 
1566
1698
  # inqmathtex
1567
1699
  def inqmathtex(x, y, string)
@@ -1570,21 +1702,13 @@ module GR
1570
1702
  end
1571
1703
  end
1572
1704
 
1573
- def beginselection(*)
1574
- super
1575
- end
1705
+ # @!method beginselection
1576
1706
 
1577
- def endselection(*)
1578
- super
1579
- end
1707
+ # @!method endselection
1580
1708
 
1581
- def moveselection(*)
1582
- super
1583
- end
1709
+ # @!method moveselection
1584
1710
 
1585
- def resizeselection(*)
1586
- super
1587
- end
1711
+ # @!method resizeselection
1588
1712
 
1589
1713
  def inqbbox
1590
1714
  inquiry %i[double double double double] do |*pts|
@@ -1593,39 +1717,23 @@ module GR
1593
1717
  end
1594
1718
 
1595
1719
  # @return [Numeric]
1596
- def precision(*)
1597
- super
1598
- end
1720
+ # @!method precision
1599
1721
 
1600
- def setregenflags(*)
1601
- super
1602
- end
1722
+ # @!method setregenflags
1603
1723
 
1604
1724
  # @return [Integer]
1605
- def inqregenflags(*)
1606
- super
1607
- end
1725
+ # @!method inqregenflags
1608
1726
 
1609
- def savestate(*)
1610
- super
1611
- end
1727
+ # @!method savestate
1612
1728
 
1613
- def restorestate(*)
1614
- super
1615
- end
1729
+ # @!method restorestate
1616
1730
 
1617
- def selectcontext(*)
1618
- super
1619
- end
1731
+ # @!method selectcontext
1620
1732
 
1621
- def destroycontext(*)
1622
- super
1623
- end
1733
+ # @!method destroycontext
1624
1734
 
1625
1735
  # @return [Integer]
1626
- def uselinespec(*)
1627
- super
1628
- end
1736
+ # @!method uselinespec
1629
1737
 
1630
1738
  def delaunay(x, y)
1631
1739
  # Feel free to make a pull request if you catch a mistake
@@ -1648,6 +1756,11 @@ module GR
1648
1756
  end
1649
1757
 
1650
1758
  # Reduces the number of points of the x and y array.
1759
+ #
1760
+ # @param n [Integer] The requested number of points
1761
+ # @param x [Array, NArray] The x value array
1762
+ # @param y [Array, NArray] The y value array
1763
+ #
1651
1764
  def reducepoints(xd, yd, n)
1652
1765
  nd = equal_length(xd, yd)
1653
1766
  inquiry [{ double: n }, { double: n }] do |x, y|
@@ -1657,9 +1770,11 @@ module GR
1657
1770
  end
1658
1771
 
1659
1772
  # Draw a triangular surface plot for the given data points.
1773
+ #
1660
1774
  # @param x [Array, NArray] A list containing the X coordinates
1661
1775
  # @param y [Array, NArray] A list containing the Y coordinates
1662
1776
  # @param z [Array, NArray] A list containing the Z coordinates
1777
+ #
1663
1778
  def trisurface(x, y, z)
1664
1779
  n = [x, y, z].map(&:length).min
1665
1780
  super(n, x, y, z)
@@ -1676,6 +1791,7 @@ module GR
1676
1791
  end
1677
1792
 
1678
1793
  # Draw a quiver plot on a grid of nx*ny points.
1794
+ #
1679
1795
  # @param nx [Integer] The number of points along the x-axis of the grid
1680
1796
  # @param ny [Integer] The number of points along the y-axis of the grid
1681
1797
  # @param x [Array, NArray] A list containing the X coordinates
@@ -1685,7 +1801,9 @@ module GR
1685
1801
  # @param color [Integer]
1686
1802
  # A bool to indicate whether or not the arrows should be colored using
1687
1803
  # the current colormap
1804
+ #
1688
1805
  # The values for `x` and `y` are in world coordinates.
1806
+ #
1689
1807
  def quiver(x, y, u, v, color)
1690
1808
  # TODO: check: Arrays have incorrect length or dimension.
1691
1809
  nx = x.length
@@ -1697,22 +1815,20 @@ module GR
1697
1815
  # input points are located on a grid, described by `x`, `y` and `z`.
1698
1816
  # The target grid ist described by `xq` and `yq`.
1699
1817
  # Returns an array containing the resulting z-values.
1700
- # @param x [Array, NArray] Array containing the input grid's x-values
1701
- # @param y [Array, NArray] Array containing the input grid's y-values
1702
- # @param z [Array, NArray] Array containing the input grid's z-values (number of values: nx * ny)
1818
+ #
1819
+ # @param x [Array, NArray] Array containing the input grid's x-values
1820
+ # @param y [Array, NArray] Array containing the input grid's y-values
1821
+ # @param z [Array, NArray] Array containing the input grid's z-values (number of values: nx * ny)
1703
1822
  # @param xq [Array, NArray] Array containing the target grid's x-values
1704
1823
  # @param yq [Array, NArray] Array containing the target grid's y-values
1705
1824
  # @param method [Integer] Used method for interpolation
1706
1825
  # The available methods for interpolation are the following:
1707
- # * 0 : INTERP2_NEAREST
1708
- # * Nearest neighbour interpolation
1709
- # * 1 : INTERP2_LINEAR
1710
- # * Linear interpolation
1711
- # * 2 : INTERP_2_SPLINE
1712
- # * Interpolation using natural cubic splines
1713
- # * 3 : INTERP2_CUBIC
1714
- # * Cubic interpolation
1826
+ # * 0 : INTERP2_NEAREST - Nearest neighbour interpolation
1827
+ # * 1 : INTERP2_LINEAR - Linear interpolation
1828
+ # * 2 : INTERP_2_SPLINE - Interpolation using natural cubic splines
1829
+ # * 3 : INTERP2_CUBIC - Cubic interpolation
1715
1830
  # @param extrapval [Numeric] The extrapolation value
1831
+ #
1716
1832
  def interp2(x, y, z, xq, yq, method, extrapval) # flatten
1717
1833
  nx = x.length
1718
1834
  ny = y.length
@@ -1725,34 +1841,34 @@ module GR
1725
1841
  end
1726
1842
 
1727
1843
  # Returns the combined version strings of the GR runtime.
1844
+ #
1728
1845
  # @return [String]
1729
1846
  def version
1730
1847
  super.to_s
1731
1848
  end
1732
1849
 
1733
- def shade(*)
1734
- super
1735
- end
1850
+ # @note `hexbin` is overwritten by `require gr/plot`.
1851
+ # The original method is moved to the underscored name.
1852
+ # The yard document will show the method name after evacuation.
1853
+ #
1854
+ # @!method shade
1736
1855
 
1737
1856
  # Display a point set as a aggregated and rasterized image.
1738
- # @param x [Array, NArray] A pointer to the X coordinates
1739
- # @param y [Array, NArray] A pointer to the Y coordinates
1740
- # @param dims [Array, NArray] The size of the grid used for rasterization
1741
- # @param xform [Integer] The transformation type used for color mapping
1742
- # The available transformation types are:
1743
- # * 0 : XFORM_BOOLEAN
1744
- # * boolean
1745
- # * 1 : XFORM_LINEAR
1746
- # * linear
1747
- # * 2 : XFORM_LOG
1748
- # * logarithmic
1749
- # * 3 : XFORM_LOGLOG
1750
- # * double logarithmic
1751
- # * 4 : XFORM_CUBIC
1752
- # * cubic
1753
- # * 5 : XFORM_EQUALIZED
1754
- # * histogram equalized
1857
+ #
1755
1858
  # The values for `x` and `y` are in world coordinates.
1859
+ #
1860
+ # @param x [Array, NArray] A pointer to the X coordinates
1861
+ # @param y [Array, NArray] A pointer to the Y coordinates
1862
+ # @param dims [Array, NArray] The size of the grid used for rasterization
1863
+ # @param xform [Integer] The transformation type used for color mapping
1864
+ # The available transformation types are:
1865
+ # * 0 : XFORM_BOOLEAN - boolean
1866
+ # * 1 : XFORM_LINEAR - linear
1867
+ # * 2 : XFORM_LOG - logarithmic
1868
+ # * 3 : XFORM_LOGLOG - double logarithmic
1869
+ # * 4 : XFORM_CUBIC - cubic
1870
+ # * 5 : XFORM_EQUALIZED - histogram equalized
1871
+ #
1756
1872
  def shadepoints(x, y, dims: [1200, 1200], xform: 1)
1757
1873
  n = x.length
1758
1874
  w, h = dims
@@ -1760,31 +1876,34 @@ module GR
1760
1876
  end
1761
1877
 
1762
1878
  # Display a line set as an aggregated and rasterized image.
1763
- # @param x [Array, NArray] A pointer to the X coordinates
1764
- # @param y [Array, NArray] A pointer to the Y coordinates
1765
- # @param dims [Array, NArray] The size of the grid used for rasterization
1766
- # @param xform [Integer] The transformation type used for color mapping
1767
- # The available transformation types are:
1768
- # * 0 : XFORM_BOOLEAN
1769
- # * boolean
1770
- # * 1 : XFORM_LINEAR
1771
- # * linear
1772
- # * 2 : XFORM_LOG
1773
- # * logarithmic
1774
- # * 3 : XFORM_LOGLOG
1775
- # * double logarithmic
1776
- # * 4 : XFORM_CUBIC
1777
- # * cubic
1778
- # * 5 : XFORM_EQUALIZED
1779
- # * histogram equalized
1879
+ #
1780
1880
  # The values for `x` and `y` are in world coordinates.
1781
1881
  # NaN values can be used to separate the point set into line segments.
1882
+ #
1883
+ # @param x [Array, NArray] A pointer to the X coordinates
1884
+ # @param y [Array, NArray] A pointer to the Y coordinates
1885
+ # @param dims [Array, NArray] The size of the grid used for rasterization
1886
+ # @param xform [Integer] The transformation type used for color mapping
1887
+ # The available transformation types are:
1888
+ # * 0 : XFORM_BOOLEAN - boolean
1889
+ # * 1 : XFORM_LINEAR - linear
1890
+ # * 2 : XFORM_LOG - logarithmic
1891
+ # * 3 : XFORM_LOGLOG - double logarithmic
1892
+ # * 4 : XFORM_CUBIC - cubic
1893
+ # * 5 : XFORM_EQUALIZED - histogram equalized
1894
+ #
1782
1895
  def shadelines(x, y, dims: [1200, 1200], xform: 1)
1783
1896
  n = x.length
1784
1897
  w, h = dims
1785
1898
  super(n, x, y, xform, w, h)
1786
1899
  end
1787
1900
 
1901
+ # @note This method uses GRCommons::Fiddley::Function as a callback function.
1902
+ # Please read the source code If you have to use it.
1903
+ # This method is not sure if it works properly.
1904
+ #
1905
+ # @!method findboundary
1906
+
1788
1907
  # panzoom
1789
1908
  def panzoom(x, y, zoom)
1790
1909
  inquiry %i[double double double double] do |xmin, xmax, ymin, ymax|
@@ -1792,7 +1911,8 @@ module GR
1792
1911
  end
1793
1912
  end
1794
1913
 
1795
- # Set the resample method used for gr.drawimage().
1914
+ # Set the resample method used for `drawimage`.
1915
+ #
1796
1916
  # @param resample_method [Integer] the new resample method.
1797
1917
  # The available options are:
1798
1918
  # * 0x00000000 : RESAMPLE_DEFAULT
@@ -1803,7 +1923,8 @@ module GR
1803
1923
  # * linear
1804
1924
  # * 0x03030303 : RESAMPLE_LANCZOS
1805
1925
  # * Lanczos
1806
- # Alternatively, combinations of these methods can be selected for horizontal or vertical upsampling or downsampling:
1926
+ # Alternatively, combinations of these methods can be selected for
1927
+ # horizontal or vertical upsampling or downsampling:
1807
1928
  # * 0x00000000 : UPSAMPLE_VERTICAL_DEFAULT
1808
1929
  # * default for vertical upsampling
1809
1930
  # * 0x00000000 : UPSAMPLE_HORIZONTAL_DEFAULT
@@ -1836,11 +1957,12 @@ module GR
1836
1957
  # * lanczos for vertical downsampling
1837
1958
  # * 0x03000000 : DOWNSAMPLE_HORIZONTAL_LANCZOS
1838
1959
  # * lanczos for horizontal downsampling
1839
- def setresamplemethod(*)
1840
- super
1841
- end
1960
+ #
1961
+ # @!method setresamplemethod
1842
1962
 
1843
- # Inquire the resample method used for gr.drawimage().
1963
+ # Inquire the resample method used for `drawimage`
1964
+ #
1965
+ # @return [Integer] Resample flag
1844
1966
  def inqresamplemethod
1845
1967
  inquiry_uint do |resample_method|
1846
1968
  super(resample_method)
@@ -1848,6 +1970,7 @@ module GR
1848
1970
  end
1849
1971
 
1850
1972
  # Draw paths using the given vertices and path codes.
1973
+ #
1851
1974
  # @param x [Array, NArray] A list containing the X coordinates
1852
1975
  # @param y [Array, NArray] A list containing the Y coordinates
1853
1976
  # @param codes [String] A list containing the path codes
@@ -1872,128 +1995,133 @@ module GR
1872
1995
  # * close path and fill -
1873
1996
  # * F
1874
1997
  # * close path, fill and stroke -
1998
+ #
1875
1999
  # See https://gr-framework.org/python-gr.html#gr.path for more details.
2000
+ #
1876
2001
  def path(x, y, codes)
1877
2002
  n = equal_length(x, y)
1878
2003
  super(n, x, y, codes)
1879
2004
  end
1880
2005
 
1881
2006
  # Define the border width of subsequent path output primitives.
2007
+ #
1882
2008
  # @param width [Numeric] The border width scale factor
1883
- def setborderwidth(*)
1884
- super
1885
- end
2009
+ #
2010
+ # @!method setborderwidth
1886
2011
 
1887
2012
  def inqborderwidth
1888
2013
  inquiry_double { |pt| super(pt) }
1889
2014
  end
1890
2015
 
1891
2016
  # Define the color of subsequent path output primitives.
2017
+ #
1892
2018
  # @param color [Integer] The border color index (COLOR < 1256)
1893
- def setbordercolorind(*)
1894
- super
1895
- end
2019
+ #
2020
+ # @!method setbordercolorind
1896
2021
 
1897
2022
  def inqbordercolorind
1898
2023
  inquiry_int { |pt| super(pt) }
1899
2024
  end
1900
2025
 
1901
2026
  # Set the projection type with this flag.
2027
+ #
1902
2028
  # @param flag [Integer] projection type
1903
2029
  # The available options are:
1904
- # * 0 : GR_PROJECTION_DEFAULT
1905
- # * default
1906
- # * 1 : GR_PROJECTION_ORTHOGRAPHIC
1907
- # * orthographic
1908
- # * 2 : GR_PROJECTION_PERSPECTIVE
1909
- # * perspective
1910
- def setprojectiontype(*)
1911
- super
1912
- end
2030
+ # * 0 : GR_PROJECTION_DEFAULT - default
2031
+ # * 1 : GR_PROJECTION_ORTHOGRAPHIC - orthographic
2032
+ # * 2 : GR_PROJECTION_PERSPECTIVE - perspective
2033
+ #
2034
+ # @!method setprojectiontype
1913
2035
 
1914
2036
  # Return the projection type.
1915
2037
  def inqprojectiontype
1916
2038
  inquiry_int { |pt| super(pt) }
1917
2039
  end
1918
2040
 
2041
+ # Set the far and near clipping plane for perspective projection and the
2042
+ # vertical field ov view.
2043
+ # Switches projection type to perspective.
2044
+ #
2045
+ # @param near_plane [Numeric] distance to near clipping plane
2046
+ # @param far_plane [Numeric] distance to far clipping plane
2047
+ # @param fov [Numeric] vertical field of view,
2048
+ # input must be between 0 and 180 degrees
2049
+ #
2050
+ # @!method setperspectiveprojection
2051
+
2052
+ # Return the parameters for the perspective projection.
2053
+ def inqperspectiveprojection
2054
+ inquiry %i[double double double] do |*pts|
2055
+ super(*pts)
2056
+ end
2057
+ end
2058
+
1919
2059
  # Method to set the camera position, the upward facing direction and the
1920
2060
  # focus point of the shown volume.
1921
- # @param camera_pos_x [Numeric] x component of the cameraposition in world coordinates
1922
- # @param camera_pos_y [Numeric] y component of the cameraposition in world coordinates
1923
- # @param camera_pos_z [Numeric] z component of the cameraposition in world coordinates
1924
- # @param up_x [Numeric] x component of the up vector
1925
- # @param up_y [Numeric] y component of the up vector
1926
- # @param up_z [Numeric] z component of the up vector
2061
+ #
2062
+ # @param camera_pos_x [Numeric] x component of the cameraposition in world coordinates
2063
+ # @param camera_pos_y [Numeric] y component of the cameraposition in world coordinates
2064
+ # @param camera_pos_z [Numeric] z component of the cameraposition in world coordinates
2065
+ # @param up_x [Numeric] x component of the up vector
2066
+ # @param up_y [Numeric] y component of the up vector
2067
+ # @param up_z [Numeric] z component of the up vector
1927
2068
  # @param focus_point_x [Numeric] x component of focus-point inside volume
1928
2069
  # @param focus_point_y [Numeric] y component of focus-point inside volume
1929
2070
  # @param focus_point_z [Numeric] z component of focus-point inside volume
1930
- def settransformationparameters(*)
1931
- super
1932
- end
2071
+ #
2072
+ # @!method settransformationparameters
1933
2073
 
1934
2074
  # Return the camera position, up vector and focus point.
2075
+ #
1935
2076
  def inqtransformationparameters
1936
2077
  inquiry([:double] * 9) do |*pts|
1937
2078
  super(*pts)
1938
2079
  end
1939
2080
  end
1940
2081
 
1941
- # Set the far and near clipping plane for perspective projection and the
1942
- # vertical field ov view.
1943
- # Switches projection type to perspective.
1944
- # @param near_plane [Numeric] distance to near clipping plane
1945
- # @param far_plane [Numeric] distance to far clipping plane
1946
- # @param fov [Numeric] vertical field of view, input must be between 0 and 180 degrees
1947
- def setperspectiveprojection(*)
1948
- super
1949
- end
1950
-
1951
- # Return the parameters for the perspective projection.
1952
- def inqperspectiveprojection
1953
- inquiry %i[double double double] do |*pts|
1954
- super(*pts)
1955
- end
1956
- end
1957
-
1958
2082
  # Set parameters for orthographic transformation.
1959
2083
  # Switches projection type to orthographic.
1960
- # @param left [Numeric] xmin of the volume in worldcoordinates
1961
- # @param right [Numeric] xmax of volume in worldcoordinates
1962
- # @param bottom [Numeric] ymin of volume in worldcoordinates
1963
- # @param top [Numeric] ymax of volume in worldcoordinates
2084
+ #
2085
+ # @param left [Numeric] xmin of the volume in worldcoordinates
2086
+ # @param right [Numeric] xmax of volume in worldcoordinates
2087
+ # @param bottom [Numeric] ymin of volume in worldcoordinates
2088
+ # @param top [Numeric] ymax of volume in worldcoordinates
1964
2089
  # @param near_plane [Numeric] distance to near clipping plane
1965
- # @param far_plane [Numeric] distance to far clipping plane
1966
- def setorthographicprojection(*)
1967
- super
1968
- end
2090
+ # @param far_plane [Numeric] distance to far clipping plane
2091
+ #
2092
+ # @!method setorthographicprojection
1969
2093
 
1970
2094
  # Return the camera position, up vector and focus point.
2095
+ #
1971
2096
  def inqorthographicprojection
1972
2097
  inquiry([:double] * 6) do |*pts|
1973
2098
  super(*pts)
1974
2099
  end
1975
2100
  end
1976
2101
 
1977
- # Interface for interaction with the rotation of the model.
1978
- # For this a virtual Arcball is used.
2102
+ # Rotate the current scene according to a virtual arcball.
2103
+ #
2104
+ # This function requires values between 0 (left side or bottom of the drawing
2105
+ # area) and 1 (right side or top of the drawing area).
2106
+ #
1979
2107
  # @param start_mouse_pos_x [Numeric] x component of the start mouse position
1980
2108
  # @param start_mouse_pos_y [Numeric] y component of the start mouse position
1981
- # @param end_mouse_pos_x [Numeric] x component of the end mouse position
1982
- # @param end_mouse_pos_y [Numeric] y component of the end mouse position
1983
- def camerainteraction(*)
1984
- super
1985
- end
2109
+ # @param end_mouse_pos_x [Numeric] x component of the end mouse position
2110
+ # @param end_mouse_pos_y [Numeric] y component of the end mouse position
2111
+ #
2112
+ # @!method camerainteraction
1986
2113
 
1987
- # Set the three dimensional window. Only used for perspective and orthographic projection.
2114
+ # Set the three dimensional window.
2115
+ # Only used for perspective and orthographic projection.
2116
+ #
1988
2117
  # @param xmin [Numeric] min x-value
1989
2118
  # @param xmax [Numeric] max x-value
1990
2119
  # @param ymin [Numeric] min y-value
1991
2120
  # @param ymax [Numeric] max y-value
1992
2121
  # @param zmin [Numeric] min z-value
1993
2122
  # @param zmax [Numeric] max z-value
1994
- def setwindow3d(*)
1995
- super
1996
- end
2123
+ #
2124
+ # @!method setwindow3d
1997
2125
 
1998
2126
  # Return the three dimensional window.
1999
2127
  def inqwindow3d
@@ -2003,15 +2131,16 @@ module GR
2003
2131
  end
2004
2132
 
2005
2133
  # Set the scale factor for each axis. A one means no scale.
2006
- # All factor have to be != 0.
2134
+ # The scaling factors must not be zero. .
2135
+ #
2007
2136
  # @param x_axis_scale [Numeric] factor for scaling the x-axis
2008
2137
  # @param y_axis_scale [Numeric] factor for scaling the y-axis
2009
2138
  # @param z_axis_scale [Numeric] factor for scaling the z-axis
2010
- def setscalefactors3d(*)
2011
- super
2012
- end
2139
+ #
2140
+ # @!method setscalefactors3d
2013
2141
 
2014
2142
  # Returns the scale factors for each axis.
2143
+ #
2015
2144
  def inqscalefactors3d
2016
2145
  inquiry %i[double double double] do |*opts|
2017
2146
  super(*opts)
@@ -2019,24 +2148,23 @@ module GR
2019
2148
  end
2020
2149
 
2021
2150
  # Set the camera for orthographic or perspective projection.
2151
+ #
2022
2152
  # The center of the 3d window is used as the focus point and the camera is
2023
2153
  # positioned relative to it, using camera distance, rotation and tilt similar
2024
- # to gr_setspace. This function can be used if the user prefers spherical
2154
+ # to `setspace`. This function can be used if the user prefers spherical
2025
2155
  # coordinates to setting the camera position directly, but has reduced
2026
2156
  # functionality in comparison to GR.settransformationparameters,
2027
2157
  # GR.setperspectiveprojection and GR.setorthographicprojection.
2158
+ #
2028
2159
  # @param phi [Numeric] azimuthal angle of the spherical coordinates
2029
2160
  # @param theta [Numeric] polar angle of the spherical coordinates
2030
2161
  # @param fov [Numeric] vertical field of view (0 or NaN for orthographic projection)
2031
2162
  # @param camera_distance [Numeric] distance between the camera and the focus point
2032
2163
  # (0 or NaN for the radius of the object's smallest bounding sphere)
2033
- def setspace3d(*)
2034
- super
2035
- end
2164
+ #
2165
+ # @!method setspace3d
2036
2166
 
2037
- def text3d(*)
2038
- super
2039
- end
2167
+ # @!method text3d
2040
2168
 
2041
2169
  def inqtext3d(x, y, z, string, axis)
2042
2170
  inquiry [{ double: 16 }, { double: 16 }] do |tbx, tby|
@@ -2044,9 +2172,7 @@ module GR
2044
2172
  end
2045
2173
  end
2046
2174
 
2047
- def settextencoding(*)
2048
- super
2049
- end
2175
+ # @!method settextencoding
2050
2176
 
2051
2177
  def inqtextencoding
2052
2178
  inquiry_int do |encoding|