synfig-core  1.0.3
curvewarp.h
Go to the documentation of this file.
1 /* === S Y N F I G ========================================================= */
27 /* === S T A R T =========================================================== */
28 
29 #ifndef __SYNFIG_CURVEWARP_H
30 #define __SYNFIG_CURVEWARP_H
31 
32 /* === H E A D E R S ======================================================= */
33 
34 #include <vector>
35 #include <synfig/vector.h>
36 #include <synfig/layer.h>
37 #include <synfig/blinepoint.h>
38 
39 /* === M A C R O S ========================================================= */
40 
41 /* === T Y P E D E F S ===================================================== */
42 
43 /* === C L A S S E S & S T R U C T S ======================================= */
44 
45 using namespace synfig;
46 using namespace std;
47 using namespace etl;
48 
49 class CurveWarp : public Layer
50 {
52 
53 private:
55  ValueBase param_origin;
57  ValueBase param_perp_width;
59  ValueBase param_start_point;
61  ValueBase param_end_point;
63  ValueBase param_bline;
65  ValueBase param_fast;
66 
67  Vector perp_;
68  Real curve_length_;
69 
70  void sync();
71 
72 public:
73  CurveWarp();
74 
75  virtual bool set_param(const String &param, const ValueBase &value);
76  virtual ValueBase get_param(const String &param)const;
77  virtual Point transform(const Point &point_, Real *dist=NULL, Real *along=0, int quality=10)const;
78  virtual Color get_color(Context context, const Point &pos)const;
79  virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const;
80  virtual bool accelerated_cairorender(Context context,cairo_t *cr, int quality, const RendDesc &renddesc, ProgressCallback *cb)const;
81  synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const;
82 
83  virtual Vocab get_param_vocab()const;
84 };
85 
86 /* === E N D =============================================================== */
87 
88 #endif