UNPKG

glam

Version:

Experimental WebGL Engine

61 lines (41 loc) 1.8 kB
'use strict'; 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); } }