summaryrefslogtreecommitdiff
path: root/assets/javascripts/rectangles/room.js
diff options
context:
space:
mode:
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
})()