14 friend class region_impl;
18 typedef int (region::* region_func)() const;
26 rectangle content, mbb;
28 region_impl(const rectangle &content);
31 int iterate(region *region_p, region::region_func what,
32 const rectangle &clip_rect) const;
33 int iterate(region *region_p, region::region_func what,
34 const region_impl &clip_rgn) const;
39 region_impl::iterate (region *region_p, region::region_func what,
40 const rectangle &clip_rect) const
42 for (const region_impl *p = this; p != 0 && p->mbb.overlaps();
44 if (p->content.overlaps())
45 if (!(region_p->*what)()) return 0;
50 region_impl::iterate (region *region_p, region::region_func what,
51 const region_impl &clip_rgn) const
53 for (const region_impl *p = this; p != 0 && p->mbb.overlaps();
55 if (!clip_rgn.iterate(region_p, what, p->content)) return 0;