#include <cairomm/refptr.h>
+#include "canvas/visibility.h"
+
namespace Cairo {
struct Context;
}
typedef double Distance;
typedef uint32_t Color;
-extern Coord const COORD_MAX;
+extern LIBCANVAS_API Coord const COORD_MAX;
-struct Duple
+struct LIBCANVAS_API Duple
{
Duple ()
: x (0)
};
-extern Duple operator- (Duple const &);
-extern Duple operator+ (Duple const &, Duple const &);
-extern bool operator== (Duple const &, Duple const &);
-extern Duple operator- (Duple const &, Duple const &);
-extern Duple operator/ (Duple const &, double);
-extern std::ostream & operator<< (std::ostream &, Duple const &);
+extern LIBCANVAS_API Duple operator- (Duple const &);
+extern LIBCANVAS_API Duple operator+ (Duple const &, Duple const &);
+extern LIBCANVAS_API bool operator== (Duple const &, Duple const &);
+extern LIBCANVAS_API bool operator!= (Duple const &, Duple const &);
+extern LIBCANVAS_API Duple operator- (Duple const &, Duple const &);
+extern LIBCANVAS_API Duple operator/ (Duple const &, double);
+extern LIBCANVAS_API std::ostream & operator<< (std::ostream &, Duple const &);
-struct Rect
+struct LIBCANVAS_API Rect
{
Rect ()
: x0 (0)
Rect expand (Distance) const;
bool contains (Duple) const;
Rect fix () const;
-
- Rect convert_to_device (Cairo::RefPtr<Cairo::Context>) const;
- Rect convert_to_user (Cairo::RefPtr<Cairo::Context>) const;
+ bool empty() const { return (x0 == x1 && y0 == y1); }
Distance width () const {
return x1 - x0;
}
};
-extern std::ostream & operator<< (std::ostream &, Rect const &);
+extern LIBCANVAS_API bool operator!= (Rect const &, Rect const &);
+
+extern LIBCANVAS_API std::ostream & operator<< (std::ostream &, Rect const &);
typedef std::vector<Duple> Points;