Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
(graphics/R-rgl) Updated 0.107.14 to 1.0.1
# rgl 1.0.1 ## Major changes * The long promised deprecations of the `rgl.*` functions have happened. Now deprecated: `rgl.abclines`, `rgl.bbox`, `rgl.bg`, `rgl.clear`, `rgl.clipplanes`, `rgl.close`, `rgl.light`, `rgl.lines`, `rgl.linestrips`, `rgl.material`, `rgl.open`, `rgl.planes`, `rgl.points`, `rgl.quads`, `rgl.select3d`, `rgl.set`, `rgl.setAxisCallback`, `rgl.sprites`, `rgl.surface`, `rgl.texts`, `rgl.triangles`, and `rgl.viewpoint`. * A vignette "Deprecating the `rgl.*` interface" has been added. * Also deprecated: `elementId2Prefix`, `writeWebGL` ## Minor changes * Since `rgl.material` is deprecated and no longer contains the list of material types in its argument list, `rgl.material.names` and `rgl.material.readonly` have been added. * Similarly, `rgl.par3d.names` and `rgl.par3d.readonly` contain lists of properties that may be set or queried in `par3d()`. * The flexibility improvements for `surface3d()` in 0.111.6 were incomplete. * Argument `flip` has been added to `surface3d()` to allow front and back to be switched. # rgl 0.111.6 ## Minor changes * Added a panning example to the help page for `setUserCallbacks()`. * Replaced all calls to `sprintf` from C/C++ code with calls to `snprintf`. * `surface3d` and `rgl.surface` are now more flexible, allowing any of the 3 coordinates to be a vector or matrix as long as at least one is a matrix. * `material3d` can now specify an `id` to query properties for individual objects. * Since `rgl.material` is soon to be deprecated and no longer contain the list of material types in its argument list, `rgl.material.names` and `rgl.material.readonly` have been added. * Similarly, `rgl.par3d.names` and `rgl.par3d.readonly` contain lists of properties that may be set or queried in `par3d()`. * Made some examples conditional on interactive use to save time on CRAN. ## Bug fixes * Default mouse modes used when a window is opened by an `rgl.*` call (which is not recommended!) now match the defaults in `rgl::r3dDefaults`. * Missing values could cause `surface3d()` to segfault. * The C source code for `gl2psGetFileFormat` missed declaring a prototype. # rgl 0.110.2 ## Major changes * Material property `"blend"` has been added, to allow various kinds of blending for semi-transparent objects (issue #245). ## Minor changes * The `Buffer` object now handles reading of sparse accessors. * Low level drawing of primitives has been made more memory efficient. This is only likely to make a noticeable change with very large objects, where R was running out of memory because of unnecessary duplication. (Related to issue #260.) * Recycling of x, y and z vectors in several functions is more consistent. * The `polygon3d()` function now chooses coordinates automatically, as `triangulate()` does (PR #262.) * The `mtext3d()` and related functions such as `title3d()` now accept language objects other than expressions, as `plotmath3d()` always has (issue #273). ## Bug fixes * The bounding box could be calculated incorrectly if data all had large values (issue #250). * Shiny displays failed to load the shaders (issue #249). * `transform3d()` failed due to missing argument (issue #253). * `readOBJ()` is now more flexible in what kinds of separators it will accept. (issue #258). * Failure to initialize could cause a segfault. * On non-macOS platforms, gray-scale textures failed to display, with a message about an invalid enumerant. * The third coordinate for `adj` that was added in 0.108.3 was not rendered properly in `rglwidget()` displays of text. This sometimes caused text to disappear when it was near the far limit of the display (issue #269). * The X11 error fix in 0.109.6 could result in R freezing in `Rcmdr`. * Low level drawing functions are now more consistent about returning an invisible `NULL` if asked to plot zero items, rather than raising an error or crashing (issue #274). * Calling `axis3d()` with no ticks or labels no longer triggers an error, it now silently returns `NULL`. # rgl 0.109.6 ## Minor changes * `rglwidget()` displays now act on "pointer" events, not just "mouse" events, so they should be more usable on touch screens and tablets (PR #240). ## Bug fixes * Plotting `scene3d()` objects didn't handle suppressed axes properly, drawing the default axis instead (issue #241). * On some systems using X11, `rgl` would segfault when the "fixed" font was not found. * X11 errors could cause R to abort. # rgl 0.109.2 ## Major changes * Changes to support glTF animation: - Handling of `embedding = "modify"` for the model matrix has changed. Now the centering step is only done for `embedding = "replace"`. In addition, various bugs have been fixed. - If a subscene has no lights defined, the lights from the parent are used. - `plot.rglscene()` now ends with the root subscene as current. It also allows specification of `open3d()` parameters in a list. - The `MATn` types in `Buffer` are returned as arrays with dim `c(n, n, count)`. - The `plot3d.rglscene` method now passes `...` to `open3d()`. - The `setUserShaders()` function now allows arrays of 4x4 matrices as "uniforms", and allows additional textures to be specified. * `sprites3d()` now has the option of `rotating = TRUE`, to allow 3D sprites to rotate with the scene. * Added `getShaders()` function to get shaders used in WebGL. * Now detects if `rgl` is running within `reprex::reprex()` and if so arranges that a screenshot will be included in the output. * Added default shaders to be used in `rglwidget()`, rather than constructing them on the fly. This incompatibly affects the use of lights and clipping planes with user shaders: their data is now stored in arrays rather than multiple numbered variables. ## Minor changes * Now that `pkgdown` 2.0.0 has been released, a number of internal workarounds to support the development version have been removed. * Added `as.mesh3d()` methods for `"rglsubscene"` and `"rglscene"`. * `open3d()` now handles `useNULL` and `silent` arguments passed in `params`. * Controls passed to `playwidget()` may now include a component specifying HTML dependencies. * Added `rglwidgetClass.readAccessor()` method to let other code use the buffering. * Changed the internal organization of bounding box calculations. * All functions that produce meshes now accept material properties. Newly modified to do so using the `...` argument: `cylinder3d()`, and `getBoundary3d()`. * Updated the system requirements and installation instructions. * Solid bounding box decorations now try harder to display 3 faces (issue #206). * Now that `webshot2` is on CRAN, instructions for installing it from Github have been removed. * Sometimes `webshot2` snapshots are very slow, so the default for the `webshot` argument to `snapshot3d()` now depends on the `RGL_USE_WEBSHOT` environment variable, using `TRUE` if it is unset. (Reported by Prof. B. D. Ripley.) * If the Chrome browser is not found, `snapshot3d(webshot = TRUE)` now issues a warning and reverts to using `rgl.snapshot()`. * Buffers now use "normalized integers" to store color or texture coordinate values that lie between 0 and 1 when it saves some space. * At the request of CRAN, the `akima` package is no longer suggested. ## Bug fixes * `as.mesh3d.rglobject()` didn't handle objects with indices properly. * In WebGL, the front vs back calculation sometimes got the wrong result (issue #164). * `pop3d(tag = x)` did not always find the objects with `tag == x` if they were not in the current subscene. * The default values for `front` and `back` in `rgl.material` and `material3d` are now `"filled"`, as documented in some places. * The `fog` setting wasn't handled properly by `bg3d()`. * Numerous cases of partial argument matching were fixed (suggestion of Henrik Bengtsson in issue #170.) * Argument `col` is accepted as a synonym for `color` in `material3d()` and `rgl.material()`. * `planes3d()` objects were not displayed consistently in `rgl` windows and WebGL displays, because the bounding boxes were not computed consistently (issue #169). * Some initialization wasn't done properly in Shiny apps, so they failed after a redraw (issue #173). * Buffers are now optional, as they don't work with Shiny scene changes (also issue #173). * The NULL device would sometimes miscalculate the bounding box. * `selectpoints3d(closest = TRUE)` selected too many points when multiple objects were in the scene. * Clearing nested subscenes could cause a segfault and crash. * In `knitr` and `rmarkdown`, blank plots could be shown when `par3d(skipRedraw=TRUE)` was set (issue #188). * Objects drawn with `sprites3d()` weren't lit correctly in WebGL (issue #189). * Objects with textures were sometimes drawn more than once, both before the texture loaded and after. This was most noticeable for objects with user textures. * Axis mode `"pretty"` got lost when scenes were redrawn. * Tick labels were sometimes lost in WebGL displays and `snapshot3d()` results (issue #197). * The new material properties from 0.107.10 and 0.108.3 were not handled properly by `plotmath3d()`. * `rglMouse()` did not set the default value of the drop-down selector properly (issue #213). * `merge.mesh3d()`, used by `filledContour3d()`, didn't handle colors properly (issue #212). * `bg3d(sphere = TRUE)` has been fixed (issue #207). * Textures were not appearing on spheres, and front-back differences weren't being rendered (issue #217). * When "knitting" within RStudio under R 4.2.0 on Windows, `rgl` scenes didn't appear (reported by Dieter Menne.) A workaround has been added. * In `rglwidget()`, axis labels were not always displayed, and did not move with solid bounding box decorations properly (issue #206). * On some systems, `lines3d()` using both missing values and transparency did not draw properly (issue #234, originally reported by Gaspar Jekely). * The `rglShared()` example failed when `crosstalk` was uninstalled. # rgl 0.108.3.2 ## Bug fixes * Changes introduced in 0.100.50 lacked checks; these caused segfaults in Windows with R 4.2.0 and RStudio (issue #208). * A typo caused problems loading fonts on some systems. # rgl 0.108.3 ## Major changes * Added `getBoundary3d()` function to extract the boundary edges of a mesh. * Added material property `tag`, a string associated with each object. The value is reported by `ids3d(tags = TRUE)` and may be used to select objects in most functions that use ids, but otherwise is largely ignored by `rgl`. The `tagged3d()` function returns information on tags. * Primitive types (points, lines, segments, triangles, quads) can now accept an `indices` parameter, similar to the indices in `mesh3d` objects. * Added `Buffer` object, based on glTF design, for holding binary data for `rglwidget()`. ## Minor changes * Allowed for a third coordinate in `text3d()`'s `adj` parameter. * Added support for `adj`, `pos` and `offset` to `sprites3d()`. * Added support for `pos` values of `0` (at specified location), `5` (in front of it), and `6` (behind it) in `text3d()`, `sprites3d()` and `plotmath3d()`. * `crosstalk` is now a Suggested package, rather than a required one. * The `Makevars.ucrt` file has been modified with contributions from Tomas Kalibera to work with his `winutf8` build of R. * `bgplot3d()` no longer pauses for each page when running examples. * `deldir` version 1.0-2 is incompatible with `rgl`. Added the `checkDeldir()` function to avoid running it. * `shade3d()` treated texture coordinates like colors, and duplicated the first one for the whole face when `meshColor = "faces"` was chosen. Instead, they are now treated like vertex coordinates. (Reported by Michael Sumner in issue #145). * Corrected the documentation and made the implementations of `asHomogeneous()`, `asEuclidean()` etc. more consistent. * An `as.rglscene()` generic has been added, though no methods are defined in this package. * `downlit` 0.4.0 has been released with support for `rgl`, so instructions for installing the devel version have been removed. ## Bug fixes * Fixed rendering of text as sprites3d() objects. * Added `--static` flag to configure script for FreeType installation. (Suggestion of Simon Urbanek and Prof. Brian Ripley.) * `shade3d()`, `wire3d()` and `dots3d()` overrode `"front"` and `"back"` material settings in mesh objects. * `rglwidget()` handling of bounding box decorations had several bugs. * `rgl` could not find routines in the DLL on some Windows installs (Issue 148.) * Some cases where allocations were not protected have been fixed.
- Loading branch information