summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/rectangles
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/javascripts/rectangles')
-rw-r--r--public/assets/javascripts/rectangles/engine/shapes/polyline.js2
-rw-r--r--public/assets/javascripts/rectangles/engine/shapes/regionlist.js12
2 files changed, 8 insertions, 6 deletions
diff --git a/public/assets/javascripts/rectangles/engine/shapes/polyline.js b/public/assets/javascripts/rectangles/engine/shapes/polyline.js
index 99c8fda..6c64128 100644
--- a/public/assets/javascripts/rectangles/engine/shapes/polyline.js
+++ b/public/assets/javascripts/rectangles/engine/shapes/polyline.js
@@ -47,7 +47,7 @@ var Polyline = Fiber.extend(function(base){
return null
}
exports.hasEndPointNear = function(p){
- if (this.closed) return null
+ if (this.closed || ! this.points.length) return null
if (this.firstPoint().distanceTo( p ) < 10/map.zoom) {
return this.firstPoint()
}
diff --git a/public/assets/javascripts/rectangles/engine/shapes/regionlist.js b/public/assets/javascripts/rectangles/engine/shapes/regionlist.js
index acb4ead..f86968f 100644
--- a/public/assets/javascripts/rectangles/engine/shapes/regionlist.js
+++ b/public/assets/javascripts/rectangles/engine/shapes/regionlist.js
@@ -13,6 +13,7 @@ var RegionList = (function(){
var rooms = []
var open_segments = []
+ var closed_segments = []
var segment, open_segment, x_segment, y_segments, overlapped
@@ -21,6 +22,7 @@ var RegionList = (function(){
if (! segment.isVertical()) {
continue
}
+ console.log(segment+"")
overlapped = false
for (var j = 0; j < open_segments.length; j++) {
open_segment = open_segments[j]
@@ -28,17 +30,17 @@ var RegionList = (function(){
// if we have overlap, it means we have made a full room
console.log(segment.y+"", "overlaps", open_segment.y+"")
overlapped = true
+ closed_segments.push(open_segments[j])
open_segments.splice(j--, 1)
x_segment = new vec2( open_segment.x.a, segment.x.b )
- y_segments = segment.y.split(open_segment.y, TOP, BOTTOM)
+ y_segments = open_segment.y.split(segment.y, TOP, BOTTOM)
console.log(y_segments.map(function(s){ return s+"" }).join("\n"))
y_segments.forEach(function(seg){
-
rooms.push(new Rect( x_segment, seg[0] ))
var new_seg = new Rect( segment.x, seg[0] )
- open_segments.shift(new_seg)
+ open_segments.unshift(new_seg)
j++
})
}
@@ -49,8 +51,8 @@ var RegionList = (function(){
}
// console.log(rooms.map(function(s){ return s.toString() }).join("\n"))
-
- return { rooms: rooms, open_segments: open_segments, segments: segments }
+ console.log({ rooms: rooms, open_segments: open_segments, segments: segments, closed_segments: closed_segments })
+ return { rooms: rooms, open_segments: open_segments, segments: segments, closed_segments: closed_segments }
}
RegionList.getSortedSegments = function(){