--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/reference/ocr-new/Zone.cc Thu May 18 23:12:51 2006 +0200
@@ -0,0 +1,72 @@
+#include "Zone.h"
+#include "system.h"
+
+
+Zone::Zone(Point ulp, Point lrp, ZonedPage * parentPage)
+ :fparent(parentPage) , ful(ulp), flr(lrp)
+ {
+ fpage = new Page;
+ convertMap(fparent->bmap(),fpage->rmap(), ful, flr);
+ convertMap(fpage->rmap(), fpage->bmap(), NOPNT, NOPNT);
+ }
+
+void Zone::buildPage(ZonedPage * parentPage)
+ // ful and flr must already be set
+{
+ if (fpage != NULL)
+ delete fpage;
+ fparent = parentPage;
+ fpage = new Page;
+ convertMap(fparent->bmap(),fpage->rmap(), ful, flr);
+ convertMap(fpage->rmap(), fpage->bmap(), NOPNT, NOPNT);
+
+}
+
+Zone::~Zone()
+{
+ delete fpage;
+}
+
+Zones::Zones()
+ :List()
+{}
+
+Zone * Zones::findZone(int x, int y)
+{
+ for (ListElement *ptr = first; ptr != NULL && ptr->item!=NULL;
+ ptr = ptr->next)
+ {
+
+ Zone * item = (Zone *) ptr->item;
+ if ( x >= item->ul().x() && x <= item->lr().x() &&
+ y >= item->ul().y() && y <= item->lr().y())
+ return item;
+ }
+ return NULL;
+
+}
+
+
+Zones::~Zones()
+{
+ for (ListElement *ptr = first; ptr != NULL && ptr->item!=NULL;
+ ptr = ptr->next) {
+ if (ptr->item != NULL)
+ delete (Zone *) (ptr->item);
+ }
+ while(!IsEmpty())
+ Remove();
+}
+
+
+
+
+
+
+
+
+
+
+
+
+