reference/ocr-new/Zone.cc
changeset 0 6b8091ca909a
--- /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();
+}
+
+
+
+
+
+
+
+
+
+
+
+
+