Skip to content
Snippets Groups Projects
Commit 6c2ab161 authored by Rainer Kartmann's avatar Rainer Kartmann
Browse files

Refactor file structure

parent 38143eb5
No related branches found
No related tags found
No related merge requests found
......@@ -50,9 +50,10 @@ MESSAGE (STATUS "\n***** CONFIGURING Simox project SimoxUtility *****")
SET(SOURCES
SimoxUtility.cpp
color/cmaps/colormaps.cpp
color/cmaps/Named.cpp
color/Color.cpp
color/ColorMap.cpp
color/colormaps.cpp
color/GlasbeyLUT.cpp
color/hsv.cpp
color/interpolation.cpp
......@@ -82,10 +83,11 @@ SET(INCLUDES
algorithm/for_each_if.h
color/cmaps/colormaps.h
color/cmaps/Named.h
color/convert_byte_float.hpp
color/Color.h
color/ColorMap.h
color/colormaps.h
color/GlasbeyLUT.h
color/hsv.h
color/interpolation.h
......
......@@ -5,7 +5,7 @@
#include "color/Color.h"
#include "color/ColorMap.h"
#include "color/GlasbeyLUT.h"
#include "color/colormaps.h"
#include "color/cmaps.h"
#include "color/hsv.h"
#include "color/interpolation.h"
#include "color/json.h"
#pragma once
// This file is generated!
#include "cmaps/Named.h"
#include "cmaps/colormaps.h"
#include "Named.h"
#include <SimoxUtility/error/SimoxError.h>
#include "colormaps.h"
namespace simox::color::cmaps
{
std::map<std::string, ColorMap> Named::_named;
Named Named::_instance;
ColorMap Named::get(const std::string& name)
{
if (auto it = _named.find(name); it != _named.end())
{
return it->second;
}
else
{
throw simox::error::SimoxError("No ColorMap with name: '" + name + "'.");
}
}
void Named::_register(const ColorMap& cmap)
{
if (cmap.name().empty())
{
throw simox::error::SimoxError("Registering ColorMap without a name.");
}
_named[cmap.name()] = cmap;
}
void Named::_register(const std::string& name, const ColorMap& cmap)
{
_named[name] = cmap;
_named[name].setName(name);
}
Named::Named()
{
_register_builtin();
}
void Named::_register_builtin()
{
// Perceptually Uniform Sequential
_register(viridis());
_register(plasma());
_register(inferno());
_register(magma());
_register(cividis());
// Sequential
_register(Greys());
_register(Purples());
_register(Blues());
_register(Greens());
_register(Oranges());
_register(Reds());
_register(YlOrBr());
_register(YlOrRd());
_register(OrRd());
_register(PuRd());
_register(RdPu());
_register(BuPu());
_register(GnBu());
_register(PuBu());
_register(YlGnBu());
_register(PuBuGn());
_register(BuGn());
_register(YlGn());
// Sequential (2)
_register(binary());
_register(gray());
_register(bone());
_register(pink());
_register(spring());
_register(summer());
_register(autumn());
_register(winter());
_register(cool());
_register(Wistia());
_register(hot());
_register(copper());
// Diverging
_register(PiYG());
_register(PRGn());
_register(BrBG());
_register(PuOr());
_register(RdGy());
_register(RdBu());
_register(RdYlBu());
_register(RdYlGn());
_register(Spectral());
_register(coolwarm());
_register(bwr());
_register(seismic());
// Cyclic
_register(twilight());
_register(twilight_shifted());
_register(hsv());
// Qualitative
_register(Pastel1());
_register(Pastel2());
_register(Paired());
_register(Accent());
_register(Dark2());
_register(Set1());
_register(Set2());
_register(Set3());
_register(tab10());
_register(tab20());
_register(tab20b());
_register(tab20c());
}
}
......@@ -4,7 +4,7 @@
#include <map>
#include <string>
#include "ColorMap.h"
#include <SimoxUtility/color/ColorMap.h>
namespace simox::color::cmaps
......@@ -66,15 +66,5 @@ namespace simox::color::cmaps
return Named::has(name);
}
// Color Map factories.
ColorMap viridis();
ColorMap plasma();
ColorMap inferno();
ColorMap magma();
ColorMap cividis();
}
Source diff could not be displayed: it is too large. Options to address this: view the blob.
#pragma once
#include <SimoxUtility/color/ColorMap.h>
namespace simox::color::cmaps
{
// Perceptually Uniform Sequential
ColorMap viridis();
ColorMap plasma();
ColorMap inferno();
ColorMap magma();
ColorMap cividis();
// Sequential
ColorMap Greys();
ColorMap Purples();
ColorMap Blues();
ColorMap Greens();
ColorMap Oranges();
ColorMap Reds();
ColorMap YlOrBr();
ColorMap YlOrRd();
ColorMap OrRd();
ColorMap PuRd();
ColorMap RdPu();
ColorMap BuPu();
ColorMap GnBu();
ColorMap PuBu();
ColorMap YlGnBu();
ColorMap PuBuGn();
ColorMap BuGn();
ColorMap YlGn();
// Sequential (2)
ColorMap binary();
ColorMap gray();
ColorMap bone();
ColorMap pink();
ColorMap spring();
ColorMap summer();
ColorMap autumn();
ColorMap winter();
ColorMap cool();
ColorMap Wistia();
ColorMap hot();
ColorMap copper();
// Diverging
ColorMap PiYG();
ColorMap PRGn();
ColorMap BrBG();
ColorMap PuOr();
ColorMap RdGy();
ColorMap RdBu();
ColorMap RdYlBu();
ColorMap RdYlGn();
ColorMap Spectral();
ColorMap coolwarm();
ColorMap bwr();
ColorMap seismic();
// Cyclic
ColorMap twilight();
ColorMap twilight_shifted();
ColorMap hsv();
// Qualitative
ColorMap Pastel1();
ColorMap Pastel2();
ColorMap Paired();
ColorMap Accent();
ColorMap Dark2();
ColorMap Set1();
ColorMap Set2();
ColorMap Set3();
ColorMap tab10();
ColorMap tab20();
ColorMap tab20b();
ColorMap tab20c();
}
This diff is collapsed.
......@@ -25,7 +25,7 @@
#include <boost/test/included/unit_test.hpp>
#include <SimoxUtility/color/ColorMap.h>
#include <SimoxUtility/color/colormaps.h>
#include <SimoxUtility/color/cmaps.h>
#include <iostream>
......@@ -138,7 +138,21 @@ BOOST_AUTO_TEST_CASE(test_named_colormaps)
cmap = simox::color::cmaps::get_named("viridis");
BOOST_CHECK_EQUAL(cmap.name(), "viridis");
namespace cmaps = simox::color::cmaps;
BOOST_CHECK_GT(cmaps::Named::all().size(), 0);
for (const auto& [name, cmap] : cmaps::Named::all())
{
BOOST_TEST_CONTEXT("ColorMap '" << name << "'")
{
BOOST_CHECK_EQUAL(cmap.name(), name);
BOOST_CHECK_GE(cmap.size(), 2);
}
}
}
BOOST_AUTO_TEST_SUITE_END()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment