summaryrefslogtreecommitdiff
path: root/public/assets
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets')
-rw-r--r--public/assets/javascripts/rectangles/engine/shapes/polyline.js10
-rw-r--r--public/assets/javascripts/rectangles/engine/shapes/regionlist.js37
-rw-r--r--public/assets/javascripts/rectangles/engine/shapes/shapelist.js7
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()