/** * 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 ); };