From 40fa450839a171cbfa1d9c8470d25eeeba337a27 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Tue, 18 Aug 2015 20:05:56 -0400 Subject: serialize/deserialize polyline --- .../assets/javascripts/rectangles/engine/shapes/polyline.js | 10 ++++++++-- .../assets/javascripts/rectangles/engine/shapes/shapelist.js | 11 +++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/public/assets/javascripts/rectangles/engine/shapes/polyline.js b/public/assets/javascripts/rectangles/engine/shapes/polyline.js index 7e3c04c..e853592 100644 --- a/public/assets/javascripts/rectangles/engine/shapes/polyline.js +++ b/public/assets/javascripts/rectangles/engine/shapes/polyline.js @@ -1,9 +1,12 @@ var Polyline = Fiber.extend(function(base){ var exports = {} - exports.init = function(){ - this.points = [] + exports.init = function(points){ + this.points = points this.mx_points = [] this.closed = false + if (points) { + this.build() + } } exports.add = function(p){ this.points.push( p ) @@ -134,6 +137,9 @@ var Polyline = Fiber.extend(function(base){ exports.rebuild = function(){ this.mx.rebuild() } + exports.serialize = function(){ + return this.points + } exports.reset = function(){ this.mx_points.forEach(function(mx){ scene.remove(mx) }) this.mx_points.length = 0 diff --git a/public/assets/javascripts/rectangles/engine/shapes/shapelist.js b/public/assets/javascripts/rectangles/engine/shapes/shapelist.js index e86c5d6..c3b5758 100644 --- a/public/assets/javascripts/rectangles/engine/shapes/shapelist.js +++ b/public/assets/javascripts/rectangles/engine/shapes/shapelist.js @@ -64,5 +64,16 @@ var ShapeList = Fiber.extend(function(base){ exports.forEach = function(fn){ this.shapes.forEach(fn) } + exports.serialize = function(){ + return this.shapes.map(function(shape){ + return shape.serialize() + }) + } + exports.deserialize = function(data){ + data.forEach(function(points){ + var line = new Polyline(points) + this.add(line) + }.bind(this)) + } return exports }) \ No newline at end of file -- cgit v1.2.3-70-g09d2