summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--public/assets/javascripts/mx/mx.js2
-rw-r--r--public/assets/javascripts/mx/primitives/mx.boxDimensions.js2
-rw-r--r--public/assets/javascripts/mx/primitives/mx.scaleBox.js2
-rw-r--r--public/assets/javascripts/rectangles/_env.js6
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/_rooms.js30
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/clipper.js8
-rw-r--r--public/assets/javascripts/rectangles/models/room.js2
-rwxr-xr-xpublic/assets/stylesheets/app.css4
-rw-r--r--views/controls/builder/toolbar.ejs18
9 files changed, 45 insertions, 29 deletions
diff --git a/public/assets/javascripts/mx/mx.js b/public/assets/javascripts/mx/mx.js
index df9abe7..496aec0 100644
--- a/public/assets/javascripts/mx/mx.js
+++ b/public/assets/javascripts/mx/mx.js
@@ -472,7 +472,7 @@ var MX = MX || (function (undefined) {
},
__toString: function(params, func){
- this.id = this.id || guid()
+ this.id = this.id || _.uniqueId()
var list = [],
obj = {},
type = this.type || "Object3d",
diff --git a/public/assets/javascripts/mx/primitives/mx.boxDimensions.js b/public/assets/javascripts/mx/primitives/mx.boxDimensions.js
index f3edb13..1d457ae 100644
--- a/public/assets/javascripts/mx/primitives/mx.boxDimensions.js
+++ b/public/assets/javascripts/mx/primitives/mx.boxDimensions.js
@@ -7,7 +7,7 @@ MX.BoxDimensions = MX.Object3D.extend({
this.type = "BoxDimensions"
- var id = this.id = opt.id || guid()
+ var id = this.id = opt.id || _.uniqueId()
this.x = opt.x || 0
this.y = opt.y || 0
this.z = opt.z || 0
diff --git a/public/assets/javascripts/mx/primitives/mx.scaleBox.js b/public/assets/javascripts/mx/primitives/mx.scaleBox.js
index 77f45e9..f635345 100644
--- a/public/assets/javascripts/mx/primitives/mx.scaleBox.js
+++ b/public/assets/javascripts/mx/primitives/mx.scaleBox.js
@@ -7,7 +7,7 @@ MX.ScaleBox = MX.Object3D.extend({
this.type = "ScaleBox"
- var id = this.id = opt.id || guid()
+ var id = this.id = opt.id || _.uniqueId()
this.x = opt.x || 0
this.y = opt.y || 0
this.z = opt.z || 0
diff --git a/public/assets/javascripts/rectangles/_env.js b/public/assets/javascripts/rectangles/_env.js
index 334e461..86aebdc 100644
--- a/public/assets/javascripts/rectangles/_env.js
+++ b/public/assets/javascripts/rectangles/_env.js
@@ -22,15 +22,15 @@ environment.init = function(){
map.center.a = 0
map.center.b = 0
- Rooms.list.push( new Room ({
+ Rooms.add( new Room ({
rect: new Rect(-500,-500, 500,500),
height: 500,
}))
- Rooms.list.push( new Room ({
+ Rooms.add( new Room ({
rect: new Rect(600,0, 1100,500),
height: 500,
}))
- Rooms.list.push( new Room ({
+ Rooms.add( new Room ({
rect: new Rect(450,150, 650,350),
height: 300,
}))
diff --git a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
index 411a093..efde370 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
@@ -2,7 +2,7 @@ var Rooms = new function(){
var base = this
- base.list = []
+ base.list = {}
base.regions = []
base.init = function(){
@@ -12,30 +12,44 @@ var Rooms = new function(){
}
base.filter = function(f){
- return base.list.filter(f)
+ return _.values(base.list).filter(f)
+ }
+
+ base.add = function(room){
+ base.list[room.id] = room
}
base.add_with_rect = function(rect){
var room = new Room({
- id: base.list.length,
rect: rect,
height: quantize(randrange(300,800), 50),
})
- base.list.push(room)
+ base.add(room)
+ }
+
+ base.remove = function(room){
+ delete base.list[room.id]
+ }
+
+ base.count = function(){
+ return this.values().length
}
base.forEach = function(f){
- return base.list.forEach(f)
+ return base.values().forEach(f)
+ }
+ base.values = function(){
+ return _.values(base.list)
}
base.sorted_by_position = function(){
- return sort_rooms_by_position( base.list )
+ return sort_rooms_by_position( base.values() )
}
base.sorted_by_height = function(){
- return sort_rooms_by_height( base.list )
+ return sort_rooms_by_height( base.values() )
}
base.sorted_by_area = function(){
- return sort_rooms_by_area( base.list )
+ return sort_rooms_by_area( base.values() )
}
}
diff --git a/public/assets/javascripts/rectangles/engine/rooms/clipper.js b/public/assets/javascripts/rectangles/engine/rooms/clipper.js
index 8989ba8..0854013 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/clipper.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/clipper.js
@@ -20,7 +20,7 @@ Rooms.clipper = new function(){
// Given a set of overlapping rooms, clip any intersections, then cull any duplicate polygons
base.solve_rects = function(){
- if (Rooms.list.length == 0) return
+ if (Rooms.count() == 0) return
base.reset_rects()
base.clip_rects()
@@ -31,9 +31,9 @@ Rooms.clipper = new function(){
// Reset the clipping/culling states of each of the rooms
base.reset_rects = function(){
- for (var i = 0; i < Rooms.list.length; i++) {
- Rooms.list[i].reset()
- }
+ Rooms.forEach(function(room){
+ room.reset()
+ })
}
// Compare each room to the rooms it overlaps, and subdivide
diff --git a/public/assets/javascripts/rectangles/models/room.js b/public/assets/javascripts/rectangles/models/room.js
index 731411c..256889d 100644
--- a/public/assets/javascripts/rectangles/models/room.js
+++ b/public/assets/javascripts/rectangles/models/room.js
@@ -1,7 +1,7 @@
window.Room = (function(){
var Room = function(opt){
- this.id = opt.id || Rooms.list.length
+ this.id = opt.id || _.uniqueId("room")
this.rect = opt.rect
this.regions = []
this.walls = []
diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css
index fdec567..55e8d37 100755
--- a/public/assets/stylesheets/app.css
+++ b/public/assets/stylesheets/app.css
@@ -656,7 +656,7 @@ h5{
}
.menu span.inuse:before {
-content: "\e736"!important;
+ content: "\e736" !important;
}
.menu span:hover:after{
@@ -673,7 +673,7 @@ content: "\e736"!important;
font-size: 13px;
}
-.menu span.icon-close:hover:after{
+.menu span.inuse:hover:after{
content:"";
opacity:0;
}
diff --git a/views/controls/builder/toolbar.ejs b/views/controls/builder/toolbar.ejs
index 400a008..cb6dd60 100644
--- a/views/controls/builder/toolbar.ejs
+++ b/views/controls/builder/toolbar.ejs
@@ -3,25 +3,27 @@
data-info="add media"
class="icon-ios7-photos-outline"></span>
<span
- data-role='undo'
- data-info="undo"
- class="icon-reply"></span>
- <span
data-role='create-mode'
data-info="draw"
class="icon-plus"></span>
<span
- data-role='resize-mode'
- data-info="resize"
- class="icon-arrow-resize"></span>
- <span
data-role='move-mode'
data-info="move"
class="icon-arrow-move"></span>
<span
+ data-role='resize-mode'
+ data-info="resize"
+ class="icon-arrow-resize"></span>
+ <span
data-role='delete-mode'
data-info="delete"
class="icon-close"></span>
+<!--
+ <span
+ data-role='undo'
+ data-info="undo"
+ class="icon-reply"></span>
+-->
<span
data-role='toggle-layout-settings'
data-info="layout settings"