r3-legacy/src/game-lib-d3-api-friction-co...

103 lines
3.0 KiB
JavaScript
Raw Normal View History

2017-09-01 17:04:43 +02:00
/**
* Raw FrictionContactMaterial API object - should always correspond with the FrictionContactMaterial Schema
* @param id
* @param name
2017-12-04 13:23:15 +01:00
* @param materials
2017-09-01 17:04:43 +02:00
* @param friction
* @param restitution
* @param contactEquationStiffness
* @param contactEquationRelaxation
* @param frictionEquationStiffness
* @param frictionEquationRelaxation
* @param parentEntity
* @constructor
*/
GameLib.D3.API.FrictionContactMaterial = function(
id,
name,
materials,
2017-09-01 17:04:43 +02:00
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 = [];
2017-09-01 17:04:43 +02:00
}
this.materials = materials;
2017-09-01 17:04:43 +02:00
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;
2017-12-04 13:23:15 +01:00
GameLib.API.Component.call(
this,
GameLib.Component.FRICTION_CONTACT_MATERIAL,
parentEntity
);
2017-09-01 17:04:43 +02:00
};
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,
2017-09-01 17:04:43 +02:00
objectFrictionContactMaterial.friction,
objectFrictionContactMaterial.restitution,
objectFrictionContactMaterial.contactEquationStiffness,
objectFrictionContactMaterial.contactEquationRelaxation,
objectFrictionContactMaterial.frictionEquationStiffness,
objectFrictionContactMaterial.frictionEquationRelaxation,
objectFrictionContactMaterial.parentEntity
);
};