Make default ColorTable preset

Changed the "default" ColorTable preset from "cool to warm" to
"viridis." Also made a default constructor for ColorTable that sets it
to this default preset.

The main reason to change to viridis for the default is that it is in
LAB space. We are concerned that having the default ColorTable preset
being Diverging space could lead to users using that color space
inappropriately.
This commit is contained in:
Kenneth Moreland 2018-04-02 15:28:25 -06:00
parent 3391e5d2cd
commit 3a812b044e
4 changed files with 26 additions and 26 deletions

@ -112,19 +112,19 @@ public:
enum struct Preset
{
DEFAULT,
VIRIDIS,
COOL_TO_WARM,
COOL_TO_WARN_EXTENDED,
COLD_AND_HOT,
INFERNO,
BLACK_BODY_RADIATION,
SAMSEL_FIRE,
INFERNO,
LINEAR_YGB,
COLD_AND_HOT,
RAINBOW_DESATURATED,
COOL_TO_WARN_EXTENDED,
X_RAY,
BLACK_BLUE_AND_WHITE,
VIRDIS,
LINEAR_GREEN,
X_RAY,
JET,
RAINBOW_DESATURATED,
RAINBOW
};
@ -135,7 +135,7 @@ public:
///
/// Note: these are a select set of the presets you can get by providing a string identifier.
///
ColorTable(vtkm::cont::ColorTable::Preset preset);
ColorTable(vtkm::cont::ColorTable::Preset preset = vtkm::cont::ColorTable::Preset::DEFAULT);
/// \brief Construct a color table from a preset color table
///
@ -268,8 +268,8 @@ public:
void SetNaNColor(const vtkm::Vec<float, 3>& c);
const vtkm::Vec<float, 3>& GetNaNColor() const;
/// Remove all existing all values in both color and alpha tables
/// doesn't remove the clamping, below, and above range state or colors
/// Remove all existing values in both color and alpha tables.
/// Does not remove the clamping, below, and above range state or colors.
void Clear();
/// Remove only color table values

@ -318,7 +318,7 @@ static constexpr ColorTable<21> LinearGreen = {
}
};
static constexpr ColorTable<256> Virdis =
static constexpr ColorTable<256> Viridis =
{
vtkm::cont::ColorSpace::LAB,
{ 0.000000, 0.267004, 0.004874, 0.329415, 0.003922, 0.268510, 0.009605, 0.335427, 0.007843,
@ -521,10 +521,10 @@ void loadBlackBlueWhite(vtkm::cont::ColorTable& table)
table.SetColorSpace(BlackBlueWhite.space);
table.SetNaNColor(vtkm::Vec<float, 3>{ 1.0f, 1.0f, 0.0f });
}
void loadVirdis(vtkm::cont::ColorTable& table)
void loadViridis(vtkm::cont::ColorTable& table)
{
table.FillColorTableFromDataPointer(Virdis.size, Virdis.values);
table.SetColorSpace(Virdis.space);
table.FillColorTableFromDataPointer(Viridis.size, Viridis.values);
table.SetColorSpace(Viridis.space);
table.SetNaNColor(vtkm::Vec<float, 3>{ 1.0f, 0.0f, 0.0f });
}
void loadLinearGreen(vtkm::cont::ColorTable& table)
@ -555,26 +555,26 @@ struct LoadColorTablePresetCommand
constexpr int numberOfPresets = 15;
struct LoadColorTablePresetCommand presets[numberOfPresets] = {
{ vtkm::cont::ColorTable::Preset::DEFAULT, "default", loadCoolToWarm },
{ vtkm::cont::ColorTable::Preset::DEFAULT, "default", loadViridis },
{ vtkm::cont::ColorTable::Preset::VIRIDIS, "viridis", loadViridis },
{ vtkm::cont::ColorTable::Preset::COOL_TO_WARM, "cool to warm", loadCoolToWarm },
{ vtkm::cont::ColorTable::Preset::BLACK_BODY_RADIATION, "black-body radiation", loadBlackBody },
{ vtkm::cont::ColorTable::Preset::SAMSEL_FIRE, "samsel fire", loadSamselFire },
{ vtkm::cont::ColorTable::Preset::INFERNO, "inferno", loadInferno },
{ vtkm::cont::ColorTable::Preset::LINEAR_YGB, "linear ygb", loadLinearYGB },
{ vtkm::cont::ColorTable::Preset::COLD_AND_HOT, "cold and hot", loadColdAndHot },
{ vtkm::cont::ColorTable::Preset::RAINBOW_DESATURATED,
"rainbow desaturated",
loadRainbowDesaturated },
{ vtkm::cont::ColorTable::Preset::COOL_TO_WARN_EXTENDED,
"cool to warm (extended)",
loadCoolToWarmExtended },
{ vtkm::cont::ColorTable::Preset::X_RAY, "x ray", loadXRay },
{ vtkm::cont::ColorTable::Preset::COLD_AND_HOT, "cold and hot", loadColdAndHot },
{ vtkm::cont::ColorTable::Preset::INFERNO, "inferno", loadInferno },
{ vtkm::cont::ColorTable::Preset::BLACK_BODY_RADIATION, "black-body radiation", loadBlackBody },
{ vtkm::cont::ColorTable::Preset::SAMSEL_FIRE, "samsel fire", loadSamselFire },
{ vtkm::cont::ColorTable::Preset::LINEAR_YGB, "linear ygb", loadLinearYGB },
{ vtkm::cont::ColorTable::Preset::BLACK_BLUE_AND_WHITE,
"black, blue and white",
loadBlackBlueWhite },
{ vtkm::cont::ColorTable::Preset::VIRDIS, "virdis", loadVirdis },
{ vtkm::cont::ColorTable::Preset::LINEAR_GREEN, "linear green", loadLinearGreen },
{ vtkm::cont::ColorTable::Preset::X_RAY, "x ray", loadXRay },
{ vtkm::cont::ColorTable::Preset::JET, "jet", loadJet },
{ vtkm::cont::ColorTable::Preset::RAINBOW_DESATURATED,
"rainbow desaturated",
loadRainbowDesaturated },
{ vtkm::cont::ColorTable::Preset::RAINBOW, "rainbow", loadRainbow },
};
}

@ -114,7 +114,7 @@ public:
VTKM_TEST_ASSERT(names.count("inferno") == 1, "names should contain inferno");
VTKM_TEST_ASSERT(names.count("black-body radiation") == 1,
"names should contain black-body radiation");
VTKM_TEST_ASSERT(names.count("virdis") == 1, "names should contain virdis");
VTKM_TEST_ASSERT(names.count("viridis") == 1, "names should contain viridis");
VTKM_TEST_ASSERT(names.count("black, blue and white") == 1,
"names should contain black, blue and white");
VTKM_TEST_ASSERT(names.count("samsel fire") == 1, "names should contain samsel fire");

@ -35,7 +35,7 @@ class FieldToColors : public vtkm::filter::FilterField<FieldToColors>
{
public:
VTKM_CONT
FieldToColors(const vtkm::cont::ColorTable& table = vtkm::cont::ColorTable::Preset::DEFAULT);
FieldToColors(const vtkm::cont::ColorTable& table = vtkm::cont::ColorTable());
enum FieldToColorsInputMode
{