- The dependency on RcppParallel has been dropped. As a result, the
argument
n_threads
is now deprecated (and has no effect).
qualpal()
gains an argument,n_threads
, for specifying the number of threads to use when computing the distance matrix between colors.- C++ functions call namespaces explicitly using
::
. - Documentation for hue and saturation in
qualpal()
has been fixed. (Closes #2, thanks @jflycn).
- Palettes are no longer generated randomly. qualpalr previously started with a random sample of colors before running the optimization scheme but now instead picks a starting set of linearly spaced colors.
- C++ functions are registered via Rcpp.
autopal()
erroneously requiredcolorspace
to be a string.
- Fixed
autopal()
which was broken since the minimum color difference returned was always 0 due to a bug inqualpal()
.
- Now registers compiled functions.
autopal()
is a new function that tweaks the amount of color vision deficiency adaptation to match a target color difference.qualpal()
argumentcolorspace
now also accepts amatrix
ordata.frame
of RGB colors.
qualpal()
sorts palettes in order of increasing color distinctness.qualpal()
argumentcolorblind
has been made defunct.- Documentation for
qualpal()
has been improved. - Colors are now generated with
randtoolbox::torus()
instead ofrandtoolbox::sobol()
.
- Dropped a C++ header that caused the package build to fail on some platforms.
- Fixed issues with uninitialized variables in the internal farthest points optimizer.
- Improved algorithm for finding distinct colors. (For details see this.)
- Revamped the color deficiency handling to include almost all cases of color
deficiency using the methods described in
Machado 2010,
now including tritanopia as well as anomalous trichromacies (deuteranomaly,
tritanomaly, and protanomaly). This is controlled via the
cvd_severity
argument toqualpal()
that allows the user to set the severity of color deficiency to adapt to --0
for normal vision and1
for dichromatic vision (protanopia, deuteranopia, or tritanopia).
- Distance and color picking algorithms have been rewritten in C++ using Rcpp, RcppParallel, and RcppArmadillo.
- Phased out the
...
argument toqualpal
. - Lightness range of the predefined rainbow palette increased to [0, 1].
- Changed argument name of
colorblind
tocvd
(for color vision deficiency) since the function now adapts to less severe versions of color deficiency. Usingcolorblind
is deprecated and will throw a warning.
- Fixed typos and invalid links in the Introduction to qualpalr vignette.
- Dropped daltonization since it effectively transposed the color
subspace given by the user. qualpalr now instead only transforms the given color
subspace to simulate protanopia or deuteranopia and then picks colors. This
has the side-effect of decreasing the distinctness of color palettes when
colorblind
is used, but is more consistent with user input.
- Simulations for tritanopia were dropped since there is no reliable source to explain how sRGB ranges should be converted (as there is for deuteranopia and protanopia in Vienot et al 1999).
- Added tests using data from Vienot et al 1999 to check that color blind simulations work properly.
- Fixed a sampling bug wherein the square root of saturation was taken after scaling to the provided range, which generated different ranges than intended.
- Switched to the sobol quasi-random sequence instead of torus.
- Redesigned the method by which qualpal picks colors. Now initializes a point cloud of colors, projects it to DIN99d space, and picks points greedily.
- Introduced real methods of adapting colors to color blindness by daltonizing color subspaces before picking colors from them.
- The introduction to qualpalr vignette has been expanded with a thorough description of how qualpalr picks colors.
- Moved from using
grDevices::convertColor
to formulas from Bruce Lindbloom for color conversions, since the former function inaccurately converts colors. - Deprecated
...
inqualpal
since the function no longer uses an optimizer.