summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--public/assets/javascripts/rectangles/engine/shapes/regionlist.js54
-rw-r--r--public/assets/javascripts/rectangles/models/rect.js6
-rw-r--r--public/assets/javascripts/rectangles/models/vec2.js3
-rw-r--r--public/assets/javascripts/ui/blueprint/BlueprintEditor.js2
-rw-r--r--public/assets/javascripts/ui/blueprint/BlueprintSettings.js16
-rw-r--r--public/assets/javascripts/ui/lib/ToggleableView.js19
-rw-r--r--views/controls/blueprint/info.ejs4
-rw-r--r--views/controls/builder/info.ejs4
-rw-r--r--views/controls/editor/media-editor.ejs4
-rw-r--r--views/partials/scripts.ejs1
10 files changed, 65 insertions, 48 deletions
diff --git a/public/assets/javascripts/rectangles/engine/shapes/regionlist.js b/public/assets/javascripts/rectangles/engine/shapes/regionlist.js
index 94b902a..42519cf 100644
--- a/public/assets/javascripts/rectangles/engine/shapes/regionlist.js
+++ b/public/assets/javascripts/rectangles/engine/shapes/regionlist.js
@@ -12,7 +12,7 @@ var RegionList = (function(){
var rooms = []
var open_segments = []
- var segment, open_segment, vertical, other_side
+ var segment, open_segment, y_segments
for (var i = 0; i < segments.length; i++) {
segment = segments[i]
@@ -21,12 +21,20 @@ var RegionList = (function(){
}
for (var j = 0; j < open_segments.length; j++) {
open_segment = open_segments[j]
- if (overlaps(segment, open_segment)) {
+ if (segment.y.overlaps(open_segment.y)) {
// if we have overlap, it means we have made a full room
- other_side = clone_segment(open_segment)
- other_side[0].a = segment[0].a
- other_side[1].a = segment[1].a
- rooms.push([open_segment, other_side])
+
+ y_segments = open_segment.y.split(segment.y)
+
+ if (y_segments.length == 1) {
+ open_segment.x.b = segment.x.b
+ rooms.push(open_segment)
+ }
+
+// other_side = clone_segment(open_segment)
+// other_side[0].a = segment[0].a
+// other_side[1].a = segment[1].a
+// rooms.push([open_segment, other_side])
open_segments.splice(j, 1)
j--
}
@@ -43,8 +51,8 @@ var RegionList = (function(){
// get a list of all segments from these polylines
var segments = shapes.getAllSegments()
- // re-orientate them so they're either facing up or right
- segments.forEach(function(segment){
+ // re-orient them so they're either facing up or right and make them into rects
+ segments = segments.map(function(segment){
// vertical
if (segment[0].a == segment[1].a) {
if (segment[0].b > segment[1].b) {
@@ -57,36 +65,12 @@ var RegionList = (function(){
segment.push(segment.shift())
}
}
+ return new Rect( segment[0].a, segment[0].b, segment[1].a, segment[1].b )
})
- // sort them from top to bottom, left to right
- segments = segments.sort(function(a,b){
- if (a[0].a < b[0].a) {
- return -1
- }
- else if (a[0].a == b[0].a) {
- if (a[0].b < b[0].b) {
- return -1
- }
- else if (a[0].b == b[0].b) {
- return 0
- }
- else {
- return 1
- }
- }
- else {
- return 1
- }
- })
-
- return segments
+ return sort.rects_by_position(segments)
}
-
- function isVertical (segment) { return segment[0].a == segment[1].a }
- function isHorizontal (segment) { return segment[0].b == segment[1].b }
- function overlaps (a,b) { return (a[0].b > b[0].b || a[1].b < b[1].b) }
- function clone_segment(a){ return [a[0].clone(), a[1].clone()] }
+
return RegionList
})() \ No newline at end of file
diff --git a/public/assets/javascripts/rectangles/models/rect.js b/public/assets/javascripts/rectangles/models/rect.js
index 92c8c9e..a4756ed 100644
--- a/public/assets/javascripts/rectangles/models/rect.js
+++ b/public/assets/javascripts/rectangles/models/rect.js
@@ -62,6 +62,12 @@
Rect.prototype.maxDimension = function(){
return abs(this.width) > abs(this.height) ? this.width : this.height
}
+ Rect.prototype.isVertical = function(){
+ return this.x.isPoint()
+ }
+ Rect.prototype.isHorizontal = function(){
+ return this.y.isPoint()
+ }
Rect.prototype.mul = function(n){
this.x.mul(n)
diff --git a/public/assets/javascripts/rectangles/models/vec2.js b/public/assets/javascripts/rectangles/models/vec2.js
index 290e45e..90a56c6 100644
--- a/public/assets/javascripts/rectangles/models/vec2.js
+++ b/public/assets/javascripts/rectangles/models/vec2.js
@@ -43,6 +43,9 @@
vec2.prototype.eq = function(v){
return this.a == v.a && this.b == v.b
}
+ vec2.prototype.isPoint = function(){
+ return this.a == this.b
+ }
vec2.prototype.add = function(n){
this.a += n
this.b += n
diff --git a/public/assets/javascripts/ui/blueprint/BlueprintEditor.js b/public/assets/javascripts/ui/blueprint/BlueprintEditor.js
index 8fe66ca..18ecf5f 100644
--- a/public/assets/javascripts/ui/blueprint/BlueprintEditor.js
+++ b/public/assets/javascripts/ui/blueprint/BlueprintEditor.js
@@ -93,7 +93,7 @@ var BlueprintEditor = View.extend(AnimatedView.prototype).extend({
map.draw.ctx.save()
map.draw.translate()
- // this.floorplan.draw(map.draw.ctx, true)
+ this.floorplan.draw(map.draw.ctx, true)
map.draw.coords()
diff --git a/public/assets/javascripts/ui/blueprint/BlueprintSettings.js b/public/assets/javascripts/ui/blueprint/BlueprintSettings.js
index acd8dcc..252e3f1 100644
--- a/public/assets/javascripts/ui/blueprint/BlueprintSettings.js
+++ b/public/assets/javascripts/ui/blueprint/BlueprintSettings.js
@@ -1,5 +1,5 @@
-var BlueprintSettings = FormView.extend({
+var BlueprintSettings = FormView.extend(ToggleableView.prototype).extend({
el: "#blueprintSettings",
action: "/api/blueprint/edit",
@@ -25,7 +25,13 @@ var BlueprintSettings = FormView.extend({
load: function(data){
this.$id.val(data._id)
- this.$name.val(data.name)
+ if (data.name) {
+ this.$name.val(data.name)
+ this.hide()
+ }
+ else {
+ this.$name.val("")
+ }
if (data.shapes) {
shapes.destroy()
shapes.deserialize( data.shapes )
@@ -51,10 +57,6 @@ var BlueprintSettings = FormView.extend({
}.bind(this))
},
- toggle: function(state){
- this.$el.toggleClass("active", state)
- },
-
enterSubmit: function (e) {
e.stopPropagation()
var base = this
@@ -105,6 +107,8 @@ var BlueprintSettings = FormView.extend({
this.$name.val(data.name)
this.action = this.updateAction
+ this.hide()
+
Minotaur.unwatch(this)
Minotaur.hide()
diff --git a/public/assets/javascripts/ui/lib/ToggleableView.js b/public/assets/javascripts/ui/lib/ToggleableView.js
new file mode 100644
index 0000000..371629f
--- /dev/null
+++ b/public/assets/javascripts/ui/lib/ToggleableView.js
@@ -0,0 +1,19 @@
+var ToggleableView = View.extend({
+
+ toggle: function(state){
+ this.$el.toggleClass("active", state)
+ },
+
+ show: function(){
+ this.toggle(true)
+ },
+
+ hide: function(){
+ this.toggle(false)
+ },
+
+ visible: function(){
+ return this.$el.hasClass("active")
+ }
+
+}) \ No newline at end of file
diff --git a/views/controls/blueprint/info.ejs b/views/controls/blueprint/info.ejs
index 9f7d708..4e2316f 100644
--- a/views/controls/blueprint/info.ejs
+++ b/views/controls/blueprint/info.ejs
@@ -15,8 +15,8 @@
<label for="builder-units">units</label>
<select id="builder-units" name="units">
<option value="px">pixels</option>
- <option value="ft">foot</option>
- <option value="m">meter</option>
+ <option value="ft">feet</option>
+ <option value="m">meters</option>
</select>
</div>
diff --git a/views/controls/builder/info.ejs b/views/controls/builder/info.ejs
index 8a0e0d5..11e995a 100644
--- a/views/controls/builder/info.ejs
+++ b/views/controls/builder/info.ejs
@@ -34,8 +34,8 @@
<label for="builder-units">units</label>
<select id="builder-units" name="units">
<option value="px">pixels</option>
- <option value="ft">foot</option>
- <option value="m">meter</option>
+ <option value="ft">feet</option>
+ <option value="m">meters</option>
</select>
</div>
diff --git a/views/controls/editor/media-editor.ejs b/views/controls/editor/media-editor.ejs
index 2a3d4f3..225bdc8 100644
--- a/views/controls/editor/media-editor.ejs
+++ b/views/controls/editor/media-editor.ejs
@@ -49,8 +49,8 @@
<div class="setting number">
<select id="builder-units" name="units">
<option value="px">pixels</option>
- <option value="ft">foot</option>
- <option value="m">meter</option>
+ <option value="ft">feet</option>
+ <option value="m">meters</option>
</select>
</div>
-->
diff --git a/views/partials/scripts.ejs b/views/partials/scripts.ejs
index bc8dacb..865c0f1 100644
--- a/views/partials/scripts.ejs
+++ b/views/partials/scripts.ejs
@@ -108,6 +108,7 @@
<script type="text/javascript" src="/assets/javascripts/ui/lib/FormView.js"></script>
<script type="text/javascript" src="/assets/javascripts/ui/lib/UploadView.js"></script>
<script type="text/javascript" src="/assets/javascripts/ui/lib/AnimatedView.js"></script>
+<script type="text/javascript" src="/assets/javascripts/ui/lib/ToggleableView.js"></script>
<script type="text/javascript" src="/assets/javascripts/ui/lib/AlertModal.js"></script>
<script type="text/javascript" src="/assets/javascripts/ui/lib/ConfirmModal.js"></script>
<script type="text/javascript" src="/assets/javascripts/ui/lib/ErrorModal.js"></script>