aboutsummaryrefslogtreecommitdiff
path: root/js/models/color-model.js
diff options
context:
space:
mode:
authorhwc4872012-04-19 13:01:43 -0700
committerhwc4872012-04-19 13:01:43 -0700
commite6a20fe64574763483dc602bd759278ccf5e5e68 (patch)
tree69defe7200206f0257fe90697136fadef59d521e /js/models/color-model.js
parentae7eb87564632ce7c676bd728b8ff2710ff0bb83 (diff)
parent9284c19f076dec3b47ece7dc7bcd22d74e4246c3 (diff)
downloadninja-e6a20fe64574763483dc602bd759278ccf5e5e68.tar.gz
Merge branch 'master' of github.com:Motorola-Mobility/ninja-internal into Textures
Conflicts: js/lib/drawing/world.js js/lib/geom/geom-obj.js js/lib/rdge/materials/cloud-material.js js/lib/rdge/materials/deform-material.js js/lib/rdge/materials/flat-material.js js/lib/rdge/materials/material.js js/lib/rdge/materials/pulse-material.js js/lib/rdge/materials/relief-tunnel-material.js js/lib/rdge/materials/square-tunnel-material.js js/lib/rdge/materials/star-material.js js/lib/rdge/materials/taper-material.js js/lib/rdge/materials/tunnel-material.js js/lib/rdge/materials/twist-material.js js/lib/rdge/materials/twist-vert-material.js js/lib/rdge/materials/uber-material.js js/lib/rdge/materials/water-material.js js/lib/rdge/materials/z-invert-material.js
Diffstat (limited to 'js/models/color-model.js')
-rwxr-xr-xjs/models/color-model.js56
1 files changed, 46 insertions, 10 deletions
diff --git a/js/models/color-model.js b/js/models/color-model.js
index 4189fbef..764feeb5 100755
--- a/js/models/color-model.js
+++ b/js/models/color-model.js
@@ -589,18 +589,54 @@ exports.ColorModel = Montage.create(Component, {
589 } 589 }
590 }, 590 },
591 //////////////////////////////////////////////////////////////////// 591 ////////////////////////////////////////////////////////////////////
592 //Returns CSS string given a WebGL color array in [r, g, b, a] format where the values are [0,1] 592 //Returns a color object given a WebGL color array/object with gradient stops
593 webGlToCss: { 593 webGlToColor: {
594 enumerable: true, 594 enumerable: true,
595 value: function (color) { 595 value: function (c) {
596 if(color && (color.length === 4)) 596 if(c) {
597 { 597 if(c.gradientMode) {
598 return 'rgba(' + color[0]*255 + ', ' + color[1]*255 + ', ' + color[2]*255 + ', ' + color[3] +')'; 598 // Gradient
599 } 599 var i = 0,
600 else 600 len,
601 { 601 css,
602 return null; 602 stops = c.color,
603 gradient;
604
605 // Create the CSS string
606 if (c.gradientMode === 'radial') {
607 css = '-webkit-radial-gradient(center, ellipse cover';
608 } else {
609 css = '-webkit-gradient(linear, left top, right top';
610 }
611
612 //Sorting array (must be sorted for radial gradients, at least in Chrome
613 stops.sort(function(a,b){return a.position - b.position});
614 //Looping through stops in gradient to create CSS
615
616 len = stops.length;
617 for (i=0; i < len; i++) {
618 //Adding to CSS String
619 if (c.gradientMode === 'radial' && stops[i].value) {
620 css += ', '+stops[i].value.css+' '+stops[i].position+'% ';
621 } else if (stops[i].value){
622 css += ', color-stop('+stops[i].position+'%,'+stops[i].value.css+')';
623 }
624 }
625 //Closing the CSS strings
626 css += ')';
627
628 gradient = {stops: c.color, mode: c.gradientMode, gradientMode: c.gradientMode, css: css};
629 return {mode: 'gradient', value: gradient, color: gradient};
630 } else if(c.length === 4) {
631 // CSS
632 return this.application.ninja.colorController.getColorObjFromCss('rgba(' + c[0]*255 + ', '
633 + c[1]*255 + ', '
634 + c[2]*255 + ', '
635 + c[3] +')');
636 }
603 } 637 }
638
639 return null;
604 } 640 }
605 } 641 }
606 //////////////////////////////////////////////////////////////////// 642 ////////////////////////////////////////////////////////////////////