File: src/material/ContactMaterial.js
- 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;
-
-