From 53d83f9515c1d6edd35bf16a94e022730ccafbe9 Mon Sep 17 00:00:00 2001 From: Nivesh Rajbhandari Date: Mon, 26 Mar 2012 11:43:06 -0700 Subject: Updating EyeDropper tool to support new JSON data format for WebGL. Signed-off-by: Nivesh Rajbhandari --- js/tools/EyedropperTool.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'js/tools/EyedropperTool.js') diff --git a/js/tools/EyedropperTool.js b/js/tools/EyedropperTool.js index 927b86cf..6d6937e3 100755 --- a/js/tools/EyedropperTool.js +++ b/js/tools/EyedropperTool.js @@ -368,7 +368,7 @@ exports.EyedropperTool = Montage.create(toolBase, { this._imageDataContext = this._imageDataCanvas.getContext("2d"); if(isWebGl) { - var worldData = elt.elementModel.shapeModel.GLWorld.export(); + var worldData = elt.elementModel.shapeModel.GLWorld.exportJSON(); if(worldData) { this._webGlDataCanvas = njModule.NJUtils.makeNJElement("canvas", "Canvas", "shape", {"data-RDGE-id": njModule.NJUtils.generateRandom()}, true); @@ -379,7 +379,16 @@ exports.EyedropperTool = Montage.create(toolBase, { this._webGlDataCanvas.width = w; this._webGlDataCanvas.height = h; this._webGlWorld = new World(this._webGlDataCanvas, true, true); - this._webGlWorld.import(worldData); + + var index = worldData.indexOf( ';' ); + if ((worldData[0] === 'v') && (index < 24)) + { + // JSON format. separate the version info from the JSON info + var jStr = worldData.substr( index+1 ); + worldData = JSON.parse( jStr ); + } + + this._webGlWorld.importJSON(worldData); this._webGlWorld.render(); setTimeout(function() { this._webGlWorld.draw(); -- cgit v1.2.3 From 21ed09eedee336e69ce2e0f9fd254eb989227adf Mon Sep 17 00:00:00 2001 From: Nivesh Rajbhandari Date: Mon, 26 Mar 2012 12:09:47 -0700 Subject: Handle no-color/null. Signed-off-by: Nivesh Rajbhandari --- js/tools/EyedropperTool.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'js/tools/EyedropperTool.js') diff --git a/js/tools/EyedropperTool.js b/js/tools/EyedropperTool.js index 6d6937e3..7458a9e8 100755 --- a/js/tools/EyedropperTool.js +++ b/js/tools/EyedropperTool.js @@ -148,7 +148,11 @@ exports.EyedropperTool = Montage.create(toolBase, { c = this._getColorFromElement(obj, event); } - if(typeof(c) === "string") + if(!c) + { + color = null; + } + else if(typeof(c) === "string") { color = this.application.ninja.colorController.getColorObjFromCss(c); } -- cgit v1.2.3 From 5d055d9fd20a2f4e5078bd722513ce905e9a6146 Mon Sep 17 00:00:00 2001 From: Nivesh Rajbhandari Date: Tue, 27 Mar 2012 11:33:28 -0700 Subject: Check for webGLWorld before calling draw. Signed-off-by: Nivesh Rajbhandari --- js/tools/EyedropperTool.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'js/tools/EyedropperTool.js') diff --git a/js/tools/EyedropperTool.js b/js/tools/EyedropperTool.js index 7458a9e8..d627f03b 100755 --- a/js/tools/EyedropperTool.js +++ b/js/tools/EyedropperTool.js @@ -395,9 +395,12 @@ exports.EyedropperTool = Montage.create(toolBase, { this._webGlWorld.importJSON(worldData); this._webGlWorld.render(); setTimeout(function() { - this._webGlWorld.draw(); - this._imageDataContext.drawImage(this._webGlDataCanvas, 0, 0); - return this._getColorFromCanvas(this._imageDataContext, tmpPt, true); + if(this._webGlWorld) + { + this._webGlWorld.draw(); + this._imageDataContext.drawImage(this._webGlDataCanvas, 0, 0); + return this._getColorFromCanvas(this._imageDataContext, tmpPt, true); + } }.bind(this), 250); } } -- cgit v1.2.3