diff options
Diffstat (limited to 'assets/javascripts/rectangles/room.js')
| -rw-r--r-- | assets/javascripts/rectangles/room.js | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/assets/javascripts/rectangles/room.js b/assets/javascripts/rectangles/room.js index cc7af8f..795ef29 100644 --- a/assets/javascripts/rectangles/room.js +++ b/assets/javascripts/rectangles/room.js @@ -1,9 +1,38 @@ window.room = (function(){ - var room = function (x0,y0,x1,y1){ + var room = function(opt){ + this.id = opt.id + this.rect = opt.rect + this.regions = [] + this.height = 500 + this.focused = false } - - + room.prototype.toString = function(){ + return this.rect.toString() + } + + room.prototype.reset = function(){ + var copy = this.rect.clone() + copy.sides = FRONT | BACK | LEFT | RIGHT + this.regions = [ copy ] + } + + room.prototype.clipTo = function(r){ + // for each of this rect's regions split the region if necessary + var regions = this.regions + var splits + + for (var i = 0, len = regions.length; i < len; i++) { + if (regions[i] && regions[i].intersects(r)) { + splits = regions[i].split(r) + regions = regions.concat(splits) + regions[i] = null + } + } + this.regions = regions + } + + return room })() |
