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 | 5 |
3 files changed, 51 insertions, 5 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..58a88fd0 100755 --- a/js/models/shape-model.js +++ b/js/models/shape-model.js | |||
@@ -10,6 +10,7 @@ var Montage = require("montage/core/core").Montage, | |||
10 | exports.ShapeModel = Montage.create(Component, { | 10 | exports.ShapeModel = Montage.create(Component, { |
11 | 11 | ||
12 | shapeCount: { value: 0 }, | 12 | shapeCount: { value: 0 }, |
13 | useWebGl: { value: false }, | ||
13 | 14 | ||
14 | GLWorld: { value: null }, | 15 | GLWorld: { value: null }, |
15 | GLGeomObj: { value: null }, | 16 | GLGeomObj: { value: null }, |
@@ -17,13 +18,13 @@ exports.ShapeModel = Montage.create(Component, { | |||
17 | strokeSize: { value: null }, | 18 | strokeSize: { value: null }, |
18 | stroke: { value: null }, | 19 | stroke: { value: null }, |
19 | strokeMaterial: { value: null }, | 20 | strokeMaterial: { 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 | background: { value: null }, // Store css value for ColorController |
27 | 28 | ||
28 | // Line-specific | 29 | // Line-specific |
29 | slope: { value: null }, | 30 | slope: { value: null }, |