aboutsummaryrefslogtreecommitdiff
path: root/js/models
diff options
context:
space:
mode:
authorValerio Virgillito2012-02-06 11:02:14 -0800
committerValerio Virgillito2012-02-06 11:02:14 -0800
commit671a27069db6a121507c2b342653aede685cff67 (patch)
tree77e9f1499c400229273f880c9d365115b411b227 /js/models
parente58204970e398ce3a36a52bbf72d120c7ffdc167 (diff)
parent1b0c5c0e7ebf9dda95a624da546aaece268631ad (diff)
downloadninja-671a27069db6a121507c2b342653aede685cff67.tar.gz
Merge pull request #15 from mqg734/ToolFixes
Adding, deleting and modifying elements now keep the element planes and PI in sync.
Diffstat (limited to 'js/models')
-rw-r--r--js/models/color-model.js43
-rw-r--r--js/models/element-model.js8
-rw-r--r--js/models/shape-model.js2
3 files changed, 50 insertions, 3 deletions
diff --git a/js/models/color-model.js b/js/models/color-model.js
index 7e5fee1f..2c86422f 100644
--- a/js/models/color-model.js
+++ b/js/models/color-model.js
@@ -415,8 +415,10 @@ exports.ColorModel = Montage.create(Component, {
415 colorEvent.alpha = this.alpha.value; 415 colorEvent.alpha = this.alpha.value;
416 if (this.hsl) 416 if (this.hsl)
417 colorEvent.hsla = {h: this.hsl.h, s: this.hsl.s, l: this.hsl.l, a: this.alpha.value, css: 'hsla('+this.hsl.h+', '+this.hsl.s+'%, '+this.hsl.l+'%, '+this.alpha.value+')'}; 417 colorEvent.hsla = {h: this.hsl.h, s: this.hsl.s, l: this.hsl.l, a: this.alpha.value, css: 'hsla('+this.hsl.h+', '+this.hsl.s+'%, '+this.hsl.l+'%, '+this.alpha.value+')'};
418 if (this.rgb) 418 if (this.rgb) {
419 colorEvent.rgba = {r: this.rgb.r, g: this.rgb.g, b: this.rgb.b, a: this.alpha.value, css: 'rgba('+ this.rgb.r +', '+this.rgb.g+', '+this.rgb.b+', '+this.alpha.value+')'}; 419 colorEvent.rgba = {r: this.rgb.r, g: this.rgb.g, b: this.rgb.b, a: this.alpha.value, css: 'rgba('+ this.rgb.r +', '+this.rgb.g+', '+this.rgb.b+', '+this.alpha.value+')'};
420 colorEvent.webGlColor = [this.rgb.r/255, this.rgb.g/255, this.rgb.b/255, this.alpha.value];
421 }
420 if (this.hex) 422 if (this.hex)
421 colorEvent.hex = this.hex; 423 colorEvent.hex = this.hex;
422 //Standard values that apply to any event 424 //Standard values that apply to any event
@@ -560,7 +562,44 @@ exports.ColorModel = Montage.create(Component, {
560 //Returning RGB object 562 //Returning RGB object
561 return {r: Math.round(r * 255), g: Math.round(g * 255), b: Math.round(b * 255)}; 563 return {r: Math.round(r * 255), g: Math.round(g * 255), b: Math.round(b * 255)};
562 } 564 }
563 } 565 },
566 ////////////////////////////////////////////////////////////////////
567 //Returns WebGL color array in [r, g, b, a] format where the values are [0,1] given a color object
568 colorToWebGl: {
569 enumerable: true,
570 value: function (color) {
571 var temp;
572 if (color) {
573 if(color.l !== undefined) {
574 temp = this.hslToRgb(color.h/360, color.s/100, color.l/100);
575 } else if (color.r !== undefined) {
576 temp = color;
577 }
578 temp.a = color.a;
579 }
580 //WebGL uses array
581 if (temp) {
582 return [temp.r/255, temp.g/255, temp.b/255, temp.a];
583 } else {
584 return null;
585 }
586 }
587 },
588 ////////////////////////////////////////////////////////////////////
589 //Returns CSS string given a WebGL color array in [r, g, b, a] format where the values are [0,1]
590 webGlToCss: {
591 enumerable: true,
592 value: function (color) {
593 if(color && (color.length === 4))
594 {
595 return 'rgba(' + color[0]*255 + ', ' + color[1]*255 + ', ' + color[2]*255 + ', ' + color[3] +')';
596 }
597 else
598 {
599 return null;
600 }
601 }
602 }
564 //////////////////////////////////////////////////////////////////// 603 ////////////////////////////////////////////////////////////////////
565 //////////////////////////////////////////////////////////////////// 604 ////////////////////////////////////////////////////////////////////
566 //////////////////////////////////////////////////////////////////// 605 ////////////////////////////////////////////////////////////////////
diff --git a/js/models/element-model.js b/js/models/element-model.js
index 6e1ac07a..831e8b1e 100644
--- a/js/models/element-model.js
+++ b/js/models/element-model.js
@@ -37,6 +37,12 @@ exports.ElementModel = Montage.create(Montage, {
37 /** 37 /**
38 * SnapManager 2d Snap Cache Info 38 * SnapManager 2d Snap Cache Info
39 */ 39 */
40 isIn2DSnapCache : { value: false } 40 isIn2DSnapCache : { value: false },
41
42 /**
43 * Color info
44 */
45 fill: { value: null },
46 stroke: { value: null }
41 47
42}); \ No newline at end of file 48}); \ No newline at end of file
diff --git a/js/models/shape-model.js b/js/models/shape-model.js
index 9d4fff6f..b643a7b5 100644
--- a/js/models/shape-model.js
+++ b/js/models/shape-model.js
@@ -20,10 +20,12 @@ exports.ShapeModel = Montage.create(Component, {
20 strokeMaterialIndex: { value: null }, 20 strokeMaterialIndex: { value: null },
21 strokeStyle: { value: null }, 21 strokeStyle: { value: null },
22 strokeStyleIndex: { value: null }, 22 strokeStyleIndex: { value: null },
23 border: { value: null }, // Store css value for ColorController
23 24
24 fill: { value: null }, 25 fill: { value: null },
25 fillMaterial: { value: null }, 26 fillMaterial: { value: null },
26 fillMaterialIndex: { value: null }, 27 fillMaterialIndex: { value: null },
28 background: { value: null }, // Store css value for ColorController
27 29
28 // Line-specific 30 // Line-specific
29 slope: { value: null }, 31 slope: { value: null },