X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fplugins%2Fsketcher%2Fsketcher.h;h=c8f3be5fda3ea5d15db5195397935491a3815a1d;hb=c9c0e07706fad701a70ee0d1ffb0fcb6304f138c;hp=1ddd5a478635d795b1dc3d441e861cce29078100;hpb=4645b3c0b7256990cf4f1c808ff37217f0db3fc9;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/plugins/sketcher/sketcher.h b/cinelerra-5.1/plugins/sketcher/sketcher.h index 1ddd5a47..c8f3be5f 100644 --- a/cinelerra-5.1/plugins/sketcher/sketcher.h +++ b/cinelerra-5.1/plugins/sketcher/sketcher.h @@ -46,6 +46,7 @@ public: int n; uint8_t *msk; + int draw_mask(int x, int y); 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(), @@ -57,40 +58,38 @@ public: } ~SketcherVPen() { delete [] msk; } - void draw_line(float x1, float y1, float x2, float y2) { - VFrame::draw_line(int(x1+.5f),int(y1+.5f), int(x2+.5f),int(y2+.5f)); - } void draw_smooth(float x1, float y1, float x2, float y2, float x3, float y3) { VFrame::draw_smooth(int(x1+.5f),int(y1+.5f), int(x2+.5f),int(y2+.5f), int(x3+.5f),int(y3+.5f)); } - virtual int draw_pixel(int x, int y) = 0; + virtual int draw_pixel(float x, float y, float a) = 0; + int draw_pixel(float x, float y, float frac, int axis); }; class SketcherPenSquare : public SketcherVPen { public: SketcherPenSquare(VFrame *vfrm, int n) : SketcherVPen(vfrm, n) {} - int draw_pixel(int x, int y); + int draw_pixel(float x, float y, float a); }; class SketcherPenPlus : public SketcherVPen { public: SketcherPenPlus(VFrame *vfrm, int n) : SketcherVPen(vfrm, n) {} - int draw_pixel(int x, int y); + int draw_pixel(float x, float y, float a); }; class SketcherPenSlant : public SketcherVPen { public: SketcherPenSlant(VFrame *vfrm, int n) : SketcherVPen(vfrm, n) {} - int draw_pixel(int x, int y); + int draw_pixel(float x, float y, float a); }; class SketcherPenXlant : public SketcherVPen { public: SketcherPenXlant(VFrame *vfrm, int n) : SketcherVPen(vfrm, n) {} - int draw_pixel(int x, int y); + int draw_pixel(float x, float y, float a); }; @@ -110,6 +109,7 @@ public: void save_data(FileXML &output); void read_data(FileXML &input); static const char *types[ARC_SZ]; + void update_parameter(SketcherPoint *the, SketcherPoint *src); }; class SketcherPoints : public ArrayList { @@ -140,7 +140,8 @@ public: double nearest_point(int &pi, coord x, coord y); SketcherVPen *new_vpen(VFrame *out); - void draw(VFrame *img); + void draw(VFrame *img, int flags); + void update_parameter(SketcherCurve *the, SketcherCurve *src); }; class SketcherCurves : public ArrayList { @@ -155,6 +156,8 @@ class SketcherConfig public: SketcherConfig(); ~SketcherConfig(); + void read_data(KeyFrame *keyframe); + void save_data(KeyFrame *keyframe); SketcherCurves curves; int equivalent(SketcherConfig &that); @@ -166,6 +169,7 @@ public: void dump(); int drag; + int aliasing; int cv_selected, pt_selected; }; @@ -180,6 +184,9 @@ public: void update_gui(); void save_data(KeyFrame *keyframe); void read_data(KeyFrame *keyframe); + void span_keyframes(KeyFrame *src, int64_t start, int64_t end); + void update_parameter(SketcherConfig &prev_config, SketcherConfig &src_config, + KeyFrame *keyframe); int new_curve(int pen, int width, int color); int new_curve(); int new_point(SketcherCurve *cv, int arc, coord x, coord y, int idx=-1);