diff options
Diffstat (limited to 'js/models')
-rwxr-xr-x | js/models/color-model.js | 43 | ||||
-rwxr-xr-x | js/models/element-model.js | 8 | ||||
-rwxr-xr-x | js/models/shape-model.js | 2 |
3 files changed, 50 insertions, 3 deletions
diff --git a/js/models/color-model.js b/js/models/color-model.js index 7e5fee1f..2c86422f 100755 --- 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 100755 --- 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 100755 --- 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 }, |