import Node from './Node'; import Shader from './Shader'; import lightShader from './shader/source/header/light'; Shader['import'](lightShader); /** * @constructor clay.Light * @extends clay.Node */ var Light = Node.extend(function(){ return /** @lends clay.Light# */ { /** * Light RGB color * @type {number[]} */ color: [1, 1, 1], /** * Light intensity * @type {number} */ intensity: 1.0, // Config for shadow map /** * If light cast shadow * @type {boolean} */ castShadow: true, /** * Shadow map size * @type {number} */ shadowResolution: 512, /** * Light group, shader with same `lightGroup` will be affected * * Only useful in forward rendering * @type {number} */ group: 0 }; }, /** @lends clay.Light.prototype. */ { /** * Light type * @type {string} * @memberOf clay.Light# */ type: '', /** * @return {clay.Light} * @memberOf clay.Light.prototype */ clone: function() { var light = Node.prototype.clone.call(this); light.color = Array.prototype.slice.call(this.color); light.intensity = this.intensity; light.castShadow = this.castShadow; light.shadowResolution = this.shadowResolution; return light; } }); export default Light;