#define __lib_gdi_region_h
#include <lib/base/object.h>
+#include <lib/gdi/erect.h>
#include <vector>
-class gRegion: public virtual iObject
+class gRegion
{
-DECLARE_REF;
private:
inline void FindBand(
std::vector<eRect>::const_iterator r,
gRegion();
virtual ~gRegion();
+ gRegion operator&(const gRegion &r2) const;
+ gRegion operator-(const gRegion &r2) const;
+ gRegion operator|(const gRegion &r2) const;
+ gRegion &operator&=(const gRegion &r2);
+ gRegion &operator-=(const gRegion &r2);
+ gRegion &operator|=(const gRegion &r2);
+
void intersect(const gRegion &r1, const gRegion &r2);
void subtract(const gRegion &r1, const gRegion &r2);
void merge(const gRegion &r1, const gRegion &r2);
+
+ void moveBy(ePoint offset);
+
+ bool empty() const { return extends.empty(); }
+ bool valid() const { return extends.valid(); }
+
+ static gRegion invalidRegion() { return gRegion(eRect::invalidRect()); }
};
#endif