UNPKG

cannon

Version:

A lightweight 3D physics engine written in JavaScript.

80 lines (68 loc) 2.23 kB
var Utils = require('../utils/Utils'); module.exports = ContactMaterial; /** * Defines what happens when two materials meet. * @class ContactMaterial * @constructor * @param {Material} m1 * @param {Material} m2 * @param {object} [options] * @param {Number} [options.friction=0.3] * @param {Number} [options.restitution=0.3] * @param {number} [options.contactEquationStiffness=1e7] * @param {number} [options.contactEquationRelaxation=3] * @param {number} [options.frictionEquationStiffness=1e7] * @param {Number} [options.frictionEquationRelaxation=3] */ function ContactMaterial(m1, m2, options){ options = Utils.defaults(options, { friction: 0.3, restitution: 0.3, contactEquationStiffness: 1e7, contactEquationRelaxation: 3, frictionEquationStiffness: 1e7, frictionEquationRelaxation: 3 }); /** * Identifier of this material * @property {Number} id */ this.id = ContactMaterial.idCounter++; /** * Participating materials * @property {Array} materials * @todo Should be .materialA and .materialB instead */ this.materials = [m1, m2]; /** * Friction coefficient * @property {Number} friction */ this.friction = options.friction; /** * Restitution coefficient * @property {Number} restitution */ this.restitution = options.restitution; /** * Stiffness of the produced contact equations * @property {Number} contactEquationStiffness */ this.contactEquationStiffness = options.contactEquationStiffness; /** * Relaxation time of the produced contact equations * @property {Number} contactEquationRelaxation */ this.contactEquationRelaxation = options.contactEquationRelaxation; /** * Stiffness of the produced friction equations * @property {Number} frictionEquationStiffness */ this.frictionEquationStiffness = options.frictionEquationStiffness; /** * Relaxation time of the produced friction equations * @property {Number} frictionEquationRelaxation */ this.frictionEquationRelaxation = options.frictionEquationRelaxation; } ContactMaterial.idCounter = 0;