Unify drawing of layers and interactions into "drawables".

This commit is contained in:
2018-04-06 13:06:03 +02:00
parent 9dc4f1546d
commit 2138ce440a
14 changed files with 63 additions and 54 deletions

View File

@@ -2,31 +2,16 @@
#include "utils.hpp"
#include "Drawable.hpp"
namespace fmri
{
class Animation
class Animation : public Drawable
{
public:
virtual ~Animation() = default;
virtual void draw(float step) = 0;
private:
static float getAlpha();
protected:
template<typename It>
void patchTransparancy(It begin, It end)
{
if constexpr (std::tuple_size<Color>::value >= 4) {
const auto alpha = getAlpha();
for (; begin != end; ++begin) {
Color &color = *begin;
color[3] = alpha;
}
}
}
float getAlpha() override;
};
}