Source: events/eventObjects.js

/**
 * Namespace for event objects
 * @memberof PhSim
 * @namespace
 */

const Events = {}

/**
 * @constructor
 * 
 * 
 */

Events.PhSimEvent = function(type) {
	this.target = null; 
	this.timestamp = null;
	this.type = type;
}

/**
 * @constructor
 */

Events.PhSimDynEvent = function() {
	Events.PhSimEvent.call(this);
	this.layer = null;
	this.simulation = null;
	this.object = null;
}

Events.PhSimDynEvent.prototype = Object.create(Events.PhSimEvent.prototype);

/**
 * @constructor
 * @extends PhSim.Events.PhSimEvent
 */


Events.PhSimEventKey = function() {
	Events.PhSimDynEvent.call(this);
	this.key = null;
	this.domEvent = null;
}

Events.PhSimEventKey.prototype = Object.create(Events.PhSimDynEvent.prototype);

/**
 * Event object for mouse events.
 * 
 * @constructor
 * @extends PhSim.Events.PhSimDynEvent
 */


Events.PhSimMouseEvent = function() {
	Events.PhSimDynEvent.call(this);
	this.x = null;
	this.y = null;
	this.domEvent = null;
	this.dynArr = null;
}

Events.PhSimMouseEvent.prototype = Object.create(Events.PhSimDynEvent.prototype);

/**
 * 
 * Event fired whenever the mouse is pressed down on an object.
 * 
 * @event PhSim.Events#objmousedown
 * @type {PhSim.Events.PhSimMouseEvent}
 */

/**
 * Event fired whenever the mouse is let go of while over an object
 * 
 * @event PhSim.Events#objmouseup
 * @type {PhSim.Events.PhSimMouseEvent}
 */

/**
 * @constructor
 */


Events.PhSimCollision = function() {
	this.bodyA = null;
	this.bodyB = null;
	this.matter = null;
}

module.exports = Events;