From 8eb19cdb6d34583d6f8acce187b8f46652a2234a Mon Sep 17 00:00:00 2001 From: Bert Peters Date: Mon, 23 Apr 2018 15:39:21 +0200 Subject: [PATCH] Restore layer names. --- src/fmri/LayerVisualisation.cpp | 17 +++++++++++++++++ src/fmri/LayerVisualisation.hpp | 8 +++++--- src/fmri/RenderingState.cpp | 14 +------------- src/fmri/RenderingState.hpp | 1 - src/fmri/visualisations.cpp | 10 +++++++++- 5 files changed, 32 insertions(+), 18 deletions(-) diff --git a/src/fmri/LayerVisualisation.cpp b/src/fmri/LayerVisualisation.cpp index 5dfc733..4a3af5f 100644 --- a/src/fmri/LayerVisualisation.cpp +++ b/src/fmri/LayerVisualisation.cpp @@ -1,7 +1,9 @@ +#include #include "LayerVisualisation.hpp" #include "Range.hpp" #include "utils.hpp" #include "RenderingState.hpp" +#include "glutils.hpp" const std::vector &fmri::LayerVisualisation::nodePositions() const { @@ -31,6 +33,21 @@ float fmri::LayerVisualisation::getAlpha() return RenderingState::instance().layerAlpha(); } +void fmri::LayerVisualisation::setupLayerName(std::string_view name, fmri::LayerInfo::Type type) +{ + displayName = name; + displayName += ": "; + displayName += LayerInfo::nameByType(type); +} + +void fmri::LayerVisualisation::drawLayerName() const +{ + glColor3f(0.5, 0.5, 0.5); + renderText(displayName); + + glTranslatef(0, 0, -10); +} + template<> void fmri::LayerVisualisation::initNodePositions(size_t n, float spacing) { diff --git a/src/fmri/LayerVisualisation.hpp b/src/fmri/LayerVisualisation.hpp index f2bac86..5065a5b 100644 --- a/src/fmri/LayerVisualisation.hpp +++ b/src/fmri/LayerVisualisation.hpp @@ -3,6 +3,7 @@ #include #include "utils.hpp" #include "Drawable.hpp" +#include "LayerInfo.hpp" namespace fmri { @@ -20,14 +21,15 @@ namespace fmri virtual ~LayerVisualisation() = default; virtual const std::vector& nodePositions() const; - - protected: - float getAlpha() override; + void drawLayerName() const; + void setupLayerName(std::string_view name, LayerInfo::Type type); protected: std::vector nodePositions_; + std::string displayName; template void initNodePositions(size_t n, float spacing); + float getAlpha() override; }; } diff --git a/src/fmri/RenderingState.cpp b/src/fmri/RenderingState.cpp index 9d7883f..ca42ba1 100644 --- a/src/fmri/RenderingState.cpp +++ b/src/fmri/RenderingState.cpp @@ -322,8 +322,7 @@ void RenderingState::drawLayer(float time, unsigned long i) const auto& layer = currentData->at(i); - // TODO: make names available again. - // renderLayerName(currentData->at(i).name()); + layer.first->drawLayerName(); if (options.renderLayers) { layer.first->draw(time); } @@ -362,17 +361,6 @@ void RenderingState::renderOverlayText() const restorePerspectiveProjection(); } -void RenderingState::renderLayerName(const std::string &name) const -{ - glColor3f(0.5, 0.5, 0.5); - auto layerName = name; - layerName += ": "; - //layerName += LayerInfo::nameByType(layerInfo.at(name).type()); - renderText(layerName); - - glTranslatef(0, 0, -10); -} - void RenderingState::handleSpecialKey(int key) { if (isLoading()) { diff --git a/src/fmri/RenderingState.hpp b/src/fmri/RenderingState.hpp index 726f33f..d78addc 100644 --- a/src/fmri/RenderingState.hpp +++ b/src/fmri/RenderingState.hpp @@ -89,7 +89,6 @@ namespace fmri std::string debugInfo() const; void renderOverlayText() const; - void renderLayerName(const std::string& name) const; void drawLayer(float time, unsigned long i) const; diff --git a/src/fmri/visualisations.cpp b/src/fmri/visualisations.cpp index 43d1632..479f338 100644 --- a/src/fmri/visualisations.cpp +++ b/src/fmri/visualisations.cpp @@ -67,7 +67,7 @@ static EntryList deduplicate(const EntryList& entries) return result; } -fmri::LayerVisualisation *fmri::getVisualisationForLayer(const fmri::LayerData &data, const fmri::LayerInfo &info) +static fmri::LayerVisualisation *getAppropriateLayer(const fmri::LayerData &data, const fmri::LayerInfo &info) { switch (info.type()) { case LayerInfo::Type::Input: @@ -91,6 +91,14 @@ fmri::LayerVisualisation *fmri::getVisualisationForLayer(const fmri::LayerData & } } +fmri::LayerVisualisation *fmri::getVisualisationForLayer(const fmri::LayerData &data, const fmri::LayerInfo &info) +{ + auto layer = getAppropriateLayer(data, info); + layer->setupLayerName(data.name(), info.type()); + + return layer; +} + static Animation *getFullyConnectedAnimation(const fmri::LayerData &prevState, const fmri::LayerInfo &layer, const vector &prevPositions, const vector &curPositions) {