kochcurve.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 #ifndef PAPYRUSKOCHCURVE_H
00021 #define PAPYRUSKOCHCURVE_H
00022
00023 #include <papyrus/polyline.h>
00024
00025 namespace Papyrus
00026 {
00027
00031 class KochCurve : public Polyline
00032 {
00033 protected:
00034
00035 KochCurve ( const Glib::ustring& id,
00036 unsigned level,
00037 double size,
00038 Fill::pointer fill,
00039 Stroke::pointer stroke );
00040
00041 public:
00042 PAPYRUS_DRAWABLE(KochCurve);
00043
00044 static pointer create ( unsigned level=0,
00045 double size=0.0,
00046 Fill::pointer fill=Fill::pointer(),
00047 Stroke::pointer stroke = Stroke::pointer() );
00048
00049 static pointer create ( const Glib::ustring& id,
00050 unsigned level=0,
00051 double size=0.0,
00052 Fill::pointer fill=Fill::pointer(),
00053 Stroke::pointer stroke = Stroke::pointer() );
00054
00055 virtual ~KochCurve();
00056
00057 unsigned level();
00058
00059 void set_level ( unsigned level );
00060
00061 double size();
00062
00063 void set_size ( double size );
00064
00065 protected:
00066 unsigned m_level;
00067 double m_size;
00068 double m_lsize;
00069 double m_angle;
00070
00071 void create_vertices();
00072
00073 void kochcurve ( unsigned level );
00074
00075 };
00076
00077 }
00078
00079 #endif