Blob Blame Raw
#ifndef OUTLINEAREA_H
#define OUTLINEAREA_H


#include "activearea.h"
#include "activecurve.h"


class OutlineArea: public ActiveArea {
protected:
	ActiveCurve curve;
	ActivePoint::Handle w;

	Real get_width() const;
	void set_width(const Real &width);

	void put_bezier(const Context &context, const Bezier &bezier, const Real &width = 0, bool jump = false);
	void put_hermite(const Context &context, const Hermite &hermite, const Real &width = 0, bool jump = false)
		{ put_bezier(context, hermite.get_bezier(), width, jump); }
	void put_curve(const Context &context, const ActiveCurve &curve, const Real &width);
	void draw_curve(const Context &context, const ActiveCurve &curve, const Real &width);

	void on_point_move(const ActivePoint::Handle &point, const Vector &oldposition, const Vector &newposition) override;
	void on_draw_content(const Context &context) override;
	
public:
	OutlineArea();
};


#endif