/** * Raw FrictionContactMaterial API object - should always correspond with the FrictionContactMaterial Schema * @param id * @param name * @param materials * @param friction * @param restitution * @param contactEquationStiffness * @param contactEquationRelaxation * @param frictionEquationStiffness * @param frictionEquationRelaxation * @param parentEntity * @constructor */ GameLib.D3.API.FrictionContactMaterial = function( id, name, materials, friction, restitution, contactEquationStiffness, contactEquationRelaxation, frictionEquationStiffness, frictionEquationRelaxation, parentEntity ) { if (GameLib.Utils.UndefinedOrNull(id)) { id = GameLib.Utils.RandomId(); } this.id = id; if (GameLib.Utils.UndefinedOrNull(name)) { name = 'Friction Material (' + this.id + ')'; } this.name = name; if (GameLib.Utils.UndefinedOrNull(materials)) { materials = []; } this.materials = materials; if (GameLib.Utils.UndefinedOrNull(friction)) { friction = 0.3; } this.friction = friction; if (GameLib.Utils.UndefinedOrNull(restitution)) { restitution = 0.3; } this.restitution = restitution; if (GameLib.Utils.UndefinedOrNull(contactEquationStiffness)) { contactEquationStiffness = 1e7; } this.contactEquationStiffness = contactEquationStiffness; if (GameLib.Utils.UndefinedOrNull(contactEquationRelaxation)) { contactEquationRelaxation = 3; } this.contactEquationRelaxation = contactEquationRelaxation; if (GameLib.Utils.UndefinedOrNull(frictionEquationStiffness)) { frictionEquationStiffness = 1e7; } this.frictionEquationStiffness = frictionEquationStiffness; if (GameLib.Utils.UndefinedOrNull(frictionEquationRelaxation)) { frictionEquationRelaxation = 3; } this.frictionEquationRelaxation = frictionEquationRelaxation; GameLib.API.Component.call( this, GameLib.Component.FRICTION_CONTACT_MATERIAL, parentEntity ); }; GameLib.D3.API.FrictionContactMaterial.prototype = Object.create(GameLib.Component.prototype); GameLib.D3.API.FrictionContactMaterial.prototype.constructor = GameLib.D3.API.FrictionContactMaterial; /** * Creates an API FrictionContactMaterial from an Object FrictionContactMaterial * @param objectFrictionContactMaterial * @constructor */ GameLib.D3.API.FrictionContactMaterial.FromObject = function(objectFrictionContactMaterial) { return new GameLib.D3.API.FrictionContactMaterial( objectFrictionContactMaterial.id, objectFrictionContactMaterial.name, objectFrictionContactMaterial.materials, objectFrictionContactMaterial.friction, objectFrictionContactMaterial.restitution, objectFrictionContactMaterial.contactEquationStiffness, objectFrictionContactMaterial.contactEquationRelaxation, objectFrictionContactMaterial.frictionEquationStiffness, objectFrictionContactMaterial.frictionEquationRelaxation, objectFrictionContactMaterial.parentEntity ); };