import Light from '../Light'; import Vector3 from '../math/Vector3'; /** * @constructor clay.light.Tube * @extends {clay.Light} */ var TubeLight = Light.extend( /** @lends clay.light.Tube# */ { /** * @type {number} */ range: 100, /** * @type {number} */ length: 10 }, { type: 'TUBE_LIGHT', uniformTemplates: { tubeLightPosition: { type: '3f', value: function(instance) { return instance.getWorldPosition().array; } }, tubeLightExtend: { type: '3f', value: (function() { var x = new Vector3(); return function(instance) { // Extend in x axis return x.copy(instance.worldTransform.x) .normalize().scale(instance.length / 2).array; }; })() }, tubeLightRange: { type: '1f', value: function(instance) { return instance.range; } }, tubeLightColor: { type: '3f', value: function(instance) { var color = instance.color; var intensity = instance.intensity; return [color[0]*intensity, color[1]*intensity, color[2]*intensity]; } } } }); export default TubeLight;