00001
00025
00026
00027 #ifndef __SYNFIG_MANDELBROT_H
00028 #define __SYNFIG_MANDELBROT_H
00029
00030
00031
00032 #include <synfig/layer.h>
00033 #include <synfig/color.h>
00034 #include <synfig/angle.h>
00035 #include <synfig/gradient.h>
00036
00037
00038
00039
00040
00041
00042
00043 using namespace synfig;
00044 using namespace std;
00045 using namespace etl;
00046
00047 class Mandelbrot : public Layer
00048 {
00049 SYNFIG_LAYER_MODULE_EXT
00050
00051 private:
00052
00053 Real bailout;
00054 Real lp;
00055 int iterations;
00056
00057 bool smooth_outside;
00058 bool broken;
00059
00060 bool distort_inside;
00061 bool distort_outside;
00062 bool solid_inside;
00063 bool solid_outside;
00064 bool invert_inside;
00065 bool invert_outside;
00066 bool shade_outside;
00067 bool shade_inside;
00068 Real gradient_offset_inside;
00069 Real gradient_offset_outside;
00070 bool gradient_loop_inside;
00071 Real gradient_scale_outside;
00072 Gradient gradient_inside;
00073 Gradient gradient_outside;
00074
00075 public:
00076 Mandelbrot();
00077
00078 virtual bool set_param(const String ¶m, const ValueBase &value);
00079 virtual ValueBase get_param(const String ¶m)const;
00080 virtual Color get_color(Context context, const Point &pos)const;
00081 virtual Vocab get_param_vocab()const;
00082 };
00083
00084
00085
00086 #endif