From ac27d538af33ca8d67d3d88729f49c05793afda7 Mon Sep 17 00:00:00 2001 From: Nivesh Rajbhandari Date: Mon, 9 Jul 2012 11:43:36 -0700 Subject: PI, drawing and editing fixes for shapes and materials. IKNinja-1841 - Cannot change webgl shape with LinearGradient and RadialGradient to solid color. IKNINJA-1851 - Cannot draw webgl shapes with Linear/RadialGradient material. IKNINJA-1864 - PI doesn't update the color of shape if WebGL material switches to Flat. IKNINJA-1886 - Gradient edits not applied to WebGL Stage object. Signed-off-by: Nivesh Rajbhandari --- js/tools/LineTool.js | 6 +++++- js/tools/OvalTool.js | 12 ++++++++++-- js/tools/RectTool.js | 12 ++++++++++-- 3 files changed, 25 insertions(+), 5 deletions(-) (limited to 'js/tools') diff --git a/js/tools/LineTool.js b/js/tools/LineTool.js index 413c0302..f9f2f817 100755 --- a/js/tools/LineTool.js +++ b/js/tools/LineTool.js @@ -244,7 +244,11 @@ exports.LineTool = Montage.create(ShapeTool, { { strokeMaterial = Object.create(MaterialsModel.getMaterial(strokeM)); } - strokeColor = ShapesController.getMaterialColor(strokeM) || strokeColor; + if (strokeMaterial && this.options.stroke.color && (strokeMaterial.gradientType === this.options.stroke.color.gradientMode)) { + strokeColor = {gradientMode:strokeMaterial.gradientType, color:this.options.stroke.color.stops}; + } else { + strokeColor = ShapesController.getMaterialColor(strokeM) || strokeColor; + } } var world = this.getGLWorld(canvas, this.options.use3D); diff --git a/js/tools/OvalTool.js b/js/tools/OvalTool.js index e798d1a7..f1e33205 100755 --- a/js/tools/OvalTool.js +++ b/js/tools/OvalTool.js @@ -54,14 +54,22 @@ exports.OvalTool = Montage.create(ShapeTool, { { strokeMaterial = Object.create(MaterialsModel.getMaterial(strokeM)); } - strokeColor = ShapesController.getMaterialColor(strokeM) || strokeColor; + if (strokeMaterial && this.options.stroke.color && (strokeMaterial.gradientType === this.options.stroke.color.gradientMode)) { + strokeColor = {gradientMode:strokeMaterial.gradientType, color:this.options.stroke.color.stops}; + } else { + strokeColor = ShapesController.getMaterialColor(strokeM) || strokeColor; + } fillM = this.options.fillMaterial; if(fillM) { fillMaterial = Object.create(MaterialsModel.getMaterial(fillM)); } - fillColor = ShapesController.getMaterialColor(fillM) || fillColor; + if (fillMaterial && this.options.fill.color && (fillMaterial.gradientType === this.options.fill.color.gradientMode)) { + fillColor = {gradientMode:fillMaterial.gradientType, color:this.options.fill.color.stops}; + } else { + fillColor = ShapesController.getMaterialColor(fillM) || fillColor; + } } var world = this.getGLWorld(canvas, this.options.use3D); diff --git a/js/tools/RectTool.js b/js/tools/RectTool.js index 6f0e65c7..0dfafe57 100755 --- a/js/tools/RectTool.js +++ b/js/tools/RectTool.js @@ -74,14 +74,22 @@ exports.RectTool = Montage.create(ShapeTool, { { strokeMaterial = Object.create(MaterialsModel.getMaterial(strokeM)); } - strokeColor = ShapesController.getMaterialColor(strokeM) || strokeColor; + if (strokeMaterial && this.options.stroke.color && (strokeMaterial.gradientType === this.options.stroke.color.gradientMode)) { + strokeColor = {gradientMode:strokeMaterial.gradientType, color:this.options.stroke.color.stops}; + } else { + strokeColor = ShapesController.getMaterialColor(strokeM) || strokeColor; + } fillM = this.options.fillMaterial; if(fillM) { fillMaterial = Object.create(MaterialsModel.getMaterial(fillM)); } - fillColor = ShapesController.getMaterialColor(fillM) || fillColor; + if (fillMaterial && this.options.fill.color && (fillMaterial.gradientType === this.options.fill.color.gradientMode)) { + fillColor = {gradientMode:fillMaterial.gradientType, color:this.options.fill.color.stops}; + } else { + fillColor = ShapesController.getMaterialColor(fillM) || fillColor; + } } var world = this.getGLWorld(canvas, this.options.use3D); -- cgit v1.2.3