synfig-core  1.0.3
layer_polygon.h
Go to the documentation of this file.
1 /* === S Y N F I G ========================================================= */
22 /* ========================================================================= */
23 
24 /* === S T A R T =========================================================== */
25 
26 #ifndef __SYNFIG_LAYER_POLYGON_H
27 #define __SYNFIG_LAYER_POLYGON_H
28 
29 /* === H E A D E R S ======================================================= */
30 
31 #include "layer_shape.h"
32 #include <synfig/color.h>
33 #include <synfig/vector.h>
34 #include <list>
35 #include <vector>
36 
37 /* === M A C R O S ========================================================= */
38 
39 /* === T Y P E D E F S ===================================================== */
40 
41 /* === C L A S S E S & S T R U C T S ======================================= */
42 
43 namespace synfig {
44 
48 class Layer_Polygon : public Layer_Shape
49 {
51 
52 private:
53 
55  ValueBase param_vector_list;
56 
57 protected:
58 
59  Layer_Polygon();
60 
61 public:
62 
64 
66 
72  void add_polygon(const std::vector<Point> &point_list);
73 
74  // Places the point_list on the vector_list, for later render as polygon.
75  void upload_polygon(const std::vector<Point> &point_list);
76 
78 
81  void clear();
82 
84  void sync();
85 
86  virtual bool set_param(const String & param, const synfig::ValueBase &value);
87 
88  virtual ValueBase get_param(const String & param)const;
89 
90  virtual Vocab get_param_vocab()const;
91 private:
92  class PolySpan;
93  bool render_polyspan(Surface *surface,PolySpan &polyspan)const;
94 
95 }; // END of Layer_Polygon
96 
97 }; // END of namespace synfig
98 /* === E N D =============================================================== */
99 
100 #endif