diff options
Diffstat (limited to 'public/assets')
3 files changed, 54 insertions, 0 deletions
diff --git a/public/assets/javascripts/rectangles/engine/shapes/polyline.js b/public/assets/javascripts/rectangles/engine/shapes/polyline.js index 3c4e9c3..99c8fda 100644 --- a/public/assets/javascripts/rectangles/engine/shapes/polyline.js +++ b/public/assets/javascripts/rectangles/engine/shapes/polyline.js @@ -134,6 +134,16 @@ var Polyline = Fiber.extend(function(base){ exports.rebuild = function(){ this.mx.rebuild() } + exports.getSegments = function(){ + if (this.points.length == 1) { + return [] + } + var segments = [] + for (var i = 1; i < this.points.length; i++) { + segments.push( [ this.points[i-1], this.points[i] ] ) + } + return segments + } exports.serialize = function(){ return this.points.map(function(point){ return [point.a, point.b] }) } diff --git a/public/assets/javascripts/rectangles/engine/shapes/regionlist.js b/public/assets/javascripts/rectangles/engine/shapes/regionlist.js new file mode 100644 index 0000000..1f2810f --- /dev/null +++ b/public/assets/javascripts/rectangles/engine/shapes/regionlist.js @@ -0,0 +1,37 @@ +var RegionList = (function(){ + + var RegionList = {} + var regions = RegionList.regions + + RegionList.init = function(){ + } + + RegionList.build = function(){ + var segments = shapes.getAllSegments() + segments.forEach(function(segment){ + if (segment[0][0] == segment[1][0]) { + if (segment[0][1] > segment[1][1]) { + segment.push(segment.shift()) + } + } + else if (segment[0][1] == segment[1][1]) { + if (segment[0][0] > segment[1][0]) { + segment.push(segment.shift()) + } + } + }) + segments = segments.sort(function(a,b){ + return a[0][0] < b[0][0] + }) + + console.log(segments) + + // get a list of all segments from these polylines + // re-orientate them so they're either facing up or right + // loop over them from left to right + // + } + + return RegionList + +})()
\ No newline at end of file diff --git a/public/assets/javascripts/rectangles/engine/shapes/shapelist.js b/public/assets/javascripts/rectangles/engine/shapes/shapelist.js index 1b8acfd..4373caf 100644 --- a/public/assets/javascripts/rectangles/engine/shapes/shapelist.js +++ b/public/assets/javascripts/rectangles/engine/shapes/shapelist.js @@ -67,6 +67,13 @@ var ShapeList = Fiber.extend(function(base){ exports.forEach = function(fn){ this.shapes.forEach(fn) } + exports.getAllSegments = function(){ + var segments = [] + this.shapes.forEach(function(shape){ + segments = segments.concat( shape.getSegments() ) + }) + return segments + } exports.serialize = function(){ return this.shapes.map(function(shape){ return shape.serialize() |
