Module: GR
- Extended by:
- GRCommons::GRCommonUtils, GRCommons::JupyterSupport
- Defined in:
- lib/gr.rb,
lib/gr/ffi.rb,
lib/gr/grbase.rb,
lib/gr/version.rb,
lib/gr_commons/gr_logger.rb
Overview
OverView of GR.rb
-------------------- --------------------
| GR module | | GR3 module |
| ---------------- | | ---------------- |
| | GR::FFI | | | | GR3::FFI | |
| | + libGR.so | | | | + libGR3.so | |
| ---------------- | | ---------------- |
| | define_method | | | define_method |
| ---------------- | | ---------------- |
| | | GR::GRBase | | | | | GR3::GR3Base | |
| | v (Pri^ate) | | | | v (Pri^ate) | |
| +++--------------+ | | +++--------------+ |
| | Extend | | | Extend |
| v | | v ------- |
| ----------- | | | Check | |
| | GR::Plot | | | <--+ Error | |
| ----------- | | ------- |
-------------------- +----------+---------+
^ ^
| ------------------ |
Extend | | GRCommons module | | Extend
| | -------------- | |
| | | Fiddley | | |
| | -------------- | |
| | -------------- | |
---- CommonUtils ----
| | -------------- | |
| | -------------- | |
---- Version ----
| | -------------- |
| | -------------- |
+----+JupyterSupport| |
| -------------- |
------------------
(You can edit the above AA diagram with http://asciiflow.com/)
Fiddley is Ruby-FFI compatible API layer for Fiddle.
The GR module works without Numo::NArray. GR3 and GR::Plot depends on numo-narray.
This is a procedural interface to the GR plotting library, https://github.com/sciapp/gr
Defined Under Namespace
Modules: FFI Classes: Error, GRAxis, GRTick, GRTickLabel, NotFoundError
Constant Summary collapse
- ASF_BUNDLED =
0- ASF_INDIVIDUAL =
1- NOCLIP =
0- CLIP =
1- COORDINATES_WC =
0- COORDINATES_NDC =
1- INTSTYLE_HOLLOW =
0- INTSTYLE_SOLID =
1- INTSTYLE_PATTERN =
2- INTSTYLE_HATCH =
3- TEXT_HALIGN_NORMAL =
0- TEXT_HALIGN_LEFT =
1- TEXT_HALIGN_CENTER =
2- TEXT_HALIGN_RIGHT =
3- TEXT_VALIGN_NORMAL =
0- TEXT_VALIGN_TOP =
1- TEXT_VALIGN_CAP =
2- TEXT_VALIGN_HALF =
3- TEXT_VALIGN_BASE =
4- TEXT_VALIGN_BOTTOM =
5- TEXT_PATH_RIGHT =
0- TEXT_PATH_LEFT =
1- TEXT_PATH_UP =
2- TEXT_PATH_DOWN =
3- TEXT_PRECISION_STRING =
0- TEXT_PRECISION_CHAR =
1- TEXT_PRECISION_STROKE =
2- LINETYPE_SOLID =
1- LINETYPE_DASHED =
2- LINETYPE_DOTTED =
3- LINETYPE_DASHED_DOTTED =
4- LINETYPE_DASH_2_DOT =
-1
- LINETYPE_DASH_3_DOT =
-2
- LINETYPE_LONG_DASH =
-3
- LINETYPE_LONG_SHORT_DASH =
-4
- LINETYPE_SPACED_DASH =
-5
- LINETYPE_SPACED_DOT =
-6
- LINETYPE_DOUBLE_DOT =
-7
- LINETYPE_TRIPLE_DOT =
-8
- MARKERTYPE_DOT =
1- MARKERTYPE_PLUS =
2- MARKERTYPE_ASTERISK =
3- MARKERTYPE_CIRCLE =
4- MARKERTYPE_DIAGONAL_CROSS =
5- MARKERTYPE_SOLID_CIRCLE =
-1
- MARKERTYPE_TRIANGLE_UP =
-2
- MARKERTYPE_SOLID_TRI_UP =
-3
- MARKERTYPE_TRIANGLE_DOWN =
-4
- MARKERTYPE_SOLID_TRI_DOWN =
-5
- MARKERTYPE_SQUARE =
-6
- MARKERTYPE_SOLID_SQUARE =
-7
- MARKERTYPE_BOWTIE =
-8
- MARKERTYPE_SOLID_BOWTIE =
-9
- MARKERTYPE_HOURGLASS =
-10
- MARKERTYPE_SOLID_HGLASS =
-11
- MARKERTYPE_DIAMOND =
-12
- MARKERTYPE_SOLID_DIAMOND =
-13
- MARKERTYPE_STAR =
-14
- MARKERTYPE_SOLID_STAR =
-15
- MARKERTYPE_TRI_UP_DOWN =
-16
- MARKERTYPE_SOLID_TRI_RIGHT =
-17
- MARKERTYPE_SOLID_TRI_LEFT =
-18
- MARKERTYPE_HOLLOW_PLUS =
-19
- MARKERTYPE_SOLID_PLUS =
-20
- MARKERTYPE_PENTAGON =
-21
- MARKERTYPE_HEXAGON =
-22
- MARKERTYPE_HEPTAGON =
-23
- MARKERTYPE_OCTAGON =
-24
- MARKERTYPE_STAR_4 =
-25
- MARKERTYPE_STAR_5 =
-26
- MARKERTYPE_STAR_6 =
-27
- MARKERTYPE_STAR_7 =
-28
- MARKERTYPE_STAR_8 =
-29
- MARKERTYPE_VLINE =
-30
- MARKERTYPE_HLINE =
-31
- MARKERTYPE_OMARK =
-32
- AXES_SIMPLE_AXES =
1- AXES_TWIN_AXES =
2- AXES_WITH_GRID =
4- REGION_RECTANGLE =
0- REGION_ELLIPSE =
1- OPTION_X_LOG =
1- OPTION_Y_LOG =
2- OPTION_Z_LOG =
4- OPTION_FLIP_X =
8- OPTION_FLIP_Y =
16- OPTION_FLIP_Z =
32- OPTION_X_LOG2 =
64- OPTION_Y_LOG2 =
128- OPTION_Z_LOG2 =
256- OPTION_X_LN =
512- OPTION_Y_LN =
1024- OPTION_Z_LN =
2048- SPEC_LINE =
1- SPEC_MARKER =
2- SPEC_COLOR =
4- OPTION_LINES =
0- OPTION_MESH =
1- OPTION_FILLED_MESH =
2- OPTION_Z_SHADED_MESH =
3- OPTION_COLORED_MESH =
4- OPTION_CELL_ARRAY =
5- OPTION_SHADED_MESH =
6- OPTION_3D_MESH =
7- MODEL_RGB =
0- MODEL_HSV =
1- COLORMAP_UNIFORM =
0- COLORMAP_TEMPERATURE =
1- COLORMAP_GRAYSCALE =
2- COLORMAP_GLOWING =
3- COLORMAP_RAINBOWLIKE =
4- COLORMAP_GEOLOGIC =
5- COLORMAP_GREENSCALE =
6- COLORMAP_CYANSCALE =
7- COLORMAP_BLUESCALE =
8- COLORMAP_MAGENTASCALE =
9- COLORMAP_REDSCALE =
10- COLORMAP_FLAME =
11- COLORMAP_BROWNSCALE =
12- COLORMAP_PILATUS =
13- COLORMAP_AUTUMN =
14- COLORMAP_BONE =
15- COLORMAP_COOL =
16- COLORMAP_COPPER =
17- COLORMAP_GRAY =
18- COLORMAP_HOT =
19- COLORMAP_HSV =
20- COLORMAP_JET =
21- COLORMAP_PINK =
22- COLORMAP_SPECTRAL =
23- COLORMAP_SPRING =
24- COLORMAP_SUMMER =
25- COLORMAP_WINTER =
26- COLORMAP_GIST_EARTH =
27- COLORMAP_GIST_HEAT =
28- COLORMAP_GIST_NCAR =
29- COLORMAP_GIST_RAINBOW =
30- COLORMAP_GIST_STERN =
31- COLORMAP_AFMHOT =
32- COLORMAP_BRG =
33- COLORMAP_BWR =
34- COLORMAP_COOLWARM =
35- COLORMAP_CMRMAP =
36- COLORMAP_CUBEHELIX =
37- COLORMAP_GNUPLOT =
38- COLORMAP_GNUPLOT2 =
39- COLORMAP_OCEAN =
40- COLORMAP_RAINBOW =
41- COLORMAP_SEISMIC =
42- COLORMAP_TERRAIN =
43- COLORMAP_VIRIDIS =
44- COLORMAP_INFERNO =
45- COLORMAP_PLASMA =
46- COLORMAP_MAGMA =
47- FONT_TIMES_ROMAN =
101- FONT_TIMES_ITALIC =
102- FONT_TIMES_BOLD =
103- FONT_TIMES_BOLDITALIC =
104- FONT_HELVETICA =
105- FONT_HELVETICA_OBLIQUE =
106- FONT_HELVETICA_BOLD =
107- FONT_HELVETICA_BOLDOBLIQUE =
108- FONT_COURIER =
109- FONT_COURIER_OBLIQUE =
110- FONT_COURIER_BOLD =
111- FONT_COURIER_BOLDOBLIQUE =
112- FONT_SYMBOL =
113- FONT_BOOKMAN_LIGHT =
114- FONT_BOOKMAN_LIGHTITALIC =
115- FONT_BOOKMAN_DEMI =
116- FONT_BOOKMAN_DEMIITALIC =
117- FONT_NEWCENTURYSCHLBK_ROMAN =
118- FONT_NEWCENTURYSCHLBK_ITALIC =
119- FONT_NEWCENTURYSCHLBK_BOLD =
120- FONT_NEWCENTURYSCHLBK_BOLDITALIC =
121- FONT_AVANTGARDE_BOOK =
122- FONT_AVANTGARDE_BOOKOBLIQUE =
123- FONT_AVANTGARDE_DEMI =
124- FONT_AVANTGARDE_DEMIOBLIQUE =
125- FONT_PALATINO_ROMAN =
126- FONT_PALATINO_ITALIC =
127- FONT_PALATINO_BOLD =
128- FONT_PALATINO_BOLDITALIC =
129- FONT_ZAPFCHANCERY_MEDIUMITALIC =
130- FONT_ZAPFDINGBATS =
131- PRINT_PS =
GR.beginprint types
'ps'- PRINT_EPS =
'eps'- PRINT_PDF =
'pdf'- PRINT_PGF =
'pgf'- PRINT_BMP =
'bmp'- PRINT_JPEG =
'jpeg'- PRINT_JPG =
'jpg'- PRINT_PNG =
'png'- PRINT_TIFF =
'tiff'- PRINT_TIF =
'tif'- PRINT_FIG =
'fig'- PRINT_SVG =
'svg'- PRINT_WMF =
'wmf'- PATH_STOP =
0x00- PATH_MOVETO =
0x01- PATH_LINETO =
0x02- PATH_CURVE3 =
0x03- PATH_CURVE4 =
0x04- PATH_CLOSEPOLY =
0x4f- GDP_DRAW_PATH =
1- GDP_DRAW_LINES =
2- GDP_DRAW_MARKERS =
3- MPL_SUPPRESS_CLEAR =
1- MPL_POSTPONE_UPDATE =
2- XFORM_BOOLEAN =
0- XFORM_LINEAR =
1- XFORM_LOG =
2- XFORM_LOGLOG =
3- XFORM_CUBIC =
4- XFORM_EQUALIZED =
5- ENCODING_LATIN1 =
300- ENCODING_UTF8 =
301- UPSAMPLE_VERTICAL_DEFAULT =
0x00000000- UPSAMPLE_HORIZONTAL_DEFAULT =
0x00000000- DOWNSAMPLE_VERTICAL_DEFAULT =
0x00000000- DOWNSAMPLE_HORIZONTAL_DEFAULT =
0x00000000- UPSAMPLE_VERTICAL_NEAREST =
0x00000001- UPSAMPLE_HORIZONTAL_NEAREST =
0x00000100- DOWNSAMPLE_VERTICAL_NEAREST =
0x00010000- DOWNSAMPLE_HORIZONTAL_NEAREST =
0x01000000- UPSAMPLE_VERTICAL_LINEAR =
0x00000002- UPSAMPLE_HORIZONTAL_LINEAR =
0x00000200- DOWNSAMPLE_VERTICAL_LINEAR =
0x00020000- DOWNSAMPLE_HORIZONTAL_LINEAR =
0x02000000- UPSAMPLE_VERTICAL_LANCZOS =
0x00000003- UPSAMPLE_HORIZONTAL_LANCZOS =
0x00000300- DOWNSAMPLE_VERTICAL_LANCZOS =
0x00030000- DOWNSAMPLE_HORIZONTAL_LANCZOS =
0x03000000- RESAMPLE_DEFAULT =
(UPSAMPLE_VERTICAL_DEFAULT | UPSAMPLE_HORIZONTAL_DEFAULT | DOWNSAMPLE_VERTICAL_DEFAULT | DOWNSAMPLE_HORIZONTAL_DEFAULT)
- RESAMPLE_NEAREST =
(UPSAMPLE_VERTICAL_NEAREST | UPSAMPLE_HORIZONTAL_NEAREST | DOWNSAMPLE_VERTICAL_NEAREST | DOWNSAMPLE_HORIZONTAL_NEAREST)
- RESAMPLE_LINEAR =
(UPSAMPLE_VERTICAL_LINEAR | UPSAMPLE_HORIZONTAL_LINEAR | DOWNSAMPLE_VERTICAL_LINEAR | DOWNSAMPLE_HORIZONTAL_LINEAR)
- RESAMPLE_LANCZOS =
(UPSAMPLE_VERTICAL_LANCZOS | UPSAMPLE_HORIZONTAL_LANCZOS | DOWNSAMPLE_VERTICAL_LANCZOS | DOWNSAMPLE_HORIZONTAL_LANCZOS)
- PROJECTION_DEFAULT =
0- PROJECTION_ORTHOGRAPHIC =
1- PROJECTION_PERSPECTIVE =
2- VOLUME_WITHOUT_BORDER =
0- VOLUME_WITH_BORDER =
1- VOLUME_EMISSION =
0- VOLUME_ABSORPTION =
1- VOLUME_MIP =
2- TEXT_USE_WC =
(1 << 0)
- TEXT_ENABLE_INLINE_MATH =
(1 << 1)
- VERSION =
GRCommons::VERSION
Constants included from GRCommons::GRCommonUtils
GRCommons::GRCommonUtils::SUPPORTED_TYPES
Class Attribute Summary collapse
-
.ffi_lib ⇒ Object
Returns the value of attribute ffi_lib.
Class Method Summary collapse
-
.activatews ⇒ Object
Activate the specified workstation.
- .adjustlimits(amin, amax) ⇒ Integer
- .adjustrange(amin, amax) ⇒ Object
-
.axes ⇒ Object
(also: axes2d)
Draw X and Y coordinate axes with linearly and/or logarithmically spaced tick marks.
-
.axes3d ⇒ Object
Draw X, Y and Z coordinate axes with linearly and/or logarithmically spaced tick marks.
-
.axeslbl ⇒ Object
Create axes in the current workspace and supply a custom function for changing the behaviour of the tick labels.
- .axis(spec, **opts) ⇒ Object
-
.begingraphics ⇒ Object
Open a file for graphics output.
-
.beginprint(file_path) ⇒ Object
Open and activate a print device.
-
.beginprintext ⇒ Object
Open and activate a print device with the given layout attributes.
- .beginselection ⇒ Object
-
.camerainteraction ⇒ Object
Rotate the current scene according to a virtual arcball.
-
.cellarray(xmin, xmax, ymin, ymax, dimx, dimy, color) ⇒ Object
Display rasterlike images in a device-independent manner.
-
.clearws ⇒ Object
Clear the specified workstation.
- .closegks ⇒ Object
- .closeseg ⇒ Object
-
.closews ⇒ Object
Close the specified workstation.
- .colorbar ⇒ Object
-
.configurews ⇒ Object
Configure the specified workstation.
-
.contour(x, y, h, z, major_h) ⇒ Object
Draw contours of a three-dimensional data set whose values are specified over a rectangular mesh.
-
.contourf(x, y, h, z, major_h) ⇒ Object
Draw filled contours of a three-dimensional data set whose values are specified over a rectangular mesh.
- .copysegws ⇒ Object
-
.cpubasedvolume ⇒ Object
FIXME! (#61).
- .createseg ⇒ Object
-
.deactivatews ⇒ Object
Deactivate the specified workstation.
- .delaunay(x, y) ⇒ Integer
- .destroycontext ⇒ Object
-
.drawarc ⇒ Object
Draw a circular or elliptical arc covering the specified rectangle.
-
.drawarrow ⇒ Object
Draw an arrow between two points.
- .drawaxes(x_axis = nil, y_axis = nil, option = 1) ⇒ Object
- .drawaxis(axis) ⇒ Object
- .drawgraphics ⇒ Integer
-
.drawimage(xmin, xmax, ymin, ymax, width, height, data, model = 0) ⇒ Object
Draw an image into a given rectangular area.
-
.drawpath(points, codes, fill) ⇒ Object
Draw simple and compound outlines consisting of line segments and bezier curves.
-
.drawrect ⇒ Object
Draw a rectangle using the current line attributes.
- .emergencyclosegks ⇒ Object
- .endgraphics ⇒ Object
- .endprint ⇒ Object
- .endselection ⇒ Object
-
.fillarc ⇒ Object
Fill a circular or elliptical arc covering the specified rectangle.
-
.fillarea(x, y) ⇒ Object
Allows you to specify a polygonal shape of an area to be filled.
-
.fillrect ⇒ Object
Draw a filled rectangle using the current fill attributes.
- .findboundary ⇒ Object
- .ftoa(value, format_ref) ⇒ Object
-
.gdp(x, y, primid, datrec) ⇒ Object
Generates a generalized drawing primitive (GDP) of the type you specify, using specified points and any additional information contained in a data record.
- .getformat(origin, min, max, tick_width, major) ⇒ Object
- .getgraphics ⇒ String
- .getmetadata(path) ⇒ Object
- .gr_setresizebehaviour ⇒ Object
- .gradient(x, y, z) ⇒ Object deprecated Deprecated.
-
.grid ⇒ Object
Draw a linear and/or logarithmic grid.
-
.grid3d ⇒ Object
Draw a linear and/or logarithmic grid.
-
.gridit(xd, yd, zd, nx, ny) ⇒ Object
Interpolate data from arbitrary points at points on a rectangular grid.
-
.herrorbars(x, y, e1, e2) ⇒ Object
Draw a standard horizontal error bar graph.
- .hexbin(x, y, nbins) ⇒ Integer
- .hexbin_2pass(x, y, nbins, context = nil) ⇒ Object
- .hsvtorgb(h, s, v) ⇒ Integer
- .importgraphics ⇒ Integer
- .initgr ⇒ Object
- .inqbbox ⇒ Object
-
.inqbordercolorind ⇒ Object
Define the color of subsequent path output primitives.
-
.inqborderwidth ⇒ Object
Define the border width of subsequent path output primitives.
-
.inqcharheight ⇒ Numeric
Gets the current character height.
- .inqclip ⇒ Object
- .inqclipregion ⇒ Object
- .inqclipsector ⇒ Object
- .inqclipxform ⇒ Object
- .inqcolor(color) ⇒ Object
- .inqcolorfromrgb ⇒ Integer
- .inqcolorlimits ⇒ Object
-
.inqcolormap ⇒ Object
inqcolormap.
-
.inqcolormapinds ⇒ Array
Inquire the color index range of the current colormap.
-
.inqdspsize ⇒ Array
Get the current display size.
-
.inqfillcolorind ⇒ Integer
Returns the current fill area color index.
-
.inqfillintstyle ⇒ Integer
Returns the fill area interior style to be used for fill areas.
-
.inqfillstyle ⇒ Integer
Returns the current fill area color index.
-
.inqlinecolorind ⇒ Object
Define the color of subsequent polyline output primitives.
-
.inqlinetype ⇒ Object
Specify the line style for polylines.
-
.inqlinewidth ⇒ Object
Define the line width of subsequent polyline output primitives.
-
.inqmarkercolorind ⇒ Object
Define the color of subsequent polymarker output primitives.
-
.inqmarkersize ⇒ Numeric
Inquire the marker size for polymarkers.
-
.inqmarkertype ⇒ Object
Specify the marker type for polymarkers.
- .inqmathfont ⇒ Object
-
.inqmathtex(x, y, string) ⇒ Object
inqmathtex.
- .inqmathtex3d(x, y, z, string, axis) ⇒ Object
- .inqnominalsize ⇒ Object
-
.inqorthographicprojection ⇒ Object
Return the camera position, up vector and focus point.
-
.inqperspectiveprojection ⇒ Object
Return the parameters for the perspective projection.
-
.inqprojectiontype ⇒ Object
Return the projection type.
- .inqregenflags ⇒ Integer
-
.inqresamplemethod ⇒ Integer
Inquire the resample method used for
drawimage. - .inqresizebehaviour ⇒ Object
-
.inqscale ⇒ Object
inqscale.
-
.inqscalefactors3d ⇒ Object
Returns the scale factors for each axis.
-
.inqspace ⇒ Integer
Set the abstract Z-space used for mapping three-dimensional output primitives into the current world coordinate space.
-
.inqspace3d ⇒ Object
Set the camera for orthographic or perspective projection.
-
.inqtext(x, y, string) ⇒ Object
Draw a text at position
x,yusing the given options and current text attributes. - .inqtext3d(x, y, z, string, axis) ⇒ Object
-
.inqtextcolorind ⇒ Integer
Gets the current text color index.
- .inqtextencoding ⇒ Object
-
.inqtextext(x, y, string) ⇒ Object
inqtextext.
- .inqtextx(x, y, string, opts) ⇒ Object
-
.inqtransformationparameters ⇒ Object
Return the camera position, up vector and focus point.
-
.inqtransparency ⇒ Object
Set the value of the alpha component associated with GR colors.
-
.inqviewport ⇒ Object
inqviewport.
-
.inqvolumeflags ⇒ Array
Inquire the parameters which can be set for cpubasedvolume.
-
.inqvpsize ⇒ Object
FIXME! (#61).
-
.inqwindow ⇒ Object
inqwindow.
-
.inqwindow3d ⇒ Object
Return the three dimensional window.
-
.interp2(x, y, z, xq, yq, method, extrapval) ⇒ Object
Interpolation in two dimensions using one of four different methods.
-
.loadfont(str) ⇒ Object
Load a font file from a given filename.
-
.mathtex ⇒ Object
Generate a character string starting at the given location.
- .moveselection ⇒ Object
- .ndctowc(x, y) ⇒ Object
-
.nonuniformcellarray(x, y, dimx, dimy, color) ⇒ Object
Display a two dimensional color index array with nonuniform cell sizes.
-
.nonuniformpolarcellarray(phi, r, ncol, nrow, color) ⇒ Object
Display a two dimensional color index array mapped to a disk using polar coordinates with nonuniform cell sizes.
- .opengks ⇒ Object
-
.openws ⇒ Object
Open a graphical workstation.
-
.panzoom(x, y, zoom) ⇒ Object
panzoom.
-
.path(x, y, codes) ⇒ Object
Draw paths using the given vertices and path codes.
-
.polarcellarray(x_org, y_org, phimin, phimax, rmin, rmax, dimphi, dimr, color) ⇒ Object
Display a two dimensional color index array mapped to a disk using polar coordinates.
- .polygonmesh3d(px, py, pz, connections, colors) ⇒ Object
-
.polyline(x, y, linewidth = nil, line_z = nil) ⇒ Object
Draw a polyline using the current line attributes, starting from the first data point and ending at the last data point.
-
.polyline3d(x, y, z) ⇒ Object
Draw a 3D curve using the current line attributes, starting from the first data point and ending at the last data point.
-
.polymarker(x, y, markersize = nil, marker_z = nil) ⇒ Object
Draw marker symbols centered at the given data points.
-
.polymarker3d(x, y, z) ⇒ Object
Draw marker symbols centered at the given 3D data points.
-
.quiver(x, y, u, v, color) ⇒ Object
Draw a quiver plot on a grid of nx*ny points.
- .readimage(path) ⇒ Integer
- .redrawsegws ⇒ Object
-
.reducepoints(xd, yd, n) ⇒ Object
Reduces the number of points of the x and y array.
- .resizeselection ⇒ Object
- .restorestate ⇒ Object
- .samplelocator ⇒ Object
- .savestate ⇒ Object
- .selectclipxform ⇒ Object
- .selectcontext ⇒ Object
-
.selntran ⇒ Object
selntranselects a predefined transformation from world coordinates to normalized device coordinates. -
.setapproximativecalculation ⇒ Object
Set if gr_cpubasedvolume is calculated approximative or exact.
-
.setarrowsize ⇒ Object
Set the arrow size to be used for subsequent arrow commands.
-
.setarrowstyle ⇒ Object
Set the arrow style to be used for subsequent arrow commands.
-
.setbordercolorind ⇒ Object
Define the color of subsequent path output primitives.
-
.setborderwidth ⇒ Object
Define the border width of subsequent path output primitives.
-
.setcharexpan ⇒ Object
Set the current character expansion factor (width to height ratio).
-
.setcharheight ⇒ Object
Set the current character height.
- .setcharspace ⇒ Object
-
.setcharup ⇒ Object
Set the current character text angle up vector.
-
.setclip ⇒ Object
Set the clipping indicator.
- .setclipregion ⇒ Object
- .setclipsector ⇒ Object
-
.setcolormap ⇒ Object
Set the currently used colormap.
-
.setcolormapfromrgb(r, g, b, positions: nil) ⇒ Object
Define a colormap by a list of RGB colors.
-
.setcolorrep ⇒ Object
Redefine an existing color index representation by specifying an RGB color triplet.
-
.setcoordxform(mat) ⇒ Object
Change the coordinate transformation according to the given matrix.
-
.setfillcolorind ⇒ Object
Sets the current fill area color index.
-
.setfillintstyle ⇒ Object
Set the fill area interior style to be used for fill areas.
-
.setfillstyle ⇒ Object
Sets the fill style to be used for subsequent fill areas.
-
.setlinecolorind ⇒ Object
Define the color of subsequent polyline output primitives.
-
.setlinetype ⇒ Object
Specify the line style for polylines.
-
.setlinewidth ⇒ Object
Define the line width of subsequent polyline output primitives.
-
.setmarkercolorind ⇒ Object
Define the color of subsequent polymarker output primitives.
-
.setmarkersize ⇒ Object
Specify the marker size for polymarkers.
-
.setmarkertype ⇒ Object
Specify the marker type for polymarkers.
- .setmathfont ⇒ Object
-
.setorthographicprojection ⇒ Object
Set parameters for orthographic transformation.
-
.setperspectiveprojection ⇒ Object
Set the far and near clipping plane for perspective projection and the vertical field ov view.
-
.setpicturesizeforvolume ⇒ Object
Set the width and height of the resulting picture.
-
.setprojectiontype ⇒ Object
Set the projection type with this flag.
- .setregenflags ⇒ Object
-
.setresamplemethod ⇒ Object
Set the resample method used for
drawimage. -
.setscale ⇒ Integer
setscalesets the type of transformation to be used for subsequent GR output primitives. -
.setscalefactors3d ⇒ Object
Set the scale factor for each axis.
- .setsegtran ⇒ Object
-
.setshadow ⇒ Object
setshadowallows drawing of shadows, realized by images painted underneath, and offset from, graphics objects such that the shadow mimics the effect of a light source cast on the graphics objects. -
.setspace ⇒ Integer
Set the abstract Z-space used for mapping three-dimensional output primitives into the current world coordinate space.
-
.setspace3d ⇒ Object
Set the camera for orthographic or perspective projection.
-
.settextalign ⇒ Object
- 1 : TEXT_HALIGN_LEFT - Left justify * 2 : TEXT_HALIGN_CENTER - Center justify * 3 : TEXT_HALIGN_RIGHT - Right justify.
-
.settextcolorind ⇒ Object
Sets the current text color index.
- .settextencoding ⇒ Object
-
.settextfontprec ⇒ Object
Specify the text font and precision for subsequent text output primitives.
-
.settextpath ⇒ Object
Define the current direction in which subsequent text will be drawn.
-
.setthreadnumber ⇒ Object
Set the number of threads which can run parallel.
-
.settransformationparameters ⇒ Object
Method to set the camera position, the upward facing direction and the focus point of the shown volume.
-
.settransparency ⇒ Object
Set the value of the alpha component associated with GR colors.
-
.setviewport ⇒ Object
setviewportestablishes a rectangular subspace of normalized device coordinates. -
.setvolumebordercalculation(# @!method setthreadnumber) ⇒ Object
Set the gr_volume border type with this flag.
-
.setwindow ⇒ Object
setwindowestablishes a window, or rectangular subspace, of world coordinates to be plotted. -
.setwindow3d ⇒ Object
Set the three dimensional window.
-
.setwsviewport ⇒ Object
Define the size of the workstation graphics window in meters.
-
.setwswindow ⇒ Object
Set the area of the NDC viewport that is to be drawn in the workstation window.
- .shade ⇒ Object
-
.shadelines(x, y, dims: [1200, 1200], xform: 1) ⇒ Object
Display a line set as an aggregated and rasterized image.
-
.shadepoints(x, y, dims: [1200, 1200], xform: 1) ⇒ Object
Display a point set as a aggregated and rasterized image.
-
.spline(x, y, m, method) ⇒ Object
Generate a cubic spline-fit, starting from the first data point and ending at the last data point.
- .startlistener ⇒ Integer
-
.surface(x, y, z, option) ⇒ Object
Draw a three-dimensional surface plot for the given data points.
-
.text ⇒ Object
Draw a text at position
x,yusing the current text attributes. - .text3d ⇒ Object
- .text_maxsize ⇒ Object
-
.textext ⇒ Integer
Draw a text at position
x,yusing the current text attributes. -
.textx ⇒ Object
Draw a text at position
x,yusing the given options and current text attributes. - .tick ⇒ Numeric
-
.titles3d ⇒ Object
Display axis titles just outside of their respective axes.
- .to_rgb_color(z) ⇒ Array, NArray
-
.tricontour(x, y, z, levels) ⇒ Object
Draw a contour plot for the given triangle mesh.
-
.trisurface(x, y, z) ⇒ Object
Draw a triangular surface plot for the given data points.
- .updategks ⇒ Object
-
.updatews ⇒ Object
Update the specified workstation.
- .uselinespec ⇒ Integer
- .validaterange ⇒ Integer
-
.verrorbars(x, y, e1, e2) ⇒ Object
Draw a standard vertical error bar graph.
-
.version ⇒ String
Returns the combined version strings of the GR runtime.
- .wc3towc(x, y, z) ⇒ Object
- .wctondc(x, y) ⇒ Object
Methods included from GRCommons::GRCommonUtils
create_ffi_pointer, double, equal_length, float, inquiry, inquiry_double, inquiry_int, inquiry_uint, int, narray?, read_ffi_pointer, uint, uint16, uint8
Methods included from GRCommons::JupyterSupport
Class Attribute Details
.ffi_lib ⇒ Object
Returns the value of attribute ffi_lib.
54 55 56 |
# File 'lib/gr.rb', line 54 def ffi_lib @ffi_lib end |
Class Method Details
.activatews ⇒ Object
Activate the specified workstation.
|
|
# File 'lib/gr.rb', line 188
|
.adjustlimits(amin, amax) ⇒ Integer
1594 1595 1596 1597 1598 1599 1600 |
# File 'lib/gr.rb', line 1594 def adjustlimits(amin, amax) inquiry %i[double double] do |pamin, pamax| pamin.write_double amin pamax.write_double amax super(pamin, pamax) end end |
.adjustrange(amin, amax) ⇒ Object
1602 1603 1604 1605 1606 1607 1608 |
# File 'lib/gr.rb', line 1602 def adjustrange(amin, amax) inquiry %i[double double] do |pamin, pamax| pamin.write_double amin pamax.write_double amax super(pamin, pamax) end end |
.axes ⇒ Object Also known as: axes2d
Draw X and Y coordinate axes with linearly and/or logarithmically spaced tick marks.
Tick marks are positioned along each axis so that major tick marks fall on the axes origin (whether visible or not). Major tick marks are labeled with the corresponding data values. Axes are drawn according to the scale of the window. Axes and tick marks are drawn using solid lines; line color and width can be modified using the gr_setlinetype and gr_setlinewidth functions. Axes are drawn according to the linear or logarithmic transformation established by the gr_setscale function.
1160 |
# File 'lib/gr.rb', line 1160 alias axes2d axes |
.axes3d ⇒ Object
Draw X, Y and Z coordinate axes with linearly and/or logarithmically spaced tick marks.
Tick marks are positioned along each axis so that major tick marks fall on
the axes origin (whether visible or not). Major tick marks are labeled with
the corresponding data values. Axes are drawn according to the scale of the
window. Axes and tick marks are drawn using solid lines; line color and
width can be modified using the setlinetype and setlinewidth functions.
Axes are drawn according to the linear or logarithmic transformation
established by the setscale function.
|
|
# File 'lib/gr.rb', line 1353
|
.axeslbl ⇒ Object
This method uses GRCommons::Fiddley::Function as a callback function. Please read the source code If you have to use it. There are some examples of the use of this function in the Plot class..
Create axes in the current workspace and supply a custom function for changing the behaviour of the tick labels.
Similar to gr_axes() but allows more fine-grained control over tick labels and text positioning by supplying callback functions. Within the callback function you can use normal GR text primitives for performing any manipulations on the label text. See gr_axes() for more details on drawing axes.
- fpx/fpy
- param x [Numeric] NDC of the label in X direction.
- param y [Numeric] NDC of the label in Y direction.
- param svalue [String] Internal string representation of the text drawn by GR at (x,y).
- param value [Numeric] Floating point representation of the label drawn at (x,y).
|
|
# File 'lib/gr.rb', line 1194
|
.axis(spec, **opts) ⇒ Object
1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 |
# File 'lib/gr.rb', line 1162 def axis(spec, **opts) spec = spec.to_s raise ArgumentError, 'axis spec must not be empty' if spec.empty? axis = GRAxis.new opts.each do |k, v| setter = "#{k}=" axis.public_send(setter, v) if axis.respond_to?(setter) end c_axis = __axis_to_c_axis(axis, for_generation: true) begin FFI.gr_axis(spec, c_axis) __axis_from_c_axis(c_axis) ensure FFI.gr_freeaxis(c_axis) end end |
.begingraphics ⇒ Object
Open a file for graphics output.
begingraphics allows to write all graphics output into a XML-formatted
file until the endgraphics functions is called. The resulting file may
later be imported with the importgraphics function.
|
|
# File 'lib/gr.rb', line 1895
|
.beginprint(file_path) ⇒ Object
Ruby feature - you can use block to call endprint automatically.
Open and activate a print device.
beginprint opens an additional graphics output device. The device type is obtained
from the given file extension
1631 1632 1633 1634 1635 1636 1637 |
# File 'lib/gr.rb', line 1631 def beginprint(file_path) super(file_path) return unless block_given? yield endprint end |
.beginprintext ⇒ Object
Open and activate a print device with the given layout attributes.
|
|
# File 'lib/gr.rb', line 1639
|
.beginselection ⇒ Object
|
|
# File 'lib/gr.rb', line 1936
|
.camerainteraction ⇒ Object
Rotate the current scene according to a virtual arcball.
This function requires values between 0 (left side or bottom of the drawing area) and 1 (right side or top of the drawing area).
|
|
# File 'lib/gr.rb', line 2364
|
.cellarray(xmin, xmax, ymin, ymax, dimx, dimy, color) ⇒ Object
Display rasterlike images in a device-independent manner. The cell array function partitions a rectangle given by two corner points into DIMX X DIMY cells, each of them colored individually by the corresponding color index of the given cell array.
The values for xmin, xmax, ymin and ymax are in world coordinates.
364 365 366 |
# File 'lib/gr.rb', line 364 def cellarray(xmin, xmax, ymin, ymax, dimx, dimy, color) super(xmin, xmax, ymin, ymax, dimx, dimy, 1, 1, dimx, dimy, int(color)) end |
.clearws ⇒ Object
Clear the specified workstation.
|
|
# File 'lib/gr.rb', line 204
|
.closegks ⇒ Object
|
|
# File 'lib/gr.rb', line 136
|
.closeseg ⇒ Object
996 997 998 999 1000 |
# File 'lib/gr.rb', line 996 def samplelocator inquiry %i[double double int] do |*pts| super(*pts) end end |
.closews ⇒ Object
Close the specified workstation.
|
|
# File 'lib/gr.rb', line 182
|
.colorbar ⇒ Object
1573 1574 1575 1576 1577 |
# File 'lib/gr.rb', line 1573 def inqcolor(color) inquiry_int do |rgb| super(color, rgb) end end |
.configurews ⇒ Object
Configure the specified workstation.
|
|
# File 'lib/gr.rb', line 200
|
.contour(x, y, h, z, major_h) ⇒ Object
contour is overwritten by require gr/plot.
The original method is moved to the underscored name.
The yard document will show the method name after evacuation.
Draw contours of a three-dimensional data set whose values are specified over a rectangular mesh. Contour lines may optionally be labeled.
1454 1455 1456 1457 1458 1459 1460 1461 |
# File 'lib/gr.rb', line 1454 def contour(x, y, h, z, major_h) nx = x.length ny = y.length nh = h.length raise ArgumentError, "z must have length nx * ny (expected #{nx * ny}, got #{z.length})" if z.length != nx * ny super(nx, ny, nh, x, y, h, z, major_h) end |
.contourf(x, y, h, z, major_h) ⇒ Object
contourf is overwritten by require gr/plot.
The original method is moved to the underscored name.
The yard document will show the method name after evacuation.
Draw filled contours of a three-dimensional data set whose values are specified over a rectangular mesh.
1480 1481 1482 1483 1484 1485 1486 1487 |
# File 'lib/gr.rb', line 1480 def contourf(x, y, h, z, major_h) nx = x.length ny = y.length nh = h.length raise ArgumentError, "z must have length nx * ny (expected #{nx * ny}, got #{z.length})" if z.length != nx * ny super(nx, ny, nh, x, y, h, z, major_h) end |
.copysegws ⇒ Object
|
|
# File 'lib/gr.rb', line 988
|
.cpubasedvolume ⇒ Object
FIXME! (#61)
2523 2524 2525 2526 2527 |
# File 'lib/gr.rb', line 2523 def inqvpsize inquiry %i[int int double] do |*pts| super(*pts) end end |
.createseg ⇒ Object
|
|
# File 'lib/gr.rb', line 986
|
.deactivatews ⇒ Object
Deactivate the specified workstation.
|
|
# File 'lib/gr.rb', line 194
|
.delaunay(x, y) ⇒ Integer
1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 |
# File 'lib/gr.rb', line 1971 def delaunay(x, y) # Feel free to make a pull request if you catch a mistake # or you have an idea to improve it. npoints = equal_length(x, y) triangles = Fiddle::Pointer.malloc(Fiddle::SIZEOF_INTPTR_T, Fiddle::RUBY_FREE) dim = 3 n_tri = inquiry_int do |ntri| super(npoints, x, y, ntri, triangles) end if n_tri > 0 tri = triangles.ptr.to_str(dim * n_tri * Fiddle::SIZEOF_INT).unpack('l*') # Int32 # Ruby : 0-based indexing # Julia : 1-based indexing tri = tri.each_slice(dim).to_a [n_tri, tri] else 0 end end |
.destroycontext ⇒ Object
|
|
# File 'lib/gr.rb', line 1966
|
.drawarc ⇒ Object
Draw a circular or elliptical arc covering the specified rectangle.
The resulting arc begins at a1 and ends at a2 degrees. Angles are
interpreted such that 0 degrees is at the 3 o'clock position. The center
of the arc is the center of the given rectangle.
|
|
# File 'lib/gr.rb', line 1724
|
.drawarrow ⇒ Object
Draw an arrow between two points.
Different arrow styles (angles between arrow tail and wing, optionally
filled heads, double headed arrows) are available and can be set with the
setarrowstyle function.
|
|
# File 'lib/gr.rb', line 1808
|
.drawaxes(x_axis = nil, y_axis = nil, option = 1) ⇒ Object
1188 1189 1190 1191 1192 |
# File 'lib/gr.rb', line 1188 def drawaxes(x_axis = nil, y_axis = nil, option = 1) c_x = x_axis && __axis_to_c_axis(x_axis, default_spec: 'X') c_y = y_axis && __axis_to_c_axis(y_axis, default_spec: 'Y') FFI.gr_drawaxes(c_x&.to_ptr, c_y&.to_ptr, option) end |
.drawaxis(axis) ⇒ Object
1181 1182 1183 1184 1185 1186 |
# File 'lib/gr.rb', line 1181 def drawaxis(axis) raise ArgumentError, 'axis spec must not be empty' if axis.spec.to_s.empty? c_axis = __axis_to_c_axis(axis) FFI.gr_drawaxis(c_axis) end |
.drawgraphics ⇒ Integer
|
|
# File 'lib/gr.rb', line 1911
|
.drawimage(xmin, xmax, ymin, ymax, width, height, data, model = 0) ⇒ Object
Draw an image into a given rectangular area.
The points (xmin, ymin) and (xmax, ymax) are world coordinates
defining diagonally opposite corner points of a rectangle. This rectangle
is divided into width by height cells. The two-dimensional array data
specifies colors for each cell.
1853 1854 1855 |
# File 'lib/gr.rb', line 1853 def drawimage(xmin, xmax, ymin, ymax, width, height, data, model = 0) super(xmin, xmax, ymin, ymax, width, height, uint(data), model) end |
.drawpath(points, codes, fill) ⇒ Object
Draw simple and compound outlines consisting of line segments and bezier curves.
1768 1769 1770 1771 |
# File 'lib/gr.rb', line 1768 def drawpath(points, codes, fill) len = codes.length super(len, points, uint8(codes), fill) end |
.drawrect ⇒ Object
Draw a rectangle using the current line attributes.
|
|
# File 'lib/gr.rb', line 1706
|
.emergencyclosegks ⇒ Object
|
|
# File 'lib/gr.rb', line 1002
|
.endgraphics ⇒ Object
|
|
# File 'lib/gr.rb', line 1904
|
.endprint ⇒ Object
1681 1682 1683 1684 1685 1686 1687 |
# File 'lib/gr.rb', line 1681 def ndctowc(x, y) inquiry %i[double double] do |px, py| px.write_double x py.write_double y super(px, py) end end |
.endselection ⇒ Object
|
|
# File 'lib/gr.rb', line 1938
|
.fillarc ⇒ Object
Fill a circular or elliptical arc covering the specified rectangle.
The resulting arc begins at a1 and ends at a2 degrees. Angles are
interpreted such that 0 degrees is at the 3 o'clock position. The center
of the arc is the center of the given rectangle.
|
|
# File 'lib/gr.rb', line 1739
|
.fillarea(x, y) ⇒ Object
Allows you to specify a polygonal shape of an area to be filled.
The attributes that control the appearance of fill areas are fill area interior style, fill area style index and fill area color index.
344 345 346 347 |
# File 'lib/gr.rb', line 344 def fillarea(x, y) n = equal_length(x, y) super(n, x, y) end |
.fillrect ⇒ Object
Draw a filled rectangle using the current fill attributes.
|
|
# File 'lib/gr.rb', line 1715
|
.findboundary ⇒ Object
This method uses GRCommons::Fiddley::Function as a callback function. Please read the source code If you have to use it. This method is not sure if it works properly.
|
|
# File 'lib/gr.rb', line 2139
|
.ftoa(value, format_ref) ⇒ Object
2579 2580 2581 2582 2583 |
# File 'lib/gr.rb', line 2579 def ftoa(value, format_ref) string = Fiddle::Pointer.malloc(256) super(string, value, format_ref) string.to_s end |
.gdp(x, y, primid, datrec) ⇒ Object
Generates a generalized drawing primitive (GDP) of the type you specify, using specified points and any additional information contained in a data record.
464 465 466 467 468 |
# File 'lib/gr.rb', line 464 def gdp(x, y, primid, datrec) n = equal_length(x, y) ldr = datrec.length super(n, x, y, primid, ldr, int(datrec)) end |
.getformat(origin, min, max, tick_width, major) ⇒ Object
2573 2574 2575 2576 2577 |
# File 'lib/gr.rb', line 2573 def getformat(origin, min, max, tick_width, major) ref = FFI::FormatReference.malloc super(ref, origin, min, max, tick_width, major) ref end |
.getgraphics ⇒ String
1907 1908 1909 |
# File 'lib/gr.rb', line 1907 def getgraphics(*) super.to_s end |
.getmetadata(path) ⇒ Object
2568 2569 2570 2571 |
# File 'lib/gr.rb', line 2568 def (path) = super .to_s unless .null? end |
.gr_setresizebehaviour ⇒ Object
847 848 849 |
# File 'lib/gr.rb', line 847 def inqresizebehaviour inquiry_int { |pt| super(pt) } end |
.gradient(x, y, z) ⇒ Object
2017 2018 2019 2020 2021 2022 2023 2024 2025 |
# File 'lib/gr.rb', line 2017 def gradient(x, y, z) nx = x.length ny = y.length raise ArgumentError, "z must have length nx * ny (expected #{nx * ny}, got #{z.length})" if z.length != nx * ny inquiry [{ double: nx * ny }, { double: nx * ny }] do |pu, pv| super(nx, ny, x, y, z, pu, pv) end end |
.grid ⇒ Object
Draw a linear and/or logarithmic grid.
Major grid lines correspond to the axes origin and major tick marks whether visible or not. Minor grid lines are drawn at points equal to minor tick marks. Major grid lines are drawn using black lines and minor grid lines are drawn using gray lines.
|
|
# File 'lib/gr.rb', line 1243
|
.grid3d ⇒ Object
Draw a linear and/or logarithmic grid.
Major grid lines correspond to the axes origin and major tick marks whether visible or not. Minor grid lines are drawn at points equal to minor tick marks. Major grid lines are drawn using black lines and minor grid lines are drawn using gray lines.
|
|
# File 'lib/gr.rb', line 1267
|
.gridit(xd, yd, zd, nx, ny) ⇒ Object
Interpolate data from arbitrary points at points on a rectangular grid.
501 502 503 504 505 506 |
# File 'lib/gr.rb', line 501 def gridit(xd, yd, zd, nx, ny) nd = equal_length(xd, yd, zd) inquiry [{ double: nx }, { double: ny }, { double: nx * ny }] do |px, py, pz| super(nd, xd, yd, zd, nx, ny, px, py, pz) end end |
.herrorbars(x, y, e1, e2) ⇒ Object
Draw a standard horizontal error bar graph.
1317 1318 1319 1320 |
# File 'lib/gr.rb', line 1317 def (x, y, e1, e2) n = equal_length(x, y, e1, e2) super(n, x, y, e1, e2) end |
.hexbin(x, y, nbins) ⇒ Integer
hexbin is overwritten by require gr/plot.
The original method is moved to the underscored name.
The yard document will show the method name after evacuation.
1507 1508 1509 1510 |
# File 'lib/gr.rb', line 1507 def hexbin(x, y, nbins) n = x.length super(n, x, y, nbins) end |
.hexbin_2pass(x, y, nbins, context = nil) ⇒ Object
1512 1513 1514 1515 1516 1517 1518 |
# File 'lib/gr.rb', line 1512 def hexbin_2pass(x, y, nbins, context = nil) n = equal_length(x, y) context ||= Fiddle::NULL context = context.to_ptr if context.respond_to?(:to_ptr) result = super(n, x, y, nbins, context) result.null? ? nil : FFI::Hexbin2Pass.new(result) end |
.hsvtorgb(h, s, v) ⇒ Integer
1582 1583 1584 1585 1586 |
# File 'lib/gr.rb', line 1582 def hsvtorgb(h, s, v) inquiry %i[double double double] do |r, g, b| super(h, s, v, r, g, b) end end |
.importgraphics ⇒ Integer
|
|
# File 'lib/gr.rb', line 1857
|
.initgr ⇒ Object
|
|
# File 'lib/gr.rb', line 132
|
.inqbbox ⇒ Object
1944 1945 1946 1947 1948 |
# File 'lib/gr.rb', line 1944 def inqbbox inquiry %i[double double double double] do |*pts| super(*pts) end end |
.inqbordercolorind ⇒ Object
Define the color of subsequent path output primitives.
2272 2273 2274 |
# File 'lib/gr.rb', line 2272 def inqbordercolorind inquiry_int { |pt| super(pt) } end |
.inqborderwidth ⇒ Object
Define the border width of subsequent path output primitives.
2262 2263 2264 |
# File 'lib/gr.rb', line 2262 def inqborderwidth inquiry_double { |pt| super(pt) } end |
.inqcharheight ⇒ Numeric
Gets the current character height.
This function gets the height of text output primitives. Text height is defined as a percentage of the default window. GR uses the default text height of 0.027 (2.7% of the height of the default window).
733 734 735 |
# File 'lib/gr.rb', line 733 def inqcharheight inquiry_double { |pt| super(pt) } end |
.inqclip ⇒ Object
2282 2283 2284 2285 2286 |
# File 'lib/gr.rb', line 2282 def inqclip inquiry [:int, { double: 4 }] do |region, points| super(region, points) end end |
.inqclipregion ⇒ Object
2550 2551 2552 |
# File 'lib/gr.rb', line 2550 def inqclipregion inquiry_int { |pt| super(pt) } end |
.inqclipsector ⇒ Object
2556 2557 2558 2559 2560 |
# File 'lib/gr.rb', line 2556 def inqclipsector inquiry %i[double double] do |*pts| super(*pts) end end |
.inqclipxform ⇒ Object
2278 2279 2280 |
# File 'lib/gr.rb', line 2278 def inqclipxform inquiry_int { |pt| super(pt) } end |
.inqcolor(color) ⇒ Object
1573 1574 1575 1576 1577 |
# File 'lib/gr.rb', line 1573 def inqcolor(color) inquiry_int do |rgb| super(color, rgb) end end |
.inqcolorfromrgb ⇒ Integer
1582 1583 1584 1585 1586 |
# File 'lib/gr.rb', line 1582 def hsvtorgb(h, s, v) inquiry %i[double double double] do |r, g, b| super(h, s, v, r, g, b) end end |
.inqcolorlimits ⇒ Object
2562 2563 2564 2565 2566 |
# File 'lib/gr.rb', line 2562 def inqcolorlimits inquiry %i[double double] do |*pts| super(*pts) end end |
.inqcolormap ⇒ Object
inqcolormap
1530 1531 1532 |
# File 'lib/gr.rb', line 1530 def inqcolormap inquiry_int { |pt| super(pt) } end |
.inqcolormapinds ⇒ Array
Inquire the color index range of the current colormap.
1565 1566 1567 1568 1569 |
# File 'lib/gr.rb', line 1565 def inqcolormapinds inquiry %i[int int] do |first_color_ind, last_color_ind| super(first_color_ind, last_color_ind) end end |
.inqdspsize ⇒ Array
Get the current display size.
Depending on the current workstation type, the current display might be the primary screen (e.g. when using gksqt or GKSTerm) or a purely virtual display (e.g. when using Cairo). When a high DPI screen is used as the current display, width and height will be in logical pixels.
146 147 148 149 150 |
# File 'lib/gr.rb', line 146 def inqdspsize inquiry %i[double double int int] do |*pts| super(*pts) end end |
.inqfillcolorind ⇒ Integer
Returns the current fill area color index.
This function gets the color of fill area output primitives.
841 842 843 |
# File 'lib/gr.rb', line 841 def inqfillcolorind inquiry_int { |pt| super(pt) } end |
.inqfillintstyle ⇒ Integer
Returns the fill area interior style to be used for fill areas.
This function gets the currently set fill style.
800 801 802 |
# File 'lib/gr.rb', line 800 def inqfillintstyle inquiry_int { |pt| super(pt) } end |
.inqfillstyle ⇒ Integer
Returns the current fill area color index.
This function gets the color index for PATTERN and HATCH fills.
822 823 824 |
# File 'lib/gr.rb', line 822 def inqfillstyle inquiry_int { |pt| super(pt) } end |
.inqlinecolorind ⇒ Object
Define the color of subsequent polyline output primitives.
551 552 553 |
# File 'lib/gr.rb', line 551 def inqlinecolorind inquiry_int { |pt| super(pt) } end |
.inqlinetype ⇒ Object
Specify the line style for polylines.
526 527 528 |
# File 'lib/gr.rb', line 526 def inqlinetype inquiry_int { |pt| super(pt) } end |
.inqlinewidth ⇒ Object
Define the line width of subsequent polyline output primitives.
The line width is calculated as the nominal line width generated on the workstation multiplied by the line width scale factor. This value is mapped by the workstation to the nearest available line width. The default line width is 1.0, or 1 times the line width generated on the graphics device.
541 542 543 |
# File 'lib/gr.rb', line 541 def inqlinewidth inquiry_double { |pt| super(pt) } end |
.inqmarkercolorind ⇒ Object
Define the color of subsequent polymarker output primitives.
627 628 629 |
# File 'lib/gr.rb', line 627 def inqmarkercolorind inquiry_int { |pt| super(pt) } end |
.inqmarkersize ⇒ Numeric
Inquire the marker size for polymarkers.
617 618 619 |
# File 'lib/gr.rb', line 617 def inqmarkersize inquiry_double { |pt| super(pt) } end |
.inqmarkertype ⇒ Object
Specify the marker type for polymarkers.
Polymarkers appear centered over their specified coordinates.
600 601 602 |
# File 'lib/gr.rb', line 600 def inqmarkertype inquiry_int { |pt| super(pt) } end |
.inqmathfont ⇒ Object
2544 2545 2546 |
# File 'lib/gr.rb', line 2544 def inqmathfont inquiry_int { |pt| super(pt) } end |
.inqmathtex(x, y, string) ⇒ Object
inqmathtex
1924 1925 1926 1927 1928 |
# File 'lib/gr.rb', line 1924 def inqmathtex(x, y, string) inquiry [{ double: 4 }, { double: 4 }] do |tbx, tby| super(x, y, string, tbx, tby) end end |
.inqmathtex3d(x, y, z, string, axis) ⇒ Object
1930 1931 1932 1933 1934 |
# File 'lib/gr.rb', line 1930 def inqmathtex3d(x, y, z, string, axis) inquiry [{ double: 16 }, { double: 16 }, { double: 16 }, { double: 16 }] do |tbx, tby, tbz, tbw| super(x, y, z, string, axis, tbx, tby, tbz, tbw) end end |
.inqnominalsize ⇒ Object
851 852 853 |
# File 'lib/gr.rb', line 851 def inqnominalsize inquiry_double { |pt| super(pt) } end |
.inqorthographicprojection ⇒ Object
Return the camera position, up vector and focus point.
2358 2359 2360 2361 2362 |
# File 'lib/gr.rb', line 2358 def inqorthographicprojection inquiry([:double] * 6) do |*pts| super(*pts) end end |
.inqperspectiveprojection ⇒ Object
Return the parameters for the perspective projection.
2315 2316 2317 2318 2319 |
# File 'lib/gr.rb', line 2315 def inqperspectiveprojection inquiry %i[double double double] do |*pts| super(*pts) end end |
.inqprojectiontype ⇒ Object
Return the projection type.
2299 2300 2301 |
# File 'lib/gr.rb', line 2299 def inqprojectiontype inquiry_int { |pt| super(pt) } end |
.inqregenflags ⇒ Integer
|
|
# File 'lib/gr.rb', line 1957
|
.inqresamplemethod ⇒ Integer
Inquire the resample method used for drawimage
2204 2205 2206 2207 2208 |
# File 'lib/gr.rb', line 2204 def inqresamplemethod inquiry_uint do |resample_method| super(resample_method) end end |
.inqresizebehaviour ⇒ Object
847 848 849 |
# File 'lib/gr.rb', line 847 def inqresizebehaviour inquiry_int { |pt| super(pt) } end |
.inqscale ⇒ Object
inqscale
1057 1058 1059 |
# File 'lib/gr.rb', line 1057 def inqscale inquiry_int { |pt| super(pt) } end |
.inqscalefactors3d ⇒ Object
Returns the scale factors for each axis.
2406 2407 2408 2409 2410 |
# File 'lib/gr.rb', line 2406 def inqscalefactors3d inquiry %i[double double double] do |*opts| super(*opts) end end |
.inqspace ⇒ Integer
Set the abstract Z-space used for mapping three-dimensional output primitives into the current world coordinate space.
setspace establishes the limits of an abstract Z-axis and defines the
angles for rotation and for the viewing angle (tilt) of a simulated
three-dimensional graph, used for mapping corresponding output primitives
into the current window. These settings are used for all subsequent
three-dimensional output primitives until other values are specified.
Angles of rotation and viewing angle must be specified between 0° and 90°.
1025 1026 1027 1028 1029 |
# File 'lib/gr.rb', line 1025 def inqspace inquiry %i[double double int int] do |*pts| super(*pts) end end |
.inqspace3d ⇒ Object
Set the camera for orthographic or perspective projection.
The center of the 3d window is used as the focus point and the camera is
positioned relative to it, using camera distance, rotation and tilt similar
to setspace. This function can be used if the user prefers spherical
coordinates to setting the camera position directly, but has reduced
functionality in comparison to GR.settransformationparameters,
GR.setperspectiveprojection and GR.setorthographicprojection.
2429 2430 2431 2432 2433 |
# File 'lib/gr.rb', line 2429 def inqspace3d inquiry %i[int double double double double] do |*pts| super(*pts) end end |
.inqtext(x, y, string) ⇒ Object
Draw a text at position x, y using the given options and current text
attributes.
GR_TEXT_ENABLE_INLINE_MATH)
The values for x and y specify the text position. If the GR_TEXT_USE_WC
option is set, they are interpreted as world coordinates, otherwise as
normalized device coordinates. The string may contain new line characters
and inline math expressions ($...$). The latter are only taken into account,
if the GR_TEXT_ENABLE_INLINE_MATH option is set.
The attributes that control the appearance of text are text font and
precision, character expansion factor, character spacing, text color index,
character height, character up vector, text path and text alignment.
324 325 326 327 328 |
# File 'lib/gr.rb', line 324 def inqtext(x, y, string) inquiry [{ double: 4 }, { double: 4 }] do |tbx, tby| super(x, y, string, tbx, tby) end end |
.inqtext3d(x, y, z, string, axis) ⇒ Object
2437 2438 2439 2440 2441 |
# File 'lib/gr.rb', line 2437 def inqtext3d(x, y, z, string, axis) inquiry [{ double: 16 }, { double: 16 }] do |tbx, tby| super(x, y, z, string, axis, tbx, tby) end end |
.inqtextcolorind ⇒ Integer
Gets the current text color index.
This function gets the color of text output primitives.
712 713 714 |
# File 'lib/gr.rb', line 712 def inqtextcolorind inquiry_int { |pt| super(pt) } end |
.inqtextencoding ⇒ Object
2445 2446 2447 2448 2449 |
# File 'lib/gr.rb', line 2445 def inqtextencoding inquiry_int do |encoding| super(encoding) end end |
.inqtextext(x, y, string) ⇒ Object
inqtextext
1119 1120 1121 1122 1123 |
# File 'lib/gr.rb', line 1119 def inqtextext(x, y, string) inquiry [{ double: 4 }, { double: 4 }] do |tbx, tby| super(x, y, string, tbx, tby) end end |
.inqtextx(x, y, string, opts) ⇒ Object
330 331 332 333 334 |
# File 'lib/gr.rb', line 330 def inqtextx(x, y, string, opts) inquiry [{ double: 4 }, { double: 4 }] do |tbx, tby| super(x, y, string, opts, tbx, tby) end end |
.inqtransformationparameters ⇒ Object
Return the camera position, up vector and focus point.
2338 2339 2340 2341 2342 |
# File 'lib/gr.rb', line 2338 def inqtransformationparameters inquiry([:double] * 9) do |*pts| super(*pts) end end |
.inqtransparency ⇒ Object
Set the value of the alpha component associated with GR colors.
1881 1882 1883 |
# File 'lib/gr.rb', line 1881 def inqtransparency inquiry_double { |pt| super(pt) } end |
.inqviewport ⇒ Object
inqviewport
915 916 917 918 919 |
# File 'lib/gr.rb', line 915 def inquiry %i[double double double double] do |*pts| super(*pts) end end |
.inqvolumeflags ⇒ Array
Inquire the parameters which can be set for cpubasedvolume. The size of the resulting image, the way the volumeborder is calculated and the amount of threads which are used.
2514 2515 2516 2517 2518 |
# File 'lib/gr.rb', line 2514 def inqvolumeflags inquiry([:int] * 5) do |*pts| super(*pts) end end |
.inqvpsize ⇒ Object
FIXME! (#61)
2523 2524 2525 2526 2527 |
# File 'lib/gr.rb', line 2523 def inqvpsize inquiry %i[int int double] do |*pts| super(*pts) end end |
.inqwindow ⇒ Object
inqwindow
888 889 890 891 892 |
# File 'lib/gr.rb', line 888 def inqwindow inquiry %i[double double double double] do |*pts| super(*pts) end end |
.inqwindow3d ⇒ Object
Return the three dimensional window.
2389 2390 2391 2392 2393 |
# File 'lib/gr.rb', line 2389 def inqwindow3d inquiry([:double] * 6) do |*pts| super(*pts) end end |
.interp2(x, y, z, xq, yq, method, extrapval) ⇒ Object
Interpolation in two dimensions using one of four different methods. The
input points are located on a grid, described by x, y and z.
The target grid ist described by xq and yq.
Returns an array containing the resulting z-values.
flatten
2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 |
# File 'lib/gr.rb', line 2070 def interp2(x, y, z, xq, yq, method, extrapval) nx = x.length ny = y.length # nz = z.length nxq = xq.length nyq = yq.length inquiry(double: nxq * nyq) do |zq| super(nx, ny, x, y, z, nxq, nyq, xq, yq, zq, method, extrapval) end end |
.loadfont(str) ⇒ Object
Load a font file from a given filename.
This function loads a font from a given absolute filename and assigns a
font index to it. To use the loaded font call gr_settextfontprec using
the resulting font index and precision 3.
2459 2460 2461 2462 2463 |
# File 'lib/gr.rb', line 2459 def loadfont(str) inquiry_int do |font| super(str, font) end end |
.mathtex ⇒ Object
Generate a character string starting at the given location. Strings can be defined to create mathematical symbols and Greek letters using LaTeX syntax.
|
|
# File 'lib/gr.rb', line 1914
|
.moveselection ⇒ Object
|
|
# File 'lib/gr.rb', line 1940
|
.ndctowc(x, y) ⇒ Object
1681 1682 1683 1684 1685 1686 1687 |
# File 'lib/gr.rb', line 1681 def ndctowc(x, y) inquiry %i[double double] do |px, py| px.write_double x py.write_double y super(px, py) end end |
.nonuniformcellarray(x, y, dimx, dimy, color) ⇒ Object
Display a two dimensional color index array with nonuniform cell sizes.
The values for x and y are in world coordinates. x must contain
dimx + 1 elements and y must contain dimy + 1 elements. The elements
i and i+1 are respectively the edges of the i-th cell in X and Y direction.
380 381 382 383 384 385 386 |
# File 'lib/gr.rb', line 380 def nonuniformcellarray(x, y, dimx, dimy, color) raise ArgumentError unless x.length == dimx + 1 && y.length == dimy + 1 nx = dimx == x.length ? -dimx : dimx ny = dimy == y.length ? -dimy : dimy super(x, y, nx, ny, 1, 1, dimx, dimy, int(color)) end |
.nonuniformpolarcellarray(phi, r, ncol, nrow, color) ⇒ Object
Display a two dimensional color index array mapped to a disk using polar coordinates with nonuniform cell sizes.
The mapping of the polar coordinates and the drawing is performed similar
to gr_polarcellarray with the difference that the individual cell sizes
are specified allowing nonuniform sized cells.
447 448 449 450 451 452 453 |
# File 'lib/gr.rb', line 447 def nonuniformpolarcellarray(phi, r, ncol, nrow, color) raise ArgumentError unless (ncol..(ncol + 1)).include?(phi.length) && (nrow..(nrow + 1)).include?(r.length) dimphi = ncol == phi.length ? -ncol : ncol dimr = nrow == r.length ? -nrow : nrow super(0, 0, phi, r, dimphi, dimr, 1, 1, ncol, nrow, int(color)) end |
.opengks ⇒ Object
|
|
# File 'lib/gr.rb', line 134
|
.openws ⇒ Object
Open a graphical workstation.
|
|
# File 'lib/gr.rb', line 152
|
.panzoom(x, y, zoom) ⇒ Object
panzoom
2146 2147 2148 2149 2150 |
# File 'lib/gr.rb', line 2146 def panzoom(x, y, zoom) inquiry %i[double double double double] do |xmin, xmax, ymin, ymax| super(x, y, zoom, zoom, xmin, xmax, ymin, ymax) end end |
.path(x, y, codes) ⇒ Object
Draw paths using the given vertices and path codes.
See https://gr-framework.org/python-gr.html#gr.path for more details.
2239 2240 2241 2242 |
# File 'lib/gr.rb', line 2239 def path(x, y, codes) n = equal_length(x, y) super(n, x, y, codes) end |
.polarcellarray(x_org, y_org, phimin, phimax, rmin, rmax, dimphi, dimr, color) ⇒ Object
Display a two dimensional color index array mapped to a disk using polar coordinates.
The two dimensional color index array is mapped to the resulting image by
interpreting the X-axis of the array as the angle and the Y-axis as the
raidus. The center point of the resulting disk is located at xorg, yorg
and the radius of the disk is rmax.
The additional parameters to the function can be used to further control the mapping from polar to cartesian coordinates.
If rmin is greater than 0 the input data is mapped to a punctured disk
(or annulus) with an inner radius of rmin and an outer radius rmax. If
rmin is greater than rmax the Y-axis of the array is reversed.
The parameter phimin and phimax can be used to map the data to a
sector of the (punctured) disk starting at phimin and ending at phimax.
If phimin is greater than phimax the X-axis is reversed. The visible
sector is the one starting in mathematically positive direction
(counterclockwise) at the smaller angle and ending at the larger angle.
An example of the four possible options can be found below:
- phimin phimax Result
- 90 270 Left half visible, mapped counterclockwise
- 270 90 Left half visible, mapped clockwise
- -90 90 Right half visible, mapped counterclockwise
- 90 -90 Right half visible, mapped clockwise
430 431 432 |
# File 'lib/gr.rb', line 430 def polarcellarray(x_org, y_org, phimin, phimax, rmin, rmax, dimphi, dimr, color) super(x_org, y_org, phimin, phimax, rmin, rmax, dimphi, dimr, 1, 1, dimphi, dimr, int(color)) end |
.polygonmesh3d(px, py, pz, connections, colors) ⇒ Object
2529 2530 2531 2532 2533 |
# File 'lib/gr.rb', line 2529 def polygonmesh3d(px, py, pz, connections, colors) n_points = equal_length(px, py, pz) n_connections = colors.length super(n_points, px, py, pz, n_connections, int(connections), int(colors)) end |
.polyline(x, y, linewidth = nil, line_z = nil) ⇒ Object
Draw a polyline using the current line attributes, starting from the first data point and ending at the last data point.
The values for x and y are in world coordinates. The attributes that control the appearance of a polyline are linetype, linewidth and color index.
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 |
# File 'lib/gr.rb', line 224 def polyline(x, y, linewidth = nil, line_z = nil) # GR.jl - Multiple dispatch n = equal_length(x, y) if linewidth.nil? && line_z.nil? super(n, x, y) else linewidth ||= GR.inqlinewidth linewidth = if linewidth.is_a?(Numeric) Array.new(n, linewidth * 100) else raise ArgumentError if n != linewidth.length linewidth.map { |i| (100 * i).round } end line_z ||= GR.inqcolor(989) # FIXME color = if line_z.is_a?(Numeric) Array.new(n, line_z) else raise ArgumentError if n != line_z.length to_rgb_color(line_z) end z = linewidth.to_a.zip(color).flatten # to_a : NArray gdp(x, y, GDP_DRAW_LINES, z) end end |
.polyline3d(x, y, z) ⇒ Object
Draw a 3D curve using the current line attributes, starting from the first data point and ending at the last data point.
The values for x, y and z are in world coordinates. The attributes that
control the appearance of a polyline are linetype, linewidth and color
index.
1333 1334 1335 1336 |
# File 'lib/gr.rb', line 1333 def polyline3d(x, y, z) n = equal_length(x, y, z) super(n, x, y, z) end |
.polymarker(x, y, markersize = nil, marker_z = nil) ⇒ Object
Draw marker symbols centered at the given data points.
The values for x and y are in world coordinates. The attributes that control the appearance of a polymarker are marker type, marker size scale factor and color index.
262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 |
# File 'lib/gr.rb', line 262 def polymarker(x, y, markersize = nil, marker_z = nil) # GR.jl - Multiple dispatch n = equal_length(x, y) if markersize.nil? && marker_z.nil? super(n, x, y) else markersize ||= GR.inqmarkersize markersize = if markersize.is_a?(Numeric) Array.new(n, markersize * 100) else raise ArgumentError if n != markersize.length markersize.map { |i| (100 * i).round } end marker_z ||= GR.inqcolor(989) # FIXME color = if marker_z.is_a?(Numeric) Array.new(n, marker_z) else raise ArgumentError if n != marker_z.length to_rgb_color(marker_z) end z = markersize.to_a.zip(color).flatten # to_a : NArray gdp(x, y, GDP_DRAW_MARKERS, z) end end |
.polymarker3d(x, y, z) ⇒ Object
Draw marker symbols centered at the given 3D data points.
The values for x, y and z are in world coordinates. The attributes
that control the appearance of a polymarker are marker type, marker size
scale factor and color index.
1348 1349 1350 1351 |
# File 'lib/gr.rb', line 1348 def polymarker3d(x, y, z) n = equal_length(x, y, z) super(n, x, y, z) end |
.quiver(x, y, u, v, color) ⇒ Object
Draw a quiver plot on a grid of nx*ny points.
The values for x and y are in world coordinates.
2041 2042 2043 2044 2045 2046 2047 2048 2049 |
# File 'lib/gr.rb', line 2041 def quiver(x, y, u, v, color) nx = x.length ny = y.length if u.length != nx * ny || v.length != nx * ny raise ArgumentError, "u and v must have length nx * ny (expected #{nx * ny}, got u: #{u.length}, v: #{v.length})" end super(nx, ny, x, y, u, v, (color ? 1 : 0)) end |
.readimage(path) ⇒ Integer
1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 |
# File 'lib/gr.rb', line 1822 def readimage(path) # Feel free to make a pull request if you catch a mistake # or you have an idea to improve it. data = Fiddle::Pointer.malloc(Fiddle::SIZEOF_INTPTR_T, Fiddle::RUBY_FREE) w, h = inquiry [:int, :int] do |width, height| # data is a pointer of a pointer super(path, width, height, data) end d = data.ptr.to_str(w * h * Fiddle::SIZEOF_INT).unpack('L*') # UInt32 [w, h, d] end |
.redrawsegws ⇒ Object
|
|
# File 'lib/gr.rb', line 990
|
.reducepoints(xd, yd, n) ⇒ Object
Reduces the number of points of the x and y array.
1997 1998 1999 2000 2001 2002 2003 |
# File 'lib/gr.rb', line 1997 def reducepoints(xd, yd, n) nd = equal_length(xd, yd) inquiry [{ double: n }, { double: n }] do |x, y| # Different from Julia. x, y are initialized zero. super(nd, xd, yd, n, x, y) end end |
.resizeselection ⇒ Object
1944 1945 1946 1947 1948 |
# File 'lib/gr.rb', line 1944 def inqbbox inquiry %i[double double double double] do |*pts| super(*pts) end end |
.restorestate ⇒ Object
|
|
# File 'lib/gr.rb', line 1962
|
.samplelocator ⇒ Object
996 997 998 999 1000 |
# File 'lib/gr.rb', line 996 def samplelocator inquiry %i[double double int] do |*pts| super(*pts) end end |
.savestate ⇒ Object
|
|
# File 'lib/gr.rb', line 1960
|
.selectclipxform ⇒ Object
2278 2279 2280 |
# File 'lib/gr.rb', line 2278 def inqclipxform inquiry_int { |pt| super(pt) } end |
.selectcontext ⇒ Object
|
|
# File 'lib/gr.rb', line 1964
|
.selntran ⇒ Object
selntran selects a predefined transformation from world coordinates to
normalized device coordinates.
|
|
# File 'lib/gr.rb', line 921
|
.setapproximativecalculation ⇒ Object
Set if gr_cpubasedvolume is calculated approximative or exact. To use the exact calculation set approximative_calculation to 0. The default value is the approximative version, which can be set with the number 1.
|
|
# File 'lib/gr.rb', line 2493
|
.setarrowsize ⇒ Object
Set the arrow size to be used for subsequent arrow commands.
setarrowsize defines the arrow size for subsequent arrow primitives.
The default arrow size is 1.
|
|
# File 'lib/gr.rb', line 1799
|
.setarrowstyle ⇒ Object
Set the arrow style to be used for subsequent arrow commands.
setarrowstyle defines the arrow style for subsequent arrow primitives.
|
|
# File 'lib/gr.rb', line 1773
|
.setbordercolorind ⇒ Object
Define the color of subsequent path output primitives.
2272 2273 2274 |
# File 'lib/gr.rb', line 2272 def inqbordercolorind inquiry_int { |pt| super(pt) } end |
.setborderwidth ⇒ Object
Define the border width of subsequent path output primitives.
2262 2263 2264 |
# File 'lib/gr.rb', line 2262 def inqborderwidth inquiry_double { |pt| super(pt) } end |
.setcharexpan ⇒ Object
Set the current character expansion factor (width to height ratio).
setcharexpan defines the width of subsequent text output primitives.
The expansion factor alters the width of the generated characters, but not
their height. The default text expansion factor is 1, or one times the
normal width-to-height ratio of the text.
|
|
# File 'lib/gr.rb', line 683
|
.setcharheight ⇒ Object
Set the current character height.
setcharheight defines the height of subsequent text output primitives.
Text height is defined as a percentage of the default window. GR uses the
default text height of 0.027 (2.7% of the height of the default window).
|
|
# File 'lib/gr.rb', line 716
|
.setcharspace ⇒ Object
|
|
# File 'lib/gr.rb', line 695
|
.setcharup ⇒ Object
Set the current character text angle up vector.
setcharup defines the vertical rotation of subsequent text output
primitives. The text up vector is initially set to (0, 1), horizontal to
the baseline.
|
|
# File 'lib/gr.rb', line 737
|
.setclip ⇒ Object
Set the clipping indicator.
- 0 : Clipping is off. Data outside of the window will be drawn.
- 1 : Clipping is on. Data outside of the window will not be drawn.
setclip enables or disables clipping of the image drawn in the current
window. Clipping is defined as the removal of those portions of the graph
that lie outside of the defined viewport. If clipping is on, GR does not
draw generated output primitives past the viewport boundaries. If clipping
is off, primitives may exceed the viewport boundaries, and they will be
drawn to the edge of the workstation window. By default, clipping is on.
|
|
# File 'lib/gr.rb', line 932
|
.setclipregion ⇒ Object
2550 2551 2552 |
# File 'lib/gr.rb', line 2550 def inqclipregion inquiry_int { |pt| super(pt) } end |
.setclipsector ⇒ Object
2556 2557 2558 2559 2560 |
# File 'lib/gr.rb', line 2556 def inqclipsector inquiry %i[double double] do |*pts| super(*pts) end end |
.setcolormap ⇒ Object
Set the currently used colormap.
- A list of colormaps can be found at: https://gr-framework.org/colormaps.html Using a negative index will use the reverse of the selected colormap.
|
|
# File 'lib/gr.rb', line 1520
|
.setcolormapfromrgb(r, g, b, positions: nil) ⇒ Object
GR.jl and python-gr have different APIsI
Define a colormap by a list of RGB colors. This function defines a colormap using the n given color intensities. If less than 256 colors are provided the colors intensities are linear interpolated. If x is NULL the given color values are evenly distributed in the colormap. Otherwise the normalized value of x defines the position of the color in the colormap.
1551 1552 1553 1554 1555 1556 1557 1558 1559 |
# File 'lib/gr.rb', line 1551 def setcolormapfromrgb(r, g, b, positions: nil) n = equal_length(r, g, b) if positions.nil? positions = Fiddle::NULL elsif positions.length != n raise ArgumentError, "positions must have length #{n} (got #{positions.length})" end super(n, r, g, b, positions) end |
.setcolorrep ⇒ Object
Redefine an existing color index representation by specifying an RGB color triplet.
|
|
# File 'lib/gr.rb', line 855
|
.setcoordxform(mat) ⇒ Object
Change the coordinate transformation according to the given matrix.
1889 1890 1891 1892 1893 |
# File 'lib/gr.rb', line 1889 def setcoordxform(mat) raise ArgumentError, "mat must have 6 elements (got #{mat.size})" if mat.size != 6 super(mat) end |
.setfillcolorind ⇒ Object
Sets the current fill area color index.
setfillcolorind defines the color of subsequent fill area output
primitives. GR uses the default foreground color (black=1) for the default
fill area color index.
|
|
# File 'lib/gr.rb', line 826
|
.setfillintstyle ⇒ Object
Set the fill area interior style to be used for fill areas.
setfillintstyle defines the interior style for subsequent fill area output
primitives. The default interior style is HOLLOW.
|
|
# File 'lib/gr.rb', line 781
|
.setfillstyle ⇒ Object
Sets the fill style to be used for subsequent fill areas.
setfillstyle specifies an index when PATTERN fill or HATCH fill is
requested by thesetfillintstyle function. If the interior style is set
to PATTERN, the fill style index points to a device-independent pattern
table. If interior style is set to HATCH the fill style index indicates
different hatch styles. If HOLLOW or SOLID is specified for the interior
style, the fill style index is unused.
|
|
# File 'lib/gr.rb', line 804
|
.setlinecolorind ⇒ Object
Define the color of subsequent polyline output primitives.
551 552 553 |
# File 'lib/gr.rb', line 551 def inqlinecolorind inquiry_int { |pt| super(pt) } end |
.setlinetype ⇒ Object
Specify the line style for polylines.
526 527 528 |
# File 'lib/gr.rb', line 526 def inqlinetype inquiry_int { |pt| super(pt) } end |
.setlinewidth ⇒ Object
Define the line width of subsequent polyline output primitives.
The line width is calculated as the nominal line width generated on the workstation multiplied by the line width scale factor. This value is mapped by the workstation to the nearest available line width. The default line width is 1.0, or 1 times the line width generated on the graphics device.
541 542 543 |
# File 'lib/gr.rb', line 541 def inqlinewidth inquiry_double { |pt| super(pt) } end |
.setmarkercolorind ⇒ Object
Define the color of subsequent polymarker output primitives.
627 628 629 |
# File 'lib/gr.rb', line 627 def inqmarkercolorind inquiry_int { |pt| super(pt) } end |
.setmarkersize ⇒ Object
Specify the marker size for polymarkers.
The polymarker size is calculated as the nominal size generated on the graphics device multiplied by the marker size scale factor.
|
|
# File 'lib/gr.rb', line 604
|
.setmarkertype ⇒ Object
Specify the marker type for polymarkers.
Polymarkers appear centered over their specified coordinates.
600 601 602 |
# File 'lib/gr.rb', line 600 def inqmarkertype inquiry_int { |pt| super(pt) } end |
.setmathfont ⇒ Object
2544 2545 2546 |
# File 'lib/gr.rb', line 2544 def inqmathfont inquiry_int { |pt| super(pt) } end |
.setorthographicprojection ⇒ Object
Set parameters for orthographic transformation. Switches projection type to orthographic.
|
|
# File 'lib/gr.rb', line 2344
|
.setperspectiveprojection ⇒ Object
Set the far and near clipping plane for perspective projection and the vertical field ov view. Switches projection type to perspective.
|
|
# File 'lib/gr.rb', line 2303
|
.setpicturesizeforvolume ⇒ Object
Set the width and height of the resulting picture. These values are only used for gr_volume and gr_cpubasedvolume. The default values are 1000 for both.
|
|
# File 'lib/gr.rb', line 2472
|
.setprojectiontype ⇒ Object
Set the projection type with this flag.
|
|
# File 'lib/gr.rb', line 2288
|
.setregenflags ⇒ Object
|
|
# File 'lib/gr.rb', line 1955
|
.setresamplemethod ⇒ Object
Set the resample method used for drawimage.
|
|
# File 'lib/gr.rb', line 2152
|
.setscale ⇒ Integer
setscale sets the type of transformation to be used for subsequent GR
output primitives.
setscale defines the current transformation according to the given scale
specification which may be or'ed together using any of the above options.
GR uses these options for all subsequent output primitives until another
value is provided. The scale options are used to transform points from an
abstract logarithmic or semi-logarithmic coordinate system, which may be
flipped along each axis, into the world coordinate system.
Note: When applying a logarithmic transformation to a specific axis, the system assumes that the axes limits are greater than zero.
|
|
# File 'lib/gr.rb', line 1031
|
.setscalefactors3d ⇒ Object
Set the scale factor for each axis. A one means no scale. The scaling factors must not be zero. .
|
|
# File 'lib/gr.rb', line 2395
|
.setsegtran ⇒ Object
|
|
# File 'lib/gr.rb', line 992
|
.setshadow ⇒ Object
setshadow allows drawing of shadows, realized by images painted
underneath, and offset from, graphics objects such that the shadow mimics
the effect of a light source cast on the graphics objects.
|
|
# File 'lib/gr.rb', line 1860
|
.setspace ⇒ Integer
Set the abstract Z-space used for mapping three-dimensional output primitives into the current world coordinate space.
setspace establishes the limits of an abstract Z-axis and defines the
angles for rotation and for the viewing angle (tilt) of a simulated
three-dimensional graph, used for mapping corresponding output primitives
into the current window. These settings are used for all subsequent
three-dimensional output primitives until other values are specified.
Angles of rotation and viewing angle must be specified between 0° and 90°.
1025 1026 1027 1028 1029 |
# File 'lib/gr.rb', line 1025 def inqspace inquiry %i[double double int int] do |*pts| super(*pts) end end |
.setspace3d ⇒ Object
Set the camera for orthographic or perspective projection.
The center of the 3d window is used as the focus point and the camera is
positioned relative to it, using camera distance, rotation and tilt similar
to setspace. This function can be used if the user prefers spherical
coordinates to setting the camera position directly, but has reduced
functionality in comparison to GR.settransformationparameters,
GR.setperspectiveprojection and GR.setorthographicprojection.
2429 2430 2431 2432 2433 |
# File 'lib/gr.rb', line 2429 def inqspace3d inquiry %i[int double double double double] do |*pts| super(*pts) end end |
.settextalign ⇒ Object
- 1 : TEXT_HALIGN_LEFT - Left justify
- 2 : TEXT_HALIGN_CENTER - Center justify
- 3 : TEXT_HALIGN_RIGHT - Right justify
settextalign specifies how the characters in a text primitive will be
aligned in horizontal and vertical space. The default text alignment
indicates horizontal left alignment and vertical baseline alignment.
|
|
# File 'lib/gr.rb', line 763
|
.settextcolorind ⇒ Object
Sets the current text color index.
settextcolorind defines the color of subsequent text output primitives.
GR uses the default foreground color (black=1) for the default text color
index.
|
|
# File 'lib/gr.rb', line 697
|
.settextencoding ⇒ Object
2445 2446 2447 2448 2449 |
# File 'lib/gr.rb', line 2445 def inqtextencoding inquiry_int do |encoding| super(encoding) end end |
.settextfontprec ⇒ Object
Specify the text font and precision for subsequent text output primitives.
The appearance of a font depends on the text precision value specified. STRING, CHARACTER or STROKE precision allows for a greater or lesser realization of the text primitives, for efficiency. STRING is the default precision for GR and produces the highest quality output using either native font rendering or FreeType. OUTLINE uses the GR path rendering functions to draw individual glyphs and produces the highest quality output.
|
|
# File 'lib/gr.rb', line 631
|
.settextpath ⇒ Object
Define the current direction in which subsequent text will be drawn.
|
|
# File 'lib/gr.rb', line 748
|
.setthreadnumber ⇒ Object
Set the number of threads which can run parallel. The default value is the number of threads the cpu has.
|
|
# File 'lib/gr.rb', line 2465
|
.settransformationparameters ⇒ Object
Method to set the camera position, the upward facing direction and the focus point of the shown volume.
|
|
# File 'lib/gr.rb', line 2321
|
.settransparency ⇒ Object
Set the value of the alpha component associated with GR colors.
1881 1882 1883 |
# File 'lib/gr.rb', line 1881 def inqtransparency inquiry_double { |pt| super(pt) } end |
.setviewport ⇒ Object
setviewport establishes a rectangular subspace of normalized device
coordinates.
setviewport defines the rectangular portion of the Normalized Device
Coordinate (NDC) space to be associated with the specified normalization
transformation. The NDC viewport and World Coordinate (WC) window define
the normalization transformation through which all output primitives pass.
The WC window is mapped onto the rectangular NDC viewport which is, in
turn, mapped onto the display surface of the open and active workstation,
in device coordinates.
|
|
# File 'lib/gr.rb', line 894
|
.setvolumebordercalculation(# @!method setthreadnumber) ⇒ Object
Set the gr_volume border type with this flag. This inflicts how the volume is calculated. When the flag is set to GR_VOLUME_WITH_BORDER the border will be calculated the same as the points inside the volume.
|
|
# File 'lib/gr.rb', line 2481
|
.setwindow ⇒ Object
setwindow establishes a window, or rectangular subspace, of world
coordinates to be plotted. If you desire log scaling or mirror-imaging of
axes, use the SETSCALE function.
setwindow defines the rectangular portion of the World Coordinate space
(WC) to be associated with the specified normalization transformation. The
WC window and the Normalized Device Coordinates (NDC) viewport define the
normalization transformation through which all output primitives are
mapped. The WC window is mapped onto the rectangular NDC viewport which is,
in turn, mapped onto the display surface of the open and active workstation,
in device coordinates. By default, GR uses the range [0,1] x [0,1], in
world coordinates, as the normalization transformation window.
|
|
# File 'lib/gr.rb', line 865
|
.setwindow3d ⇒ Object
Set the three dimensional window. Only used for perspective and orthographic projection.
|
|
# File 'lib/gr.rb', line 2376
|
.setwsviewport ⇒ Object
Define the size of the workstation graphics window in meters.
setwsviewport places a workstation window on the display of the
specified size in meters. This command allows the workstation window to be
accurately sized for a display or hardcopy device, and is often useful for
sizing graphs for desktop publishing applications.
|
|
# File 'lib/gr.rb', line 968
|
.setwswindow ⇒ Object
Set the area of the NDC viewport that is to be drawn in the workstation window.
setwswindow defines the rectangular area of the Normalized Device
Coordinate space to be output to the device. By default, the workstation
transformation will map the range [0,1] x [0,1] in NDC onto the largest
square on the workstation’s display surface. The aspect ratio of the
workstation window is maintained at 1 to 1.
|
|
# File 'lib/gr.rb', line 948
|
.shade ⇒ Object
hexbin is overwritten by require gr/plot.
The original method is moved to the underscored name.
The yard document will show the method name after evacuation.
|
|
# File 'lib/gr.rb', line 2088
|
.shadelines(x, y, dims: [1200, 1200], xform: 1) ⇒ Object
Display a line set as an aggregated and rasterized image.
The values for x and y are in world coordinates.
NaN values can be used to separate the point set into line segments.
2133 2134 2135 2136 2137 |
# File 'lib/gr.rb', line 2133 def shadelines(x, y, dims: [1200, 1200], xform: 1) n = x.length w, h = dims super(n, x, y, xform, w, h) end |
.shadepoints(x, y, dims: [1200, 1200], xform: 1) ⇒ Object
Display a point set as a aggregated and rasterized image.
The values for x and y are in world coordinates.
2110 2111 2112 2113 2114 |
# File 'lib/gr.rb', line 2110 def shadepoints(x, y, dims: [1200, 1200], xform: 1) n = x.length w, h = dims super(n, x, y, xform, w, h) end |
.spline(x, y, m, method) ⇒ Object
Generate a cubic spline-fit, starting from the first data point and ending at the last data point.
The values for x and y are in world coordinates. The attributes that
control the appearance of a spline-fit are linetype, linewidth and color
index.
486 487 488 489 |
# File 'lib/gr.rb', line 486 def spline(x, y, m, method) n = equal_length(x, y) super(n, x, y, m, method) end |
.startlistener ⇒ Integer
2536 2537 2538 2539 2540 |
# File 'lib/gr.rb', line 2536 def startlistener inquiry_int do |ret| super(ret) end end |
.surface(x, y, z, option) ⇒ Object
surface is overwritten by require gr/plot.
The original method is moved to the underscored name.
The yard document will show the method name after evacuation.
Draw a three-dimensional surface plot for the given data points.
x and y define a grid. z is a singly dimensioned array containing at
least nx * ny data points. Z describes the surface height at each point
on the grid. Data is ordered as shown in the table:
1425 1426 1427 1428 1429 1430 1431 |
# File 'lib/gr.rb', line 1425 def surface(x, y, z, option) nx = x.length ny = y.length raise ArgumentError, "z must have length nx * ny (expected #{nx * ny}, got #{z.length})" if z.length != nx * ny super(nx, ny, x, y, z, option) end |
.text ⇒ Object
Draw a text at position x, y using the current text attributes.
The values for x and y are in normalized device coordinates.
The attributes that control the appearance of text are text font and
precision, character expansion factor, character spacing, text color index,
character height, character up vector, text path and text alignment.
|
|
# File 'lib/gr.rb', line 289
|
.text3d ⇒ Object
2437 2438 2439 2440 2441 |
# File 'lib/gr.rb', line 2437 def inqtext3d(x, y, z, string, axis) inquiry [{ double: 16 }, { double: 16 }] do |tbx, tby| super(x, y, z, string, axis, tbx, tby) end end |
.text_maxsize ⇒ Object
|
|
# File 'lib/gr.rb', line 1953
|
.textext ⇒ Integer
Draw a text at position x, y using the current text attributes.
Strings can be defined to create basic mathematical expressions and Greek
letters.
The values for X and Y are in normalized device coordinates. The attributes that control the appearance of text are text font and precision, character expansion factor, character spacing, text color index, character height, character up vector, text path and text alignment.
The character string is interpreted to be a simple mathematical formula. The following notations apply:
Subscripts and superscripts: These are indicated by carets ('^') and underscores ('_'). If the sub/superscript contains more than one character, it must be enclosed in curly braces ('{}').
Fractions are typeset with A '/' B, where A stands for the numerator and B for the denominator.
To include a Greek letter you must specify the corresponding keyword after a backslash ('') character. The text translator produces uppercase or lowercase Greek letters depending on the case of the keyword.
- Α α - alpha
- Β β - beta
- Γ γ - gamma
- Δ δ - delta
- Ε ε - epsilon
- Ζ ζ - zeta
- Η η - eta
- Θ θ - theta
- Ι ι - iota
- Κ κ - kappa
- Λ λ - lambda
- Μ μ - mu
- Ν ν - Nu / v
- Ξ ξ - xi
- Ο ο - omicron
- Π π - pi
- Ρ ρ - rho
- Σ σ - sigma
- Τ τ - tau
- Υ υ - upsilon
- Φ φ - phi
- Χ χ - chi
- Ψ ψ - psi
- Ω ω - omega
Note:
\vis a replacement for\nuwhich would conflict with\n(newline) For more sophisticated mathematical formulas, you should use themathtexfunction.
|
|
# File 'lib/gr.rb', line 1061
|
.textx ⇒ Object
Draw a text at position x, y using the given options and current text
attributes.
GR_TEXT_ENABLE_INLINE_MATH)
The values for x and y specify the text position. If the GR_TEXT_USE_WC
option is set, they are interpreted as world coordinates, otherwise as
normalized device coordinates. The string may contain new line characters
and inline math expressions ($...$). The latter are only taken into account,
if the GR_TEXT_ENABLE_INLINE_MATH option is set.
The attributes that control the appearance of text are text font and
precision, character expansion factor, character spacing, text color index,
character height, character up vector, text path and text alignment.
324 325 326 327 328 |
# File 'lib/gr.rb', line 324 def inqtext(x, y, string) inquiry [{ double: 4 }, { double: 4 }] do |tbx, tby| super(x, y, string, tbx, tby) end end |
.tick ⇒ Numeric
|
|
# File 'lib/gr.rb', line 1588
|
.titles3d ⇒ Object
Display axis titles just outside of their respective axes.
|
|
# File 'lib/gr.rb', line 1393
|
.to_rgb_color(z) ⇒ Array, NArray
2246 2247 2248 2249 2250 2251 2252 2253 2254 |
# File 'lib/gr.rb', line 2246 def to_rgb_color(z) zmin, zmax = z.minmax return Array.new(z.length, 0) if zmax == zmin z.map do |i| zi = (i - zmin) / (zmax - zmin).to_f inqcolor(1000 + (zi * 255).round) end end |
.tricontour(x, y, z, levels) ⇒ Object
Draw a contour plot for the given triangle mesh.
1496 1497 1498 1499 1500 |
# File 'lib/gr.rb', line 1496 def tricontour(x, y, z, levels) npoints = equal_length(x, y, z) nlevels = levels.length super(npoints, x, y, z, nlevels, levels) end |
.trisurface(x, y, z) ⇒ Object
Draw a triangular surface plot for the given data points.
2011 2012 2013 2014 |
# File 'lib/gr.rb', line 2011 def trisurface(x, y, z) n = [x, y, z].map(&:length).min super(n, x, y, z) end |
.updategks ⇒ Object
|
|
# File 'lib/gr.rb', line 1004
|
.updatews ⇒ Object
Update the specified workstation.
|
|
# File 'lib/gr.rb', line 208
|
.uselinespec ⇒ Integer
1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 |
# File 'lib/gr.rb', line 1971 def delaunay(x, y) # Feel free to make a pull request if you catch a mistake # or you have an idea to improve it. npoints = equal_length(x, y) triangles = Fiddle::Pointer.malloc(Fiddle::SIZEOF_INTPTR_T, Fiddle::RUBY_FREE) dim = 3 n_tri = inquiry_int do |ntri| super(npoints, x, y, ntri, triangles) end if n_tri > 0 tri = triangles.ptr.to_str(dim * n_tri * Fiddle::SIZEOF_INT).unpack('l*') # Int32 # Ruby : 0-based indexing # Julia : 1-based indexing tri = tri.each_slice(dim).to_a [n_tri, tri] else 0 end end |
.validaterange ⇒ Integer
1594 1595 1596 1597 1598 1599 1600 |
# File 'lib/gr.rb', line 1594 def adjustlimits(amin, amax) inquiry %i[double double] do |pamin, pamax| pamin.write_double amin pamax.write_double amax super(pamin, pamax) end end |
.verrorbars(x, y, e1, e2) ⇒ Object
Draw a standard vertical error bar graph.
1305 1306 1307 1308 |
# File 'lib/gr.rb', line 1305 def (x, y, e1, e2) n = equal_length(x, y, e1, e2) super(n, x, y, e1, e2) end |
.version ⇒ String
Returns the combined version strings of the GR runtime.
2084 2085 2086 |
# File 'lib/gr.rb', line 2084 def version super.to_s end |
.wc3towc(x, y, z) ⇒ Object
1697 1698 1699 1700 1701 1702 1703 1704 |
# File 'lib/gr.rb', line 1697 def wc3towc(x, y, z) inquiry %i[double double double] do |px, py, pz| px.write_double x py.write_double y pz.write_double z super(px, py, pz) end end |
.wctondc(x, y) ⇒ Object
1689 1690 1691 1692 1693 1694 1695 |
# File 'lib/gr.rb', line 1689 def wctondc(x, y) inquiry %i[double double] do |px, py| px.write_double x py.write_double y super(px, py) end end |