12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- -- Experimental helpers for skia --
- function string.startsWith(String,Start)
- return string.sub(String,1,string.len(Start))==Start
- end
- function string.endsWith(String,End)
- return End=='' or string.sub(String,-string.len(End))==End
- end
- Sk = {}
- function Sk.isFinite(x)
- return x * 0 == 0
- end
- -------------------------------------------------------------------------------
- Sk.Rect = { left = 0, top = 0, right = 0, bottom = 0 }
- Sk.Rect.__index = Sk.Rect
- function Sk.Rect.new(l, t, r, b)
- local rect
- if r then
- -- 4 arguments
- rect = { left = l, top = t, right = r, bottom = b }
- elseif l then
- -- 2 arguments
- rect = { right = l, bottom = t }
- else
- -- 0 arguments
- rect = {}
- end
- setmetatable(rect, Sk.Rect)
- return rect;
- end
- function Sk.Rect:width()
- return self.right - self.left
- end
- function Sk.Rect:height()
- return self.bottom - self.top
- end
- function Sk.Rect:isEmpty()
- return self:width() <= 0 or self:height() <= 0
- end
- function Sk.Rect:isFinite()
- local value = self.left * 0
- value = value * self.top
- value = value * self.right
- value = value * self.bottom
- return 0 == value
- end
- function Sk.Rect:setEmpty()
- self.left = 0
- self.top = 0
- self.right = 0
- self.bottom = 0
- end
- function Sk.Rect:set(l, t, r, b)
- self.left = l
- self.top = t
- self.right = r
- self.bottom = b
- end
- function Sk.Rect:offset(dx, dy)
- dy = dy or dx
- self.left = self.left + dx
- self.top = self.top + dy
- self.right = self.right + dx
- self.bottom = self.bottom + dy
- end
- function Sk.Rect:inset(dx, dy)
- dy = dy or dx
- self.left = self.left + dx
- self.top = self.top + dy
- self.right = self.right - dx
- self.bottom = self.bottom - dy
- end
- -------------------------------------------------------------------------------
|