From 3412cc42a9fa5e42d47073a2fa05a39712ad40f7 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Wed, 16 Apr 2014 15:08:44 -0400 Subject: layer of indirection for rooms --- assets/javascripts/rectangles/room.js | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) (limited to 'assets/javascripts/rectangles/room.js') 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 })() -- cgit v1.2.3-70-g09d2