110 lines
3.2 KiB
JavaScript
110 lines
3.2 KiB
JavaScript
|
/**
|
||
|
* 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,
|
||
|
material1,
|
||
|
material2,
|
||
|
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(material1)) {
|
||
|
material1 = null;
|
||
|
}
|
||
|
this.material1 = material1;
|
||
|
|
||
|
if (GameLib.Utils.UndefinedOrNull(material2)) {
|
||
|
material2 = null;
|
||
|
}
|
||
|
this.material2 = material2;
|
||
|
|
||
|
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,
|
||
|
objectFrictionContactMaterial.material1,
|
||
|
objectFrictionContactMaterial.material2,
|
||
|
objectFrictionContactMaterial.friction,
|
||
|
objectFrictionContactMaterial.restitution,
|
||
|
objectFrictionContactMaterial.contactEquationStiffness,
|
||
|
objectFrictionContactMaterial.contactEquationRelaxation,
|
||
|
objectFrictionContactMaterial.frictionEquationStiffness,
|
||
|
objectFrictionContactMaterial.frictionEquationRelaxation,
|
||
|
objectFrictionContactMaterial.parentEntity
|
||
|
);
|
||
|
};
|
||
|
|