refactored Color & Dimension operations
This commit is contained in:
parent
1c43df1b85
commit
633660b7af
@ -21,31 +21,14 @@ node.Color.prototype = {
|
|||||||
return Math.round(i).toString(16);
|
return Math.round(i).toString(16);
|
||||||
}).join('');
|
}).join('');
|
||||||
},
|
},
|
||||||
'+': function (other) {
|
operate: function (op, other) {
|
||||||
var result = [];
|
var result = [];
|
||||||
for (var c = 0; c < 3; c++) {
|
if (! (other instanceof node.Color)) {
|
||||||
result[c] = this.value[c] + other.value[c];
|
other = other.toColor();
|
||||||
}
|
}
|
||||||
return new(node.Color)(result);
|
|
||||||
},
|
|
||||||
'-': function (other) {
|
|
||||||
var result = [];
|
|
||||||
for (var c = 0; c < 3; c++) {
|
for (var c = 0; c < 3; c++) {
|
||||||
result[c] = this.value[c] - other.value[c];
|
result[c] = node.operate(op, this.value[c], other.value[c]);
|
||||||
}
|
|
||||||
return new(node.Color)(result);
|
|
||||||
},
|
|
||||||
'*': function (other) {
|
|
||||||
var result = [];
|
|
||||||
for (var c = 0; c < 3; c++) {
|
|
||||||
result[c] = this.value[c] * other.value[c];
|
|
||||||
}
|
|
||||||
return new(node.Color)(result);
|
|
||||||
},
|
|
||||||
'/': function (other) {
|
|
||||||
var result = [];
|
|
||||||
for (var c = 0; c < 3; c++) {
|
|
||||||
result[c] = this.value[c] / other.value[c];
|
|
||||||
}
|
}
|
||||||
return new(node.Color)(result);
|
return new(node.Color)(result);
|
||||||
}
|
}
|
||||||
|
@ -6,25 +6,17 @@ node.Dimension = function Dimension(value, unit) {
|
|||||||
|
|
||||||
node.Dimension.prototype = {
|
node.Dimension.prototype = {
|
||||||
eval: function () { return this },
|
eval: function () { return this },
|
||||||
|
toColor: function () {
|
||||||
|
return new(node.Color)([this.value, this.value, this.value]);
|
||||||
|
},
|
||||||
toCSS: function () {
|
toCSS: function () {
|
||||||
var css = this.value + this.unit;
|
var css = this.value + this.unit;
|
||||||
return css;
|
return css;
|
||||||
},
|
},
|
||||||
'+': function (other) {
|
operate: function (op, other) {
|
||||||
return new(node.Dimension)
|
return new(node.Dimension)
|
||||||
(this.value + other.value, this.unit);
|
(node.operate(op, this.value, other.value),
|
||||||
},
|
this.unit);
|
||||||
'-': function (other) {
|
|
||||||
return new(node.Dimension)
|
|
||||||
(this.value - other.value, this.unit);
|
|
||||||
},
|
|
||||||
'*': function (other) {
|
|
||||||
return new(node.Dimension)
|
|
||||||
(this.value * other.value, this.unit);
|
|
||||||
},
|
|
||||||
'/': function (other) {
|
|
||||||
return new(node.Dimension)
|
|
||||||
(this.value / other.value, this.unit);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user