import Light from '../Light'; import vendor from '../core/vendor'; /** * Spherical Harmonic Ambient Light * @constructor clay.light.AmbientSH * @extends clay.Light */ var AmbientSHLight = Light.extend({ castShadow: false, /** * Spherical Harmonic Coefficients * @type {Array.} * @memberOf clay.light.AmbientSH# */ coefficients: [], }, function () { this._coefficientsTmpArr = new vendor.Float32Array(9 * 3); }, { type: 'AMBIENT_SH_LIGHT', uniformTemplates: { ambientSHLightColor: { type: '3f', value: function (instance) { var color = instance.color; var intensity = instance.intensity; return [color[0] * intensity, color[1] * intensity, color[2] * intensity]; } }, ambientSHLightCoefficients: { type: '3f', value: function (instance) { var coefficientsTmpArr = instance._coefficientsTmpArr; for (var i = 0; i < instance.coefficients.length; i++) { coefficientsTmpArr[i] = instance.coefficients[i]; } return coefficientsTmpArr; } } } /** * @function * @name clone * @return {clay.light.Ambient} * @memberOf clay.light.Ambient.prototype */ }); export default AmbientSHLight;