r3-legacy/src/r3-d3-friction-material.js

91 lines
2.1 KiB
JavaScript
Raw Normal View History

2018-04-09 09:35:04 +02:00
/**
* 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
);
};