enum { PT_ID, PT_TY, PT_X, PT_Y, PT_SZ };
enum { CV_ID, CV_RAD, CV_PEN, CV_CLR, CV_SZ };
enum { PT_ID, PT_TY, PT_X, PT_Y, PT_SZ };
enum { CV_ID, CV_RAD, CV_PEN, CV_CLR, CV_SZ };
-enum { PTY_OFF, PTY_LINE, PTY_CURVE, PTY_SZ };
+enum { PTY_OFF, PTY_LINE, PTY_CURVE, PTY_FILL, PTY_SZ };
enum { PEN_OFF, PEN_SQUARE, PEN_PLUS, PEN_SLANT, PEN_XLANT, PEN_SZ };
class SketcherVPen : public VFrame
{
public:
enum { PEN_OFF, PEN_SQUARE, PEN_PLUS, PEN_SLANT, PEN_XLANT, PEN_SZ };
class SketcherVPen : public VFrame
{
public:
SketcherVPen(VFrame *vfrm, int n)
: VFrame(vfrm->get_data(), -1, vfrm->get_y()-vfrm->get_data(),
vfrm->get_u()-vfrm->get_data(), vfrm->get_v()-vfrm->get_data(),
vfrm->get_w(), vfrm->get_h(), vfrm->get_color_model(),
vfrm->get_bytes_per_line()) {
this->vfrm = vfrm; this->n = n;
SketcherVPen(VFrame *vfrm, int n)
: VFrame(vfrm->get_data(), -1, vfrm->get_y()-vfrm->get_data(),
vfrm->get_u()-vfrm->get_data(), vfrm->get_v()-vfrm->get_data(),
vfrm->get_w(), vfrm->get_h(), vfrm->get_color_model(),
vfrm->get_bytes_per_line()) {
this->vfrm = vfrm; this->n = n;
void copy_from(SketcherCurve &that);
void save_data(FileXML &output);
void read_data(FileXML &input);
void copy_from(SketcherCurve &that);
void save_data(FileXML &output);
void read_data(FileXML &input);
- VFrame *new_vpen(VFrame *out);
- void draw(VFrame *out);
+ double nearest_point(int &pi, float x, float y);
+
+ SketcherVPen *new_vpen(VFrame *out);
+ void draw(VFrame *img);
void copy_from(SketcherConfig &that);
void interpolate(SketcherConfig &prev, SketcherConfig &next,
long prev_frame, long next_frame, long current_frame);
void copy_from(SketcherConfig &that);
void interpolate(SketcherConfig &prev, SketcherConfig &next,
long prev_frame, long next_frame, long current_frame);
int w, h, color_model, bpp, comp;
int is_yuv, is_float;
};
int w, h, color_model, bpp, comp;
int is_yuv, is_float;
};