Move visualiser generation out of main.

This commit is contained in:
2018-02-09 12:25:10 +01:00
parent a84e4e80a2
commit 37c6cef733
3 changed files with 37 additions and 19 deletions

View File

@@ -11,11 +11,9 @@
#include "glutils.hpp"
#include "camera.hpp"
#include "LayerVisualisation.hpp"
#include "FlatLayerVisualisation.hpp"
#include "MultiImageVisualisation.hpp"
#include "Range.hpp"
#include "ActivityAnimation.hpp"
#include "DummyLayerVisualisation.hpp"
#include "visualisations.hpp"
using namespace std;
using namespace fmri;
@@ -103,8 +101,6 @@ static void renderLayerName(const LayerData &data)
glTranslatef(0, 0, -10);
}
static LayerVisualisation *getVisualisationForLayer(const LayerData &layer);
static void updateVisualisers()
{
rendererData.layerVisualisations.clear();
@@ -119,20 +115,6 @@ static void updateVisualisers()
glutPostRedisplay();
}
LayerVisualisation *getVisualisationForLayer(const LayerData &layer)
{
switch (layer.shape().size()) {
case 2:
return new FlatLayerVisualisation(layer, FlatLayerVisualisation::Ordering::SQUARE);
case 4:
return new MultiImageVisualisation(layer);
default:
return new DummyLayerVisualisation();
}
}
static void specialKeyFunc(int key, int, int)
{
switch (key) {

22
src/visualisations.cpp Normal file
View File

@@ -0,0 +1,22 @@
//
// Created by bert on 09/02/18.
//
#include "visualisations.hpp"
#include "DummyLayerVisualisation.hpp"
#include "MultiImageVisualisation.hpp"
#include "FlatLayerVisualisation.hpp"
fmri::LayerVisualisation *fmri::getVisualisationForLayer(const fmri::LayerData &layer)
{
switch (layer.shape().size()) {
case 2:
return new FlatLayerVisualisation(layer, FlatLayerVisualisation::Ordering::SQUARE);
case 4:
return new MultiImageVisualisation(layer);
default:
return new DummyLayerVisualisation();
}
}

14
src/visualisations.hpp Normal file
View File

@@ -0,0 +1,14 @@
#pragma once
#include "LayerVisualisation.hpp"
#include "LayerData.hpp"
namespace fmri {
/**
* Generate a static visualisation of a layer state.
*
* @param layer
* @return A (possibly empty) visualisation. The caller is responsible for deallocating.
*/
LayerVisualisation* getVisualisationForLayer(const LayerData& layer);
}