leaf.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef GCCV_LEAF_H
00026 #define GCCV_LEAF_H
00027
00030 #include "fill-item.h"
00031 #include "structs.h"
00032
00033 namespace gccv {
00034
00041 class Leaf: public FillItem
00042 {
00043 public:
00054 Leaf (Canvas *canvas, double x, double y, double radius);
00066 Leaf (Group *parent, double x, double y, double radius, ItemClient *client = NULL);
00070 virtual ~Leaf ();
00071
00078 void SetPosition (double x, double y);
00085 void GetPosition (double &x, double &y);
00092 void SetWidthFactor (double factor);
00093
00094
00102 double Distance (double x, double y, Item **item) const;
00109 void Draw (cairo_t *cr, bool is_vector) const;
00116 void Move (double x, double y);
00117
00118 protected:
00122 void UpdateBounds ();
00123
00124 private:
00125 double m_x, m_y;
00126 gccv::Point m_Controls[11];
00127
00137 GCCV_ITEM_POS_PROP (double, Radius)
00147 GCCV_ITEM_POS_PROP (double, Rotation)
00152 GCU_RO_PROP (double, WidthFactor)
00153 };
00154
00155 }
00156
00157 #endif // GCCV_LEAF_H