glam
Version:
Experimental WebGL Engine
61 lines (41 loc) • 1.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = createNormalColor;
var _objectAssign = require('object-assign');
var _objectAssign2 = _interopRequireDefault(_objectAssign);
var _setUniforms = require('./set-uniforms');
var _setUniforms2 = _interopRequireDefault(_setUniforms);
var _useAugment = require('../use-augment');
var _useAugment2 = _interopRequireDefault(_useAugment);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function NormalColor(material, normalConfig) {
this.name = "normalColor";
this.flags = (0, _objectAssign2.default)({}, material.flags, { recompile: true });
this.fragSource = material.fragSource;
this.vertSource = material.vertSource;
this.defines = material.defines.concat(["NORMAL_COLOR", "NORMAL"]);
this.shader = null;
this.mode = material.mode;
this.setUniforms = material.setUniforms.concat(_setUniforms2.default);
this.setAttributes = material.setAttributes.slice();
this.shading = (0, _objectAssign2.default)({ normalColor: normalConfig }, material.shading);
this.use = _useAugment2.default.bind(null, this);
}
function createNormalColor(material, properties) {
var normalConfig = (0, _objectAssign2.default)({
amount: 1
}, properties);
if (typeof material === 'function') {
return function createMaterialWithNormalColor() {
//TODO - Create a function to do this thing
var arity = material.length;
var originalMaterialArgs = Array.prototype.slice.call(arguments, 0, arity);
var newNormalConfig = (0, _objectAssign2.default)({}, normalConfig, arguments[arity]);
return new NormalColor(material.apply(this, originalMaterialArgs), newNormalConfig);
};
} else {
return new NormalColor(material, normalConfig);
}
}