ruby-gr 0.0.20 → 0.0.25

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