ruby-gr 0.0.23 → 0.0.24

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 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|