52 lines
1.1 KiB
C++
52 lines
1.1 KiB
C++
#ifndef KANIMAJI_CONFIG_HPP
|
|
#define KANIMAJI_CONFIG_HPP
|
|
|
|
#include "RGB.hpp"
|
|
|
|
#include <chrono>
|
|
#include <functional>
|
|
|
|
namespace Kanimaji
|
|
{
|
|
enum class Flag {
|
|
Enable, Disable,
|
|
};
|
|
|
|
enum class Progression {
|
|
Linear,
|
|
EaseIn,
|
|
EaseOut,
|
|
EaseInOut,
|
|
};
|
|
|
|
std::string ToString(Progression progression);
|
|
|
|
struct StrokeStyle
|
|
{
|
|
double Width;
|
|
RGB Colour;
|
|
};
|
|
|
|
using TimeScalingFunc = std::function<double(double)>;
|
|
using Duration = std::chrono::duration<double, std::ratio<1>>;
|
|
|
|
struct AnimationSettings
|
|
{
|
|
Progression StrokeProgression;
|
|
StrokeStyle UnfilledStroke;
|
|
StrokeStyle FilledStroke;
|
|
RGB StrokeFillingColour;
|
|
|
|
Flag EnableBrush;
|
|
StrokeStyle Brush;
|
|
StrokeStyle BrushBorder;
|
|
|
|
TimeScalingFunc LengthToTimeScaling;
|
|
Duration WaitBeforeRepeating;
|
|
Duration DelayBetweenStrokes;
|
|
|
|
static AnimationSettings Default();
|
|
};
|
|
}
|
|
|
|
#endif // KANIMAJI_CONFIG_HPP
|