OSDN Git Service

first
[psychlops/cpp.git] / psychlops / extension / prototype / graphic / psychlops_g_SVG.h
1 /*
2  *  psychlops_g_SVG.h
3  *  Psychlops Standard Library (Universal)
4  *
5  *  Last Modified 2009/05/20 by Kenchi HOSOKAWA
6  *  (C) 2009 Kenchi HOSOKAWA, Kazushi MARUYA, Takao SATO
7  */
8
9 #ifndef HEADER_PSYCHLOPS_GRAPHIC_SVG
10 #define HEADER_PSYCHLOPS_GRAPHIC_SVG
11
12 #include <string>
13 #include "../../../core/graphic/psychlops_g_module.h"
14
15 namespace Psychlops {
16
17         class SVGCanvas : public Drawable
18         {
19         protected:
20                 char buffer[512];
21                 Drawable* prime_backup;
22                 double width, height;
23                 std::string output;
24         public:
25                 SVGCanvas(double width_, double height_);
26                 virtual ~SVGCanvas();
27                 virtual SVGCanvas& save(std::string filename);
28                 virtual int getWidth() const;
29                 virtual int getHeight() const;
30                 virtual const Point getCenter() const;
31
32                 virtual SVGCanvas& clear(const Color &col);
33                 virtual SVGCanvas& pix(const double x, const double y, const Color &col);
34
35
36                 virtual SVGCanvas& line(const Line &drawee, const Color &col);
37                 virtual SVGCanvas& line(const Line &drawee, const Stroke &strk);
38                 virtual SVGCanvas& rect(const Rectangle &drawee, const Color &col);
39                 virtual SVGCanvas& rect(const Rectangle &drawee, const Stroke &strk);
40                 virtual SVGCanvas& ellipse(const Ellipse &drawee, const Color &col);
41                 virtual SVGCanvas& ellipse(const Ellipse &drawee, const Stroke &strk);
42                 virtual SVGCanvas& polygon(const Polygon &drawee);
43                 virtual SVGCanvas& polygon(const Polygon &drawee, const Color &col);
44                 virtual SVGCanvas& polygon(const Polygon &drawee, const Stroke &strk);
45                 virtual SVGCanvas& polyline(const PolyLine &drawee);
46                 virtual SVGCanvas& polyline(const PolyLine &drawee, const Color &col);
47                 virtual SVGCanvas& polyline(const PolyLine &drawee, const Stroke &strk);
48
49                 virtual SVGCanvas& figures(const Group &drawee);
50
51                 virtual SVGCanvas& image(const Image &img);
52                 virtual SVGCanvas& image(const Image &img, const double x, const double y);
53                 virtual SVGCanvas& image(const Image &img, const double alpha);
54                 virtual SVGCanvas& letters(Letters &let, const Color &col);
55         };
56
57 }       /*      <- namespace Psycholops         */
58
59 #endif