blob: c1254c591c86c06830d4fc86460c437f583bd28c [file] [log] [blame]
#ifndef _RIVE_TEXT_FOLLOW_PATH_MODIFIER_HPP_
#define _RIVE_TEXT_FOLLOW_PATH_MODIFIER_HPP_
#include "rive/generated/text/text_follow_path_modifier_base.hpp"
#include "rive/math/path_measure.hpp"
#include "rive/math/transform_components.hpp"
namespace rive
{
struct TransformGlyphArg;
class TextFollowPathModifier : public TextFollowPathModifierBase
{
public:
void buildDependencies() override;
StatusCode onAddedClean(CoreContext* context) override;
void update(ComponentDirt value) override;
void reset(const Mat2D* inverseText);
TransformComponents transformGlyph(const TransformComponents& cur,
const TransformGlyphArg& arg);
protected:
void radialChanged() override;
void orientChanged() override;
void startChanged() override;
void endChanged() override;
void offsetChanged() override;
void strengthChanged() override;
private:
RawPath m_worldPath;
RawPath m_localPath;
PathMeasure m_pathMeasure;
void modifierShapeDirty();
};
} // namespace rive
#endif