p2s
Version:
A JavaScript 2D physics engine.
675 lines (449 loc) • 31.5 kB
HTML
<html lang="en">
<head>
<meta charset="utf-8">
<title>ContactMaterial - p2.js</title>
<link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
<link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
<link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
<link rel="icon" href="../assets/favicon.ico">
<script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
</head>
<body class="yui3-skin-sam">
<div id="doc">
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="../assets/css/logo.png" title="p2.js" width="117" height="52"></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: 0.7.1</em>
</div>
</div>
<div id="bd" class="yui3-g">
<div class="yui3-u-1-4">
<div id="docs-sidebar" class="sidebar apidocs">
<div id="api-list">
<h2 class="off-left">APIs</h2>
<div id="api-tabview" class="tabview">
<ul class="tabs">
<li><a href="#api-classes">Classes</a></li>
<li><a href="#api-modules">Modules</a></li>
</ul>
<div id="api-tabview-filter">
<input type="search" id="api-filter" placeholder="Type to filter APIs">
</div>
<div id="api-tabview-panel">
<ul id="api-classes" class="apis classes">
<li><a href="../classes/AABB.html">AABB</a></li>
<li><a href="../classes/AngleLockEquation.html">AngleLockEquation</a></li>
<li><a href="../classes/Body.html">Body</a></li>
<li><a href="../classes/Box.html">Box</a></li>
<li><a href="../classes/Broadphase.html">Broadphase</a></li>
<li><a href="../classes/Capsule.html">Capsule</a></li>
<li><a href="../classes/Circle.html">Circle</a></li>
<li><a href="../classes/Constraint.html">Constraint</a></li>
<li><a href="../classes/ContactEquation.html">ContactEquation</a></li>
<li><a href="../classes/ContactMaterial.html">ContactMaterial</a></li>
<li><a href="../classes/Convex.html">Convex</a></li>
<li><a href="../classes/DistanceConstraint.html">DistanceConstraint</a></li>
<li><a href="../classes/Equation.html">Equation</a></li>
<li><a href="../classes/EventEmitter.html">EventEmitter</a></li>
<li><a href="../classes/FrictionEquation.html">FrictionEquation</a></li>
<li><a href="../classes/GearConstraint.html">GearConstraint</a></li>
<li><a href="../classes/GSSolver.html">GSSolver</a></li>
<li><a href="../classes/Heightfield.html">Heightfield</a></li>
<li><a href="../classes/Island.html">Island</a></li>
<li><a href="../classes/IslandManager.html">IslandManager</a></li>
<li><a href="../classes/IslandNode.html">IslandNode</a></li>
<li><a href="../classes/Line.html">Line</a></li>
<li><a href="../classes/LinearSpring.html">LinearSpring</a></li>
<li><a href="../classes/LockConstraint.html">LockConstraint</a></li>
<li><a href="../classes/Material.html">Material</a></li>
<li><a href="../classes/NaiveBroadphase.html">NaiveBroadphase</a></li>
<li><a href="../classes/Narrowphase.html">Narrowphase</a></li>
<li><a href="../classes/Object pooling utility..html">Object pooling utility.</a></li>
<li><a href="../classes/OverlapKeeper.html">OverlapKeeper</a></li>
<li><a href="../classes/OverlapKeeperRecord.html">OverlapKeeperRecord</a></li>
<li><a href="../classes/Particle.html">Particle</a></li>
<li><a href="../classes/Plane.html">Plane</a></li>
<li><a href="../classes/PrismaticConstraint.html">PrismaticConstraint</a></li>
<li><a href="../classes/Ray.html">Ray</a></li>
<li><a href="../classes/RaycastResult.html">RaycastResult</a></li>
<li><a href="../classes/RevoluteConstraint.html">RevoluteConstraint</a></li>
<li><a href="../classes/RotationalLockEquation.html">RotationalLockEquation</a></li>
<li><a href="../classes/.html"></a></li>
<li><a href="../classes/RotationalSpring.html">RotationalSpring</a></li>
<li><a href="../classes/RotationalVelocityEquation.html">RotationalVelocityEquation</a></li>
<li><a href="../classes/SAPBroadphase.html">SAPBroadphase</a></li>
<li><a href="../classes/Shape.html">Shape</a></li>
<li><a href="../classes/Solver.html">Solver</a></li>
<li><a href="../classes/Spring.html">Spring</a></li>
<li><a href="../classes/TopDownVehicle.html">TopDownVehicle</a></li>
<li><a href="../classes/TupleDictionary.html">TupleDictionary</a></li>
<li><a href="../classes/Utils.html">Utils</a></li>
<li><a href="../classes/vec2.html">vec2</a></li>
<li><a href="../classes/WheelConstraint.html">WheelConstraint</a></li>
<li><a href="../classes/World.html">World</a></li>
</ul>
<ul id="api-modules" class="apis modules">
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="yui3-u-3-4">
<div id="api-options">
Show:
<label for="api-show-inherited">
<input type="checkbox" id="api-show-inherited" checked>
Inherited
</label>
<label for="api-show-protected">
<input type="checkbox" id="api-show-protected">
Protected
</label>
<label for="api-show-private">
<input type="checkbox" id="api-show-private">
Private
</label>
<label for="api-show-deprecated">
<input type="checkbox" id="api-show-deprecated">
Deprecated
</label>
</div>
<div class="apidocs">
<div id="docs-main">
<div class="content">
<h1>ContactMaterial Class</h1>
<div class="box meta">
<div class="foundat">
Defined in: <a href="../files/src_material_ContactMaterial.js.html#l6"><code>src/material/ContactMaterial.js:6</code></a>
</div>
</div>
<div class="box intro">
<p>Defines what happens when two materials meet, such as what friction coefficient to use. You can also set other things such as restitution, surface velocity and constraint parameters.</p>
</div>
<div class="constructor">
<h2>Constructor</h2>
<div id="method_ContactMaterial" class="method item">
<h3 class="name"><code>ContactMaterial</code></h3>
<div class="args">
<span class="paren">(</span><ul class="args-list inline commas">
<li class="arg">
<code>materialA</code>
</li>
<li class="arg">
<code>materialB</code>
</li>
<li class="arg">
<code class="optional">[options]</code>
</li>
</ul><span class="paren">)</span>
</div>
<div class="meta">
<p>
Defined in
<a href="../files/src_material_ContactMaterial.js.html#l6"><code>src/material/ContactMaterial.js:6</code></a>
</p>
</div>
<div class="description">
</div>
<div class="params">
<h4>Parameters:</h4>
<ul class="params-list">
<li class="param">
<code class="param-name">materialA</code>
<span class="type"><a href="../classes/Material.html" class="crosslink">Material</a></span>
<div class="param-description">
</div>
</li>
<li class="param">
<code class="param-name">materialB</code>
<span class="type"><a href="../classes/Material.html" class="crosslink">Material</a></span>
<div class="param-description">
</div>
</li>
<li class="param">
<code class="param-name optional">[options]</code>
<span class="type">Object</span>
<span class="flag optional" title="This parameter is optional.">optional</span>
<div class="param-description">
</div>
<ul class="params-list">
<li class="param">
<code class="param-name optional">[friction=0.3]</code>
<span class="type">Number</span>
<span class="flag optional" title="This parameter is optional.">optional</span>
<div class="param-description">
<p>Friction coefficient.</p>
</div>
</li>
<li class="param">
<code class="param-name optional">[restitution=0]</code>
<span class="type">Number</span>
<span class="flag optional" title="This parameter is optional.">optional</span>
<div class="param-description">
<p>Restitution coefficient aka "bounciness".</p>
</div>
</li>
<li class="param">
<code class="param-name optional">[stiffness]</code>
<span class="type">Number</span>
<span class="flag optional" title="This parameter is optional.">optional</span>
<div class="param-description">
<p>ContactEquation stiffness.</p>
</div>
</li>
<li class="param">
<code class="param-name optional">[relaxation]</code>
<span class="type">Number</span>
<span class="flag optional" title="This parameter is optional.">optional</span>
<div class="param-description">
<p>ContactEquation relaxation.</p>
</div>
</li>
<li class="param">
<code class="param-name optional">[frictionStiffness]</code>
<span class="type">Number</span>
<span class="flag optional" title="This parameter is optional.">optional</span>
<div class="param-description">
<p>FrictionEquation stiffness.</p>
</div>
</li>
<li class="param">
<code class="param-name optional">[frictionRelaxation]</code>
<span class="type">Number</span>
<span class="flag optional" title="This parameter is optional.">optional</span>
<div class="param-description">
<p>FrictionEquation relaxation.</p>
</div>
</li>
<li class="param">
<code class="param-name optional">[surfaceVelocity=0]</code>
<span class="type">Number</span>
<span class="flag optional" title="This parameter is optional.">optional</span>
<div class="param-description">
<p>Surface velocity.</p>
</div>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<div id="classdocs" class="tabview">
<ul class="api-class-tabs">
<li class="api-class-tab index"><a href="#index">Index</a></li>
<li class="api-class-tab properties"><a href="#properties">Properties</a></li>
</ul>
<div>
<div id="index" class="api-class-tabpanel index">
<h2 class="off-left">Item Index</h2>
<div class="index-section properties">
<h3>Properties</h3>
<ul class="index-list properties">
<li class="index-item property">
<a href="#property_contactSkinSize">contactSkinSize</a>
</li>
<li class="index-item property">
<a href="#property_friction">friction</a>
</li>
<li class="index-item property">
<a href="#property_frictionRelaxation">frictionRelaxation</a>
</li>
<li class="index-item property">
<a href="#property_frictionStiffness">frictionStiffness</a>
</li>
<li class="index-item property">
<a href="#property_id">id</a>
</li>
<li class="index-item property">
<a href="#property_materialA">materialA</a>
</li>
<li class="index-item property">
<a href="#property_materialB">materialB</a>
</li>
<li class="index-item property">
<a href="#property_relaxation">relaxation</a>
</li>
<li class="index-item property">
<a href="#property_restitution">restitution</a>
</li>
<li class="index-item property">
<a href="#property_stiffness">stiffness</a>
</li>
<li class="index-item property">
<a href="#property_surfaceVelocity">surfaceVelocity</a>
</li>
</ul>
</div>
</div>
<div id="properties" class="api-class-tabpanel">
<h2 class="off-left">Properties</h2>
<div id="property_contactSkinSize" class="property item">
<h3 class="name"><code>contactSkinSize</code></h3>
<span class="type">Number</span>
<div class="meta">
<p>
Defined in
<a href="../files/src_material_ContactMaterial.js.html#l101"><code>src/material/ContactMaterial.js:101</code></a>
</p>
</div>
<div class="description">
<p>Offset to be set on ContactEquations. A positive value will make the bodies penetrate more into each other. Can be useful in scenes where contacts need to be more persistent, for example when stacking. Aka "cure for nervous contacts".</p>
</div>
</div>
<div id="property_friction" class="property item">
<h3 class="name"><code>friction</code></h3>
<span class="type">Number</span>
<div class="meta">
<p>
Defined in
<a href="../files/src_material_ContactMaterial.js.html#l50"><code>src/material/ContactMaterial.js:50</code></a>
</p>
</div>
<div class="description">
<p>Friction coefficient to use in the contact of these two materials. Friction = 0 will make the involved objects super slippery, and friction = 1 will make it much less slippery. A friction coefficient larger than 1 will allow for very large friction forces, which can be convenient for preventing car tires not slip on the ground.</p>
</div>
<p><strong>Default:</strong> 0.3</p>
</div>
<div id="property_frictionRelaxation" class="property item">
<h3 class="name"><code>frictionRelaxation</code></h3>
<span class="type">Number</span>
<div class="meta">
<p>
Defined in
<a href="../files/src_material_ContactMaterial.js.html#l87"><code>src/material/ContactMaterial.js:87</code></a>
</p>
</div>
<div class="description">
<p>Relaxation of the resulting friction force. The default value should be good for most simulations. Default value is <a href="../classes/Equation.html#property_DEFAULT_RELAXATION" class="crosslink">Equation.DEFAULT_RELAXATION</a>.</p>
</div>
</div>
<div id="property_frictionStiffness" class="property item">
<h3 class="name"><code>frictionStiffness</code></h3>
<span class="type">Number</span>
<div class="meta">
<p>
Defined in
<a href="../files/src_material_ContactMaterial.js.html#l80"><code>src/material/ContactMaterial.js:80</code></a>
</p>
</div>
<div class="description">
<p>Stiffness of the resulting friction force. For most cases, the value of this property should be a large number. I cannot think of any case where you would want less frictionStiffness. Default value is <a href="../classes/Equation.html#property_DEFAULT_STIFFNESS" class="crosslink">Equation.DEFAULT_STIFFNESS</a>.</p>
</div>
</div>
<div id="property_id" class="property item">
<h3 class="name"><code>id</code></h3>
<span class="type">Number</span>
<div class="meta">
<p>
Defined in
<a href="../files/src_material_ContactMaterial.js.html#l29"><code>src/material/ContactMaterial.js:29</code></a>
</p>
</div>
<div class="description">
<p>The contact material identifier</p>
</div>
</div>
<div id="property_materialA" class="property item">
<h3 class="name"><code>materialA</code></h3>
<span class="type"><a href="../classes/Material.html" class="crosslink">Material</a></span>
<div class="meta">
<p>
Defined in
<a href="../files/src_material_ContactMaterial.js.html#l36"><code>src/material/ContactMaterial.js:36</code></a>
</p>
</div>
<div class="description">
<p>First material participating in the contact material</p>
</div>
</div>
<div id="property_materialB" class="property item">
<h3 class="name"><code>materialB</code></h3>
<span class="type"><a href="../classes/Material.html" class="crosslink">Material</a></span>
<div class="meta">
<p>
Defined in
<a href="../files/src_material_ContactMaterial.js.html#l43"><code>src/material/ContactMaterial.js:43</code></a>
</p>
</div>
<div class="description">
<p>Second material participating in the contact material</p>
</div>
</div>
<div id="property_relaxation" class="property item">
<h3 class="name"><code>relaxation</code></h3>
<span class="type">Number</span>
<div class="meta">
<p>
Defined in
<a href="../files/src_material_ContactMaterial.js.html#l73"><code>src/material/ContactMaterial.js:73</code></a>
</p>
</div>
<div class="description">
<p>Relaxation of the resulting ContactEquation that this ContactMaterial generate. Default value is <a href="../classes/Equation.html#property_DEFAULT_RELAXATION" class="crosslink">Equation.DEFAULT_RELAXATION</a>.</p>
</div>
</div>
<div id="property_restitution" class="property item">
<h3 class="name"><code>restitution</code></h3>
<span class="type">Number</span>
<div class="meta">
<p>
Defined in
<a href="../files/src_material_ContactMaterial.js.html#l58"><code>src/material/ContactMaterial.js:58</code></a>
</p>
</div>
<div class="description">
<p>Restitution, or "bounciness" to use in the contact of these two materials. A restitution of 0 will make no bounce, while restitution=1 will approximately bounce back with the same velocity the object came with.</p>
</div>
<p><strong>Default:</strong> 0</p>
</div>
<div id="property_stiffness" class="property item">
<h3 class="name"><code>stiffness</code></h3>
<span class="type">Number</span>
<div class="meta">
<p>
Defined in
<a href="../files/src_material_ContactMaterial.js.html#l66"><code>src/material/ContactMaterial.js:66</code></a>
</p>
</div>
<div class="description">
<p>Hardness of the contact. Less stiffness will make the objects penetrate more, and will make the contact act more like a spring than a contact force. Default value is <a href="../classes/Equation.html#property_DEFAULT_STIFFNESS" class="crosslink">Equation.DEFAULT_STIFFNESS</a>.</p>
</div>
</div>
<div id="property_surfaceVelocity" class="property item">
<h3 class="name"><code>surfaceVelocity</code></h3>
<span class="type">Number</span>
<div class="meta">
<p>
Defined in
<a href="../files/src_material_ContactMaterial.js.html#l94"><code>src/material/ContactMaterial.js:94</code></a>
</p>
</div>
<div class="description">
<p>Will add surface velocity to this material. If bodyA rests on top if bodyB, and the surface velocity is positive, bodyA will slide to the right.</p>
</div>
<p><strong>Default:</strong> 0</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="../assets/vendor/prettify/prettify-min.js"></script>
<script>prettyPrint();</script>
<script src="../assets/js/yui-prettify.js"></script>
<script src="../assets/../api.js"></script>
<script src="../assets/js/api-filter.js"></script>
<script src="../assets/js/api-list.js"></script>
<script src="../assets/js/api-search.js"></script>
<script src="../assets/js/apidocs.js"></script>
</body>
</html>