summaryrefslogtreecommitdiff
path: root/assets/javascripts/rectangles/room.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-04-16 15:08:44 -0400
committerJules Laplace <jules@okfoc.us>2014-04-16 15:08:44 -0400
commit3412cc42a9fa5e42d47073a2fa05a39712ad40f7 (patch)
tree016356ab239e51b1948ee2e2252bc847e13b17ba /assets/javascripts/rectangles/room.js
parente50348e6d5af52d0fcc51d0ca30e21594aee6cbf (diff)
layer of indirection for rooms
Diffstat (limited to 'assets/javascripts/rectangles/room.js')
-rw-r--r--assets/javascripts/rectangles/room.js35
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
})()