37#include <nlohmann/json.hpp>
45 using JSON = nlohmann::json;
92 std::unique_ptr<OpenGL::VertexArray<Vector2f, 2>>
vertexArray;
102 static inline std::unique_ptr<const OpenGL::Shader>
shader =
nullptr;
153 virtual void render(
const Camera& camera,
float deltaTime)
const override;
static unsigned int fillUniform
static unsigned int localUniform
static unsigned int numBeziersUniform
std::shared_ptr< SkeletalAnimatable > skeletalAnimatable
static unsigned int posAttribute
virtual void preUpdate(size_t threadNum, const Scene &scene, float deltaTime) override
static unsigned int cameraUniform
static unsigned int strokeUniform
virtual void render(const Camera &camera, float deltaTime) const override
static unsigned int zPositionUniform
std::optional< std::vector< BezierWeights > > skeletalWeights
static std::unique_ptr< const OpenGL::Shader > shader
static unsigned int strokeRadiusUniform
std::optional< Path > basePath
std::unique_ptr< OpenGL::VertexArray< Vector2f, 2 > > vertexArray
std::optional< StateAnimatable< Path > > pathFSM
virtual void end(const Scene &scene) override
virtual void begin(const Scene &scene) override
static unsigned int vertexColorUniform
static unsigned int strokeColorUniform
static unsigned int beziersUniform
std::array< std::pair< int, float >, 4 > startWeight
std::array< std::pair< int, float >, 4 > endWeight
std::array< std::pair< int, float >, 4 > controlPoint1Weight
std::array< std::pair< int, float >, 4 > controlPoint2Weight