From f3452234eae978bee7b6259b967e53b1d9cf4341 Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Tue, 19 Feb 2013 11:57:14 +0800 Subject: [PATCH] add math.lua, move all math related helpers in to it --- frontend/document/document.lua | 12 +++--------- frontend/math.lua | 25 +++++++++++++++++++++++++ frontend/ui/bbox.lua | 12 +++--------- frontend/ui/geometry.lua | 18 ------------------ frontend/ui/reader/readerpaging.lua | 2 ++ 5 files changed, 33 insertions(+), 36 deletions(-) create mode 100644 frontend/math.lua diff --git a/frontend/document/document.lua b/frontend/document/document.lua index f453bda95..da246ff92 100644 --- a/frontend/document/document.lua +++ b/frontend/document/document.lua @@ -1,3 +1,5 @@ +require "../math" + --[[ This is a registry for document providers ]]-- @@ -126,17 +128,9 @@ function Document:getPageDimensions(pageno, zoom, rotation) return native_dimen end -function Document:oddEven(number) - if number % 2 == 1 then - return "odd" - else - return "even" - end -end - function Document:getPageBBox(pageno) local bbox = self.bbox[pageno] -- exact - local oddEven = self:oddEven(pageno) + local oddEven = math.oddEven(pageno) if bbox ~= nil then DEBUG("bbox from", pageno) else diff --git a/frontend/math.lua b/frontend/math.lua new file mode 100644 index 000000000..46b6a319c --- /dev/null +++ b/frontend/math.lua @@ -0,0 +1,25 @@ +--[[ +Simple math helper function +]]-- + +function math.roundAwayFromZero(num) + if num > 0 then + return math.ceil(num) + else + return math.floor(num) + end +end + +function math.round(num) + return math.floor(num + 0.5) +end + +function math.oddEven(number) + if number % 2 == 1 then + return "odd" + else + return "even" + end +end + + diff --git a/frontend/ui/bbox.lua b/frontend/ui/bbox.lua index bb67c0177..e38d0f669 100644 --- a/frontend/ui/bbox.lua +++ b/frontend/ui/bbox.lua @@ -1,3 +1,5 @@ +require "math" + --[[ BBoxWidget shows a bbox for page cropping ]] @@ -89,14 +91,6 @@ function BBoxWidget:screen_to_page() return bbox end -function BBoxWidget:oddEven(number) - if number % 2 == 1 then - return "odd" - else - return "even" - end -end - function BBoxWidget:onAdjustCrop(arg, ges) DEBUG("adjusting crop bbox with pos", ges.pos) local bbox = self.screen_bbox @@ -136,7 +130,7 @@ function BBoxWidget:onConfirmCrop() UIManager:close(self) self.ui:handleEvent(Event:new("BBoxUpdate"), self.page_bbox) self.document.bbox[self.pageno] = self.page_bbox - self.document.bbox[self:oddEven(self.pageno)] = self.page_bbox + self.document.bbox[math.oddEven(self.pageno)] = self.page_bbox self.ui:handleEvent(Event:new("ExitPageCrop")) end diff --git a/frontend/ui/geometry.lua b/frontend/ui/geometry.lua index 497100c6e..a20227d48 100644 --- a/frontend/ui/geometry.lua +++ b/frontend/ui/geometry.lua @@ -265,21 +265,3 @@ return the Euclidean distance between two geoms function Geom:distance(geom) return math.sqrt(math.pow(self.x - geom.x, 2) + math.pow(self.y - geom.y, 2)) end - ---[[ -Simple math helper function -]]-- - -function math.roundAwayFromZero(num) - if num > 0 then - return math.ceil(num) - else - return math.floor(num) - end -end - -function math.round(num) - return math.floor(num + 0.5) -end - - diff --git a/frontend/ui/reader/readerpaging.lua b/frontend/ui/reader/readerpaging.lua index ff73d7603..f0cda7905 100644 --- a/frontend/ui/reader/readerpaging.lua +++ b/frontend/ui/reader/readerpaging.lua @@ -1,3 +1,5 @@ +require "math" + ReaderPaging = InputContainer:new{ current_page = 0, number_of_pages = 0,