import Vector3 from '../math/Vector3'; import vec3 from '../glmatrix/vec3'; /** * @constructor * @alias clay.particle.Particle */ var Particle = function() { /** * @type {clay.Vector3} */ this.position = new Vector3(); /** * Use euler angle to represent particle rotation * @type {clay.Vector3} */ this.rotation = new Vector3(); /** * @type {?clay.Vector3} */ this.velocity = null; /** * @type {?clay.Vector3} */ this.angularVelocity = null; /** * @type {number} */ this.life = 1; /** * @type {number} */ this.age = 0; /** * @type {number} */ this.spriteSize = 1; /** * @type {number} */ this.weight = 1; /** * @type {clay.particle.Emitter} */ this.emitter = null; }; /** * Update particle position * @param {number} deltaTime */ Particle.prototype.update = function(deltaTime) { if (this.velocity) { vec3.scaleAndAdd(this.position.array, this.position.array, this.velocity.array, deltaTime); } if (this.angularVelocity) { vec3.scaleAndAdd(this.rotation.array, this.rotation.array, this.angularVelocity.array, deltaTime); } }; export default Particle;