synfig-core  1.0.3
booleancurve.h
Go to the documentation of this file.
1 /* === S Y N F I G ========================================================= */
21 /* ========================================================================= */
22 
23 /* === S T A R T =========================================================== */
24 
25 #ifndef __SYNFIG_BOOLEAN_CURVE_H
26 #define __SYNFIG_BOOLEAN_CURVE_H
27 
28 /* === H E A D E R S ======================================================= */
30 #include <synfig/blinepoint.h>
31 
32 #include <vector>
33 
34 /* === M A C R O S ========================================================= */
35 
36 /* === T Y P E D E F S ===================================================== */
37 
38 /* === C L A S S E S & S T R U C T S ======================================= */
39 namespace synfig
40 {
41 
42 class BooleanCurve : public Layer_Shape
43 {
44  //dynamic list of regions and such
45  typedef std::vector< std::vector<BLinePoint> > region_list_type;
46  region_list_type regions;
47 
48  enum BOOLEAN_OP
49  {
50  Union = 0,
51  Intersection,
52  MutualExclude,
53  Num_Boolean_Ops
54  };
55 
56  //int operation;
57 
58 public:
59 
60  BooleanCurve();
61  ~BooleanCurve();
62 
63  virtual bool set_param(const String & param, const synfig::ValueBase &value);
64  virtual ValueBase get_param(const String & param)const;
65 
66  virtual Vocab get_param_vocab()const;
67 
68  virtual Color get_color(Context context, const Point &pos)const;
69  virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const;
70 };
71 
72 } //end of namespace synfig
73 /* === E N D =============================================================== */
74 
75 #endif