From 9b8a32cf7371bc5fae8ce239a212469511c459e6 Mon Sep 17 00:00:00 2001 From: Mikko Rasa Date: Sat, 18 Apr 2015 02:45:49 +0300 Subject: [PATCH] Make some internal colors darker to match linear color space --- source/3d/allocation.cpp | 14 ++++++++++---- source/3d/allocation.h | 3 ++- source/3d/overlay.cpp | 2 +- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/source/3d/allocation.cpp b/source/3d/allocation.cpp index 3835f8c..cbf2f85 100644 --- a/source/3d/allocation.cpp +++ b/source/3d/allocation.cpp @@ -21,12 +21,18 @@ void Allocation3D::set_color(const GL::Color &c) color = c; for(PathMap::const_iterator i=paths.begin(); i!=paths.end(); ++i) { - float intensity = 0.5+train.get_block_allocator().is_block_current(*i->first)*0.5; + GL::Color block_color = get_color_for_block(*i->first); for(PathList::const_iterator j=i->second.begin(); j!=i->second.end(); ++j) - (*j)->set_color(color*intensity); + (*j)->set_color(block_color); } } +GL::Color Allocation3D::get_color_for_block(const Block &block) const +{ + float intensity = 0.25+train.get_block_allocator().is_block_current(block)*0.75; + return color*intensity; +} + void Allocation3D::block_reserved(Block &block, Train *t) { if(t==&train) @@ -35,14 +41,14 @@ void Allocation3D::block_reserved(Block &block, Train *t) return; PathList &bpaths = paths[&block]; + GL::Color block_color = get_color_for_block(block); const Block::TrackSet &tracks = block.get_tracks(); for(Block::TrackSet::const_iterator i=tracks.begin(); i!=tracks.end(); ++i) { Path3D *path = new Path3D(layout.get_3d(**i)); bpaths.push_back(path); path->set_layer(1); - float intensity = 0.5+train.get_block_allocator().is_block_current(block)*0.5; - path->set_color(color*intensity); + path->set_color(block_color); path->set_automatic(); } } diff --git a/source/3d/allocation.h b/source/3d/allocation.h index 87ea309..13a6112 100644 --- a/source/3d/allocation.h +++ b/source/3d/allocation.h @@ -24,8 +24,9 @@ public: Allocation3D(Layout3D &, Train &); void set_color(const Msp::GL::Color &); - private: + Msp::GL::Color get_color_for_block(const Block &) const; + void block_reserved(Block &, Train *); void train_advanced(Block &); }; diff --git a/source/3d/overlay.cpp b/source/3d/overlay.cpp index a9083e5..2a26915 100644 --- a/source/3d/overlay.cpp +++ b/source/3d/overlay.cpp @@ -158,7 +158,7 @@ void Overlay3D::update_icon(Icon &icon) { GL::MeshBuilder bld(icon.background); - bld.color(0.2f, 0.2f, 0.2f, 0.7f); + bld.color(0.05f, 0.05f, 0.05f, 0.7f); bld.begin(GL::TRIANGLE_FAN); bld.vertex(0.4, 0.5); -- 2.43.0