2017-09-01 17:04:43 +02:00
|
|
|
/**
|
|
|
|
* Raw FrictionContactMaterial API object - should always correspond with the FrictionContactMaterial Schema
|
|
|
|
* @param id
|
|
|
|
* @param name
|
|
|
|
* @param material1
|
|
|
|
* @param material2
|
|
|
|
* @param friction
|
|
|
|
* @param restitution
|
|
|
|
* @param contactEquationStiffness
|
|
|
|
* @param contactEquationRelaxation
|
|
|
|
* @param frictionEquationStiffness
|
|
|
|
* @param frictionEquationRelaxation
|
|
|
|
* @param parentEntity
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
GameLib.D3.API.FrictionContactMaterial = function(
|
|
|
|
id,
|
|
|
|
name,
|
2017-09-14 05:42:38 +02:00
|
|
|
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;
|
|
|
|
|
2017-09-14 05:42:38 +02:00
|
|
|
if (GameLib.Utils.UndefinedOrNull(materials)) {
|
|
|
|
materials = [];
|
2017-09-01 17:04:43 +02:00
|
|
|
}
|
2017-09-14 05:42:38 +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;
|
|
|
|
|
|
|
|
if (GameLib.Utils.UndefinedOrNull(parentEntity)) {
|
|
|
|
parentEntity = null;
|
|
|
|
}
|
|
|
|
this.parentEntity = 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,
|
2017-09-14 05:42:38 +02:00
|
|
|
objectFrictionContactMaterial.materials,
|
2017-09-01 17:04:43 +02:00
|
|
|
objectFrictionContactMaterial.friction,
|
|
|
|
objectFrictionContactMaterial.restitution,
|
|
|
|
objectFrictionContactMaterial.contactEquationStiffness,
|
|
|
|
objectFrictionContactMaterial.contactEquationRelaxation,
|
|
|
|
objectFrictionContactMaterial.frictionEquationStiffness,
|
|
|
|
objectFrictionContactMaterial.frictionEquationRelaxation,
|
|
|
|
objectFrictionContactMaterial.parentEntity
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|