Skip to content

Releases: dmurdoch/rgl

v1.3.16

06 Jan 17:23
Compare
Choose a tag to compare

rgl 1.3.16

Bug fixes

  • triangulate() now uses the earcut library
    from https://github.com/mapbox/earcut.hpp, which
    should be faster and more reliable than the
    previous R implementation.
  • In cases where the X11 server did not provide sufficient
    support, rgl.init() could sometimes segfault. That has
    been fixed, and warning messages have been made more
    informative.

v1.3.14

16 Nov 17:14
7365676
Compare
Choose a tag to compare

rgl 1.3.14

Minor changes

  • rgl.incrementID() has been added.
  • An example using log axes has been added to the
    help page for axes3d().

Bug fixes

  • clear3d("all"), calling bg3d() on the root
    subscene, and some cases of pop3d() involving the
    background could create a leak of a background object
    (issue #439). For back compatibility of saved results, these cases
    still increment the object ID number, but don't
    actually create a new object.
  • rglwidget() displays didn't support objects with
    smooth = FALSE.

v1.3.12

28 Oct 12:21
Compare
Choose a tag to compare

rgl 1.3.12

Minor changes

  • readSTL() can now read (some) ASCII format STL files.
  • The configure script has had minor changes, and autoconf
    support files have been updated.
  • uname is no longer used during startup (PR #435
    submitted by Jonathon Love).

Bug fixes

  • Background plots did not always appear (issue #421).
  • Changing the background resulted in an additional background
    object instead of replacing the current one.
  • Colors weren't handled correctly by writePLY() (issue #425).
  • bbox3d() objects ignored the xlen, ylen and zlen
    settings when rendered using rglwidget() (issue #415).
  • In certain cases, the WebGL vignette started with the
    mouse mode set to "selecting".
  • The rglwidget() function gets a new argument fastTransparency
    which makes WebGL mimic the rgl device when drawing transparent
    objects. The default value is TRUE unless option
    rgl.fastTransparency is set to FALSE.
  • writeSTL() now writes endsolid, which is required by some apps.

rgl 1.3.1

05 Mar 14:45
41b9e90
Compare
Choose a tag to compare

Major changes

  • sprites3d() now supports plotting different 3D symbols
    at each location (issue #406).

Minor changes

  • ARIA support now declares rgl scenes with role = "img".
  • The vignettes in this package now use
    markdown::html_format, so they no longer require Pandoc
    (though Pandoc-using output formats like html_document will still be supported).
  • Christophe Geuzaine's GL2PS library (used by rgl.postscript())
    updated to version 1.4.2, and blending (transparency)
    has been enabled in formats that support it.
  • The Makevars.ucrt file has been changed for compatibility
    with an upcoming change to Windows Rtools. (Pull request #412 submitted by Tomas Kalibera).

Bug fixes

  • The ARIA support caused htmlwidgets::saveWidget() to fail when
    run in a Shiny session.
  • text3d() and mtext3d() did not pass the cex argument to
    plotmath3d() (pull request #384).
  • polygon3d() failed when given exactly 3 points (issue #388).
  • snapshot3d() failed on Windows with some versions of webshot2 (issue #391).
  • Fixed issues caused by misuse of dev.off() using new function
    safe.dev.off().
  • Fixed issue with warning() call reported by CRAN.
  • Smooth shapes were not rendered correctly by rglwidget().
    This was especially noticeable for spheres with fov = 0, but was present in other cases as well (issue #401).
  • textype = "alpha" was not rendered correctly by rglwidget() (issue #408).
  • setUserCallbacks() and related functions failed when
    the subscene argument was anything other than the root
    subscene.

rgl 1.2.8

14 Dec 09:05
321112a
Compare
Choose a tag to compare

Minor changes

  • ARIA support now declares rgl scenes with role = "img".

Bug fixes

  • The ARIA support caused htmlwidgets::saveWidget() to fail when
    run in a Shiny session.
  • text3d() and mtext3d() did not pass the cex argument to
    plotmath3d() (pull request #384).
  • polygon3d() failed when given exactly 3 points (issue #388).
  • snapshot3d() failed on Windows with some versions of webshot2 (issue #391).
  • Fixed issues caused by misuse of dev.off() using new function
    safe.dev.off().
  • Fixed issue with warning() call reported by CRAN.

v1.2.1

06 Jul 09:12
bce9fce
Compare
Choose a tag to compare

rgl 1.2.1

Major changes

  • Support for non-PNG textures has been added. Currently
    supported: JPEG files and any other object
    for which grDevices::as.raster() works, e.g. matrices.
    (Fixes issue #196.)

Minor changes

  • Support for "alt" text has been added to rglwidget().
    Full support in R Markdown or knitr requires a knitr update
    to version 1.42.12 or newer.
  • Some of the tests have been relaxed slightly so they
    shouldn't trigger errors on the M1Mac test platform.
  • Internally, the C++ code has dropped the use of the internally
    defined String type, settling on std::string instead.
  • subdivision3d(), clipMesh3d() and related functions now
    (optionally) record the original faces associated with each new one
    in a mesh$tags addition to the output.

Bug fixes

  • The Makevars.win file was being produced incorrectly on
    older Windows versions.
  • rgl.window2user() did not work correctly when multiple panes
    were showing. This caused arrow3d() to fail in some panes
    (issue #354).
  • selectpoints3d() had a typo which was revealed by
    warnings in recent R versions.
  • getShaders() was broken in 1.1.3.
  • arc3d() can now handle "arcs" that are straight lines along
    a radius (issue #357).
  • Spheres did not show textures correctly (issue #360).
  • hover3d() failed to display default labels in R (issue #362).
  • shade3d() didn't handle meshes with a mix of triangles and
    quads properly when meshColor == "faces".
  • subdivision3d() and related functions now handle colors
    properly.
  • addNormals() sometimes gave NaN values due to rounding
    error (issue #372).
  • arc3d() sometimes missed plotting the last segment of the arc (issue #369).
  • R_NO_REMAP has been defined and header includes have been
    rearranged to prevent conflict between R internals and C++17
    library. (Thanks to Prof. B. D. Ripley and G. Csardi for
    suggested fixes.)

v1.1.3

26 Mar 23:25
Compare
Choose a tag to compare

rgl 1.1.3

Major changes

  • A new function hover3d() has been added to display
    "hover hints": labels next to points when the mouse
    passes near them.
  • A new material property "texmode" has been added
    to control how textures are applied. The default is "modulate",
    consistent with previous versions. If set to "replace",
    the texture is displayed without any lighting effects or dependence
    on the original color of the surface.
  • Many of the demos have been moved to a new vignette called
    demos.
  • rgl now uses the glad loader which will eventually allow
    access to newer OpenGL functions in systems that support them.

Minor changes

  • The texenvmap = TRUE material property is now supported
    in WebGL.
  • The method of including shader source code
    has changed to work around a limitation in Jupyter.
  • The default C++ standard is now accepted, rather
    than requiring C++11. On R versions prior to R 4.2.0
    C++11 is still requested.

Bug fixes

  • The as.mesh3d.rglId() and as.triangles3d.rglId() methods
    and the selectpoints3d(), writeOBJ(), writePLY()
    and writeSTL()
    functions did not handle indices
    in the objects they were processing (issue #293).
  • Transparent planes were not always drawn properly
    in WebGL (issue #300).
  • view3d() now returns a lowlevel() result so that
    it will be handled properly in WebGL vignettes with
    auto printing.
  • If transform3d() or rotate3d() changed the orientation
    of a mesh3d object with normals, the normals ended up
    with the wrong sign. (Reported by Stephane Laurent.)
  • scene3d() (and hence rglwidget()) did not save
    the normals for unlit objects. When the objects were
    also indexed, this prevented proper calculation of
    front and back. This is fixed, and a warning is
    issued if normals are not provided when needed.
  • It was possible to call glVersion before OpenGL was
    initialized; this resulted in a segfault with the new
    glad loader, and may have been the cause of some older crashes
    as well. This has been fixed.
  • readOBJ() did not handle comments properly.
  • Sprites consisting only of line segments (as used
    for example by pch3d()) caused rendering to fail in
    rglwidget() (issue #316).
  • Headers have been cleaned up to fix problems
    identified by Rtools43.

v1.0.1

19 Jan 08:34
Compare
Choose a tag to compare

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.

v0.111.6

07 Jan 16:59
9a8fa98
Compare
Choose a tag to compare

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.109.6

09 Jul 11:53
Compare
Choose a tag to compare

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.