#pragma once #include #include "LayerData.hpp" #include "LayerVisualisation.hpp" namespace fmri { class FlatLayerVisualisation : public LayerVisualisation { public: explicit FlatLayerVisualisation(const LayerData &layer, Ordering ordering); void draw(float time) override; private: Ordering ordering; std::vector vertexBuffer; std::vector indexBuffer; std::vector activeIndexBuffer; static constexpr const std::array NODE_SHAPE = { -0.5f, 0, 0.5f, 0, 0, -0.5f, 0, 1, 0, 0.5f, 0, 0.5f }; static constexpr const std::array NODE_FACES = { 0, 1, 2, 0, 1, 3, 0, 2, 3, 1, 2, 3 }; static constexpr auto VERTICES_PER_NODE = std::tuple_size::value / 3; static constexpr auto FACES_PER_NODE = std::tuple_size::value / 3; void setVertexPositions(int vertexNo, float *destination); // Various functions defining the way the nodes will be aligned. void initializeNodePositions(std::size_t entries); }; }