91 lines
2.1 KiB
JavaScript
91 lines
2.1 KiB
JavaScript
|
/**
|
||
|
* FrictionMaterial Runtime
|
||
|
* @param physics R3.GraphicsRuntime
|
||
|
* @param apiFrictionMaterial R3.D3.API.FrictionMaterial
|
||
|
* @constructor
|
||
|
*/
|
||
|
R3.D3.FrictionMaterial = function (
|
||
|
physics,
|
||
|
apiFrictionMaterial
|
||
|
) {
|
||
|
|
||
|
this.physics = physics;
|
||
|
this.physics.isNotCannonThrow();
|
||
|
|
||
|
if (R3.Utils.UndefinedOrNull(apiFrictionMaterial)) {
|
||
|
apiFrictionMaterial = {};
|
||
|
}
|
||
|
|
||
|
R3.D3.API.FrictionMaterial.call(
|
||
|
this,
|
||
|
apiFrictionMaterial.id,
|
||
|
apiFrictionMaterial.name,
|
||
|
apiFrictionMaterial.friction,
|
||
|
apiFrictionMaterial.restitution,
|
||
|
apiFrictionMaterial.parentEntity
|
||
|
);
|
||
|
|
||
|
R3.Component.call(this);
|
||
|
};
|
||
|
|
||
|
R3.D3.FrictionMaterial.prototype = Object.create(R3.Component.prototype);
|
||
|
R3.D3.FrictionMaterial.prototype.constructor = R3.D3.FrictionMaterial;
|
||
|
|
||
|
/**
|
||
|
* create instance
|
||
|
*/
|
||
|
R3.D3.FrictionMaterial.prototype.createInstance = function() {
|
||
|
|
||
|
this.instance = new CANNON.Material(
|
||
|
this.name
|
||
|
);
|
||
|
|
||
|
this.instance.friction = this.friction;
|
||
|
this.instance.restitution = this.restitution;
|
||
|
|
||
|
R3.Component.prototype.createInstance.call(this);
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
*/
|
||
|
R3.D3.FrictionMaterial.prototype.updateInstance = function() {
|
||
|
this.instance.friction = this.friction;
|
||
|
this.instance.restitution = this.restitution;
|
||
|
this.instance.name = this.name;
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* R3.D3.FrictionMaterial to R3.D3.API.FrictionMaterial
|
||
|
* @returns {R3.D3.API.FrictionMaterial}
|
||
|
*/
|
||
|
R3.D3.FrictionMaterial.prototype.toApiObject = function() {
|
||
|
|
||
|
var apiFrictionMaterial = new R3.D3.API.FrictionMaterial(
|
||
|
this.id,
|
||
|
this.name,
|
||
|
this.friction,
|
||
|
this.restitution,
|
||
|
R3.Utils.IdOrNull(this.parentEntity)
|
||
|
);
|
||
|
|
||
|
return apiFrictionMaterial;
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* R3.D3.FrictionMaterial from Object FrictionMaterial
|
||
|
* @param physics
|
||
|
* @param objectComponent
|
||
|
* @returns {R3.D3.FrictionMaterial}
|
||
|
* @constructor
|
||
|
*/
|
||
|
R3.D3.FrictionMaterial.FromObject = function(physics, objectComponent) {
|
||
|
|
||
|
var apiFrictionMaterial = R3.D3.API.FrictionMaterial.FromObject(objectComponent);
|
||
|
|
||
|
return new R3.D3.FrictionMaterial(
|
||
|
physics,
|
||
|
apiFrictionMaterial
|
||
|
);
|
||
|
};
|