From da5d8c9272c385bf75756487c62830ccbd95e867 Mon Sep 17 00:00:00 2001 From: photonstorm Date: Wed, 11 Dec 2013 03:19:49 +0000 Subject: [PATCH] Updated p2.js to latest build. --- README.md | 2 + examples/wip/moveToPointer.js | 38 + src/physics/advanced/collision/Broadphase.js | 13 +- .../advanced/collision/GridBroadphase.js | 2 +- .../{Nearphase.js => Narrowphase.js} | 534 ++++++++---- src/physics/advanced/collision/QuadTree.js | 10 +- .../advanced/collision/SAP1DBroadphase.js | 62 +- .../advanced/constraints/Constraint.js | 24 +- .../advanced/constraints/ContactEquation.js | 160 ++-- .../constraints/DistanceConstraint.js | 45 +- src/physics/advanced/constraints/Equation.js | 287 ++++++- .../advanced/constraints/FrictionEquation.js | 182 ++--- .../advanced/constraints/LockConstraint.js | 123 +++ .../constraints/PointToPointConstraint.js | 94 --- .../constraints/PrismaticConstraint.js | 130 +-- .../constraints/RevoluteConstraint.js | 208 +++++ .../constraints/RotationalLockEquation.js | 37 + .../constraints/RotationalVelocityEquation.js | 52 +- src/physics/advanced/events/EventEmitter.js | 48 +- .../advanced/material/ContactMaterial.js | 74 +- src/physics/advanced/material/Material.js | 8 +- src/physics/advanced/math/polyk.js | 10 +- src/physics/advanced/objects/Body.js | 408 +++++++--- src/physics/advanced/objects/Spring.js | 56 +- src/physics/advanced/p2.js | 3 +- src/physics/advanced/serializer/Serializer.js | 146 ++++ src/physics/advanced/shapes/Circle.js | 10 +- src/physics/advanced/shapes/Convex.js | 96 ++- src/physics/advanced/shapes/Line.js | 9 +- src/physics/advanced/shapes/Plane.js | 9 + src/physics/advanced/shapes/Rectangle.js | 17 + src/physics/advanced/shapes/Shape.js | 97 ++- src/physics/advanced/solver/GSSolver.js | 173 ++-- src/physics/advanced/solver/Island.js | 16 +- src/physics/advanced/solver/IslandSolver.js | 39 +- src/physics/advanced/solver/Solver.js | 44 +- src/physics/advanced/utils/Utils.js | 8 + src/physics/advanced/world/World.js | 759 +++++++++++------- src/physics/arcade/ArcadePhysics.js | 2 +- src/physics/arcade/Body.js | 5 +- .../screen shots/part1.png | Bin 0 -> 32813 bytes .../screen shots/part2.png | Bin 0 -> 53130 bytes .../screen shots/part3.png | Bin 0 -> 62877 bytes .../screen shots/part4.png | Bin 0 -> 20142 bytes .../screen shots/part5.png | Bin 0 -> 224488 bytes .../screen shots/part6.png | Bin 0 -> 55648 bytes .../screen shots/part7.png | Bin 0 -> 6481 bytes .../screen shots/part8.png | Bin 0 -> 7837 bytes .../screen shots/part9.png | Bin 0 -> 1916 bytes 49 files changed, 2758 insertions(+), 1282 deletions(-) create mode 100644 examples/wip/moveToPointer.js rename src/physics/advanced/collision/{Nearphase.js => Narrowphase.js} (69%) create mode 100644 src/physics/advanced/constraints/LockConstraint.js delete mode 100644 src/physics/advanced/constraints/PointToPointConstraint.js create mode 100644 src/physics/advanced/constraints/RevoluteConstraint.js create mode 100644 src/physics/advanced/constraints/RotationalLockEquation.js create mode 100644 src/physics/advanced/serializer/Serializer.js create mode 100644 tutorials/03 Using Phaser with TypeScript/screen shots/part1.png create mode 100644 tutorials/03 Using Phaser with TypeScript/screen shots/part2.png create mode 100644 tutorials/03 Using Phaser with TypeScript/screen shots/part3.png create mode 100644 tutorials/03 Using Phaser with TypeScript/screen shots/part4.png create mode 100644 tutorials/03 Using Phaser with TypeScript/screen shots/part5.png create mode 100644 tutorials/03 Using Phaser with TypeScript/screen shots/part6.png create mode 100644 tutorials/03 Using Phaser with TypeScript/screen shots/part7.png create mode 100644 tutorials/03 Using Phaser with TypeScript/screen shots/part8.png create mode 100644 tutorials/03 Using Phaser with TypeScript/screen shots/part9.png diff --git a/README.md b/README.md index 88db2db80..36aeea062 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,8 @@ Updates: * Updated display/fullscreen example to reflect new full screen change. * Loads of updates to the TypeScript definitions files - games fully compile now and lots of missing classes added :) * Removed 'null parent' check from Group constructor. Will parent to game.world only if parent value is undefined. +* The tutorials have now been translated into Spanish - thanks feiss :) +* separateY updated to re-implement the 'riding platforms' special condition (thanks cocoademon) Bug Fixes: diff --git a/examples/wip/moveToPointer.js b/examples/wip/moveToPointer.js new file mode 100644 index 000000000..865825c9d --- /dev/null +++ b/examples/wip/moveToPointer.js @@ -0,0 +1,38 @@ + +var game = new Phaser.Game(800, 600, Phaser.AUTO, 'phaser-example', { preload: preload, create: create }); + +function preload() { + + game.load.image('arrow', 'assets/sprites/arrow.png'); + +} + +var sprite; +var tween; + +function create() { + + sprite = game.add.sprite(32, 32, 'arrow'); + + sprite.anchor.setTo(0.5, 0.5); + + game.input.onDown.add(moveSprite, this); + +} + +function moveSprite (pointer) { + + if (tween && tween.isRunning) + { + tween.stop(); + } + + sprite.rotation = game.physics.angleToPointer(sprite, pointer); + + // 300 = 300 pixels per second = the speed the sprite will move at, regardless of the distance it has to travel + var duration = (game.physics.distanceToPointer(sprite, pointer) / 300) * 1000; + + tween = game.add.tween(sprite).to({ x: pointer.x, y: pointer.y }, duration, Phaser.Easing.Linear.None, true); + +} + diff --git a/src/physics/advanced/collision/Broadphase.js b/src/physics/advanced/collision/Broadphase.js index b0d6129c8..2628e45bf 100644 --- a/src/physics/advanced/collision/Broadphase.js +++ b/src/physics/advanced/collision/Broadphase.js @@ -1,6 +1,4 @@ var vec2 = require('../math/vec2') -, Nearphase = require('./Nearphase') -, Shape = require('./../shapes/Shape') module.exports = Broadphase; @@ -10,6 +8,12 @@ module.exports = Broadphase; * @constructor */ function Broadphase(){ + + /** + * The resulting overlapping pairs. Will be filled with results during .getCollisionPairs(). + * @property result + * @type {Array} + */ this.result = []; }; @@ -23,10 +27,7 @@ Broadphase.prototype.getCollisionPairs = function(world){ throw new Error("getCollisionPairs must be implemented in a subclass!"); }; -// Temp things -var dist = vec2.create(), - worldNormal = vec2.create(), - yAxis = vec2.fromValues(0,1); +var dist = vec2.create(); /** * Check whether the bounding radius of two bodies overlap. diff --git a/src/physics/advanced/collision/GridBroadphase.js b/src/physics/advanced/collision/GridBroadphase.js index 747d78d67..d0a7172bd 100644 --- a/src/physics/advanced/collision/GridBroadphase.js +++ b/src/physics/advanced/collision/GridBroadphase.js @@ -104,7 +104,7 @@ GridBroadphase.prototype.getCollisionPairs = function(world){ } } else if(si instanceof Plane){ // Put in all bins for now - if(bi.angle === 0){ + if(bi.angle == 0){ var y = bi.position[1]; for(var j=0; j!==Nbins && ymin+binsizeY*(j-1) id2){ + var tmp = id1; + id1 = id2; + id2 = tmp; + } + return !!this.collidingBodiesLastStep[id1 + " " + id2]; }; /** * Throws away the old equatons and gets ready to create new * @method reset */ -Nearphase.prototype.reset = function(){ +Narrowphase.prototype.reset = function(){ + + // Save the colliding bodies data + for(var key in this.collidingBodiesLastStep) + delete this.collidingBodiesLastStep[key]; + for(var i=0; i!==this.contactEquations.length; i++){ + var eq = this.contactEquations[i], + id1 = eq.bi.id, + id2 = eq.bj.id; + if(id1 > id2){ + var tmp = id1; + id1 = id2; + id2 = tmp; + } + this.collidingBodiesLastStep[id1 + " " + id2] = true; + } + if(this.reuseObjects){ var ce = this.contactEquations, fe = this.frictionEquations, @@ -68,10 +146,14 @@ Nearphase.prototype.reset = function(){ * @param {Body} bodyB * @return {ContactEquation} */ -Nearphase.prototype.createContactEquation = function(bodyA,bodyB){ +Narrowphase.prototype.createContactEquation = function(bodyA,bodyB,shapeA,shapeB){ var c = this.reusableContactEquations.length ? this.reusableContactEquations.pop() : new ContactEquation(bodyA,bodyB); c.bi = bodyA; c.bj = bodyB; + c.shapeA = shapeA; + c.shapeB = shapeB; + c.restitution = this.restitution; + c.firstImpact = !this.collidedLastStep(bodyA,bodyB); return c; }; @@ -82,11 +164,14 @@ Nearphase.prototype.createContactEquation = function(bodyA,bodyB){ * @param {Body} bodyB * @return {FrictionEquation} */ -Nearphase.prototype.createFrictionEquation = function(bodyA,bodyB){ +Narrowphase.prototype.createFrictionEquation = function(bodyA,bodyB,shapeA,shapeB){ var c = this.reusableFrictionEquations.length ? this.reusableFrictionEquations.pop() : new FrictionEquation(bodyA,bodyB); c.bi = bodyA; c.bj = bodyB; + c.shapeA = shapeA; + c.shapeB = shapeB; c.setSlipForce(this.slipForce); + c.frictionCoefficient = this.frictionCoefficient; return c; }; @@ -96,16 +181,17 @@ Nearphase.prototype.createFrictionEquation = function(bodyA,bodyB){ * @param {ContactEquation} contactEquation * @return {FrictionEquation} */ -Nearphase.prototype.createFrictionFromContact = function(c){ +Narrowphase.prototype.createFrictionFromContact = function(c){ var eq = this.createFrictionEquation(c.bi,c.bj); vec2.copy(eq.ri, c.ri); vec2.copy(eq.rj, c.rj); vec2.rotate(eq.t, c.ni, -Math.PI / 2); + eq.contactEquation = c; return eq; } /** - * Plane/line nearphase + * Plane/line Narrowphase * @method planeLine * @param {Body} bi * @param {Plane} si @@ -116,7 +202,8 @@ Nearphase.prototype.createFrictionFromContact = function(c){ * @param {Array} xj * @param {Number} aj */ -Nearphase.prototype.planeLine = function(bi,si,xi,ai, bj,sj,xj,aj){ +Narrowphase.prototype[Shape.PLANE | Shape.LINE] = +Narrowphase.prototype.planeLine = function(bi,si,xi,ai, bj,sj,xj,aj){ var lineShape = sj, lineAngle = aj, lineBody = bj, @@ -170,7 +257,7 @@ Nearphase.prototype.planeLine = function(bi,si,xi,ai, bj,sj,xj,aj){ if(d < 0){ - var c = this.createContactEquation(planeBody,lineBody); + var c = this.createContactEquation(planeBody,lineBody,si,sj); vec2.copy(c.ni, worldNormal); vec2.normalize(c.ni,c.ni); @@ -197,12 +284,13 @@ Nearphase.prototype.planeLine = function(bi,si,xi,ai, bj,sj,xj,aj){ } }; -Nearphase.prototype.particleCapsule = function(bi,si,xi,ai, bj,sj,xj,aj, justTest){ +Narrowphase.prototype[Shape.PARTICLE | Shape.CAPSULE] = +Narrowphase.prototype.particleCapsule = function(bi,si,xi,ai, bj,sj,xj,aj, justTest){ return this.circleLine(bi,si,xi,ai, bj,sj,xj,aj, justTest, sj.radius, 0); }; /** - * Circle/line nearphase + * Circle/line Narrowphase * @method circleLine * @param {Body} bi * @param {Circle} si @@ -216,7 +304,8 @@ Nearphase.prototype.particleCapsule = function(bi,si,xi,ai, bj,sj,xj,aj, justTes * @param {Number} lineRadius Radius to add to the line. Can be used to test Capsules. * @param {Number} circleRadius If set, this value overrides the circle shape radius. */ -Nearphase.prototype.circleLine = function(bi,si,xi,ai, bj,sj,xj,aj, justTest, lineRadius, circleRadius){ +Narrowphase.prototype[Shape.CIRCLE | Shape.LINE] = +Narrowphase.prototype.circleLine = function(bi,si,xi,ai, bj,sj,xj,aj, justTest, lineRadius, circleRadius){ var lineShape = sj, lineAngle = aj, lineBody = bj, @@ -293,7 +382,7 @@ Nearphase.prototype.circleLine = function(bi,si,xi,ai, bj,sj,xj,aj, justTest, li if(justTest) return true; - var c = this.createContactEquation(circleBody,lineBody); + var c = this.createContactEquation(circleBody,lineBody,si,sj); vec2.scale(c.ni, orthoDist, -1); vec2.normalize(c.ni, c.ni); @@ -328,7 +417,7 @@ Nearphase.prototype.circleLine = function(bi,si,xi,ai, bj,sj,xj,aj, justTest, li if(justTest) return true; - var c = this.createContactEquation(circleBody,lineBody); + var c = this.createContactEquation(circleBody,lineBody,si,sj); vec2.copy(c.ni, dist); vec2.normalize(c.ni,c.ni); @@ -358,7 +447,7 @@ Nearphase.prototype.circleLine = function(bi,si,xi,ai, bj,sj,xj,aj, justTest, li }; /** - * Circle/capsule nearphase + * Circle/capsule Narrowphase * @method circleCapsule * @param {Body} bi * @param {Circle} si @@ -369,12 +458,13 @@ Nearphase.prototype.circleLine = function(bi,si,xi,ai, bj,sj,xj,aj, justTest, li * @param {Array} xj * @param {Number} aj */ -Nearphase.prototype.circleCapsule = function(bi,si,xi,ai, bj,sj,xj,aj, justTest){ +Narrowphase.prototype[Shape.CIRCLE | Shape.CAPSULE] = +Narrowphase.prototype.circleCapsule = function(bi,si,xi,ai, bj,sj,xj,aj, justTest){ return this.circleLine(bi,si,xi,ai, bj,sj,xj,aj, justTest, sj.radius); }; /** - * Circle/convex nearphase + * Circle/convex Narrowphase * @method circleConvex * @param {Body} bi * @param {Circle} si @@ -385,14 +475,16 @@ Nearphase.prototype.circleCapsule = function(bi,si,xi,ai, bj,sj,xj,aj, justTest) * @param {Array} xj * @param {Number} aj */ -Nearphase.prototype.circleConvex = function( bi,si,xi,ai, bj,sj,xj,aj){ +Narrowphase.prototype[Shape.CIRCLE | Shape.CONVEX] = +Narrowphase.prototype.circleConvex = function( bi,si,xi,ai, bj,sj,xj,aj, justTest, circleRadius){ var convexShape = sj, convexAngle = aj, convexBody = bj, convexOffset = xj, circleOffset = xi, circleBody = bi, - circleShape = si; + circleShape = si, + circleRadius = typeof(circleRadius)=="number" ? circleRadius : circleShape.radius; var worldVertex0 = tmp1, worldVertex1 = tmp2, @@ -404,14 +496,31 @@ Nearphase.prototype.circleConvex = function( bi,si,xi,ai, bj,sj,xj,aj){ orthoDist = tmp8, projectedPoint = tmp9, dist = tmp10, - worldVertex = tmp11; + worldVertex = tmp11, + + closestEdge = -1, + closestEdgeDistance = null, + closestEdgeOrthoDist = tmp12, + closestEdgeProjectedPoint = tmp13, + candidate = tmp14, + candidateDist = tmp15, + minCandidate = tmp16, + + found = false, + minCandidateDistance = Number.MAX_VALUE; var numReported = 0; + // New algorithm: + // 1. Check so center of circle is not inside the polygon. If it is, this wont work... + // 2. For each edge + // 2. 1. Get point on circle that is closest to the edge (scale normal with -radius) + // 2. 2. Check if point is inside. + verts = convexShape.vertices; // Check all edges first - for(var i=0; i 0){ + vec2.sub(candidateDist,worldVertex0,candidate); + var candidateDistance = Math.abs(vec2.dot(candidateDist,worldTangent)); - // Now project the circle onto the edge - vec2.scale(orthoDist, worldTangent, d); - sub(projectedPoint, circleOffset, orthoDist); + /* + // Check distance from the plane spanned by the edge vs the circle + sub(dist, circleOffset, worldVertex0); + var d = dot(dist, worldTangent); + sub(centerDist, worldVertex0, convexOffset); - // Check if the point is within the edge span - var pos = dot(worldEdgeUnit, projectedPoint); - var pos0 = dot(worldEdgeUnit, worldVertex0); - var pos1 = dot(worldEdgeUnit, worldVertex1); + sub(convexToCircle, circleOffset, convexOffset); - if(pos > pos0 && pos < pos1){ - // We got contact! + if(d < circleRadius && dot(centerDist,convexToCircle) > 0){ - var c = this.createContactEquation(circleBody,convexBody); + // Now project the circle onto the edge + vec2.scale(orthoDist, worldTangent, d); + sub(projectedPoint, circleOffset, orthoDist); - vec2.scale(c.ni, orthoDist, -1); - vec2.normalize(c.ni, c.ni); - vec2.scale( c.ri, c.ni, circleShape.radius); + // Check if the point is within the edge span + var pos = dot(worldEdgeUnit, projectedPoint); + var pos0 = dot(worldEdgeUnit, worldVertex0); + var pos1 = dot(worldEdgeUnit, worldVertex1); + + if(pos > pos0 && pos < pos1){ + // We got contact! + + if(justTest) return true; + + if(closestEdgeDistance === null || d*d 0){ + for(var i=0; i= 0){ // Now project the particle onto the edge @@ -594,18 +816,32 @@ Nearphase.prototype.particleConvex = function( bi,si,xi,ai, bj,sj,xj,aj, justTe } } } + */ + + vec2.sub(candidateDist,worldVertex0,particleOffset); + var candidateDistance = Math.abs(vec2.dot(candidateDist,worldTangent)); + + if(candidateDistance < minCandidateDistance){ + minCandidateDistance = candidateDistance; + vec2.scale(closestEdgeProjectedPoint,worldTangent,candidateDistance); + vec2.add(closestEdgeProjectedPoint,closestEdgeProjectedPoint,particleOffset); + vec2.copy(minEdgeNormal,worldTangent); + found = true; + } } - if(closestEdge != -1){ - var c = this.createContactEquation(particleBody,convexBody); + if(found){ + var c = this.createContactEquation(particleBody,convexBody,si,sj); - vec2.copy(c.ni, closestEdgeOrthoDist); + vec2.scale(c.ni, minEdgeNormal, -1); vec2.normalize(c.ni, c.ni); + // Particle has no extent to the contact point vec2.set(c.ri, 0, 0); add(c.ri, c.ri, particleOffset); sub(c.ri, c.ri, particleBody.position); + // From convex center to point sub(c.rj, closestEdgeProjectedPoint, convexOffset); add(c.rj, c.rj, convexOffset); sub(c.rj, c.rj, convexBody.position); @@ -623,7 +859,7 @@ Nearphase.prototype.particleConvex = function( bi,si,xi,ai, bj,sj,xj,aj, justTe }; /** - * Circle/circle nearphase + * Circle/circle Narrowphase * @method circleCircle * @param {Body} bi * @param {Circle} si @@ -634,7 +870,8 @@ Nearphase.prototype.particleConvex = function( bi,si,xi,ai, bj,sj,xj,aj, justTe * @param {Array} xj * @param {Number} aj */ -Nearphase.prototype.circleCircle = function( bi,si,xi,ai, bj,sj,xj,aj, justTest){ +Narrowphase.prototype[Shape.CIRCLE] = +Narrowphase.prototype.circleCircle = function( bi,si,xi,ai, bj,sj,xj,aj, justTest){ var bodyA = bi, shapeA = si, offsetA = xi, @@ -651,7 +888,7 @@ Nearphase.prototype.circleCircle = function( bi,si,xi,ai, bj,sj,xj,aj, justTest if(justTest) return true; - var c = this.createContactEquation(bodyA,bodyB); + var c = this.createContactEquation(bodyA,bodyB,si,sj); sub(c.ni, offsetB, offsetA); vec2.normalize(c.ni,c.ni); @@ -673,26 +910,27 @@ Nearphase.prototype.circleCircle = function( bi,si,xi,ai, bj,sj,xj,aj, justTest }; /** - * Convex/Plane nearphase - * @method convexPlane + * Plane/Convex Narrowphase + * @method planeConvex * @param {Body} bi - * @param {Convex} si + * @param {Plane} si * @param {Array} xi * @param {Number} ai * @param {Body} bj - * @param {Plane} sj + * @param {Convex} sj * @param {Array} xj * @param {Number} aj */ -Nearphase.prototype.convexPlane = function( bi,si,xi,ai, bj,sj,xj,aj ){ - var convexBody = bi, - convexOffset = xi, - convexShape = si, - convexAngle = ai, - planeBody = bj, - planeShape = sj, - planeOffset = xj, - planeAngle = aj; +Narrowphase.prototype[Shape.PLANE | Shape.CONVEX] = +Narrowphase.prototype.planeConvex = function( bi,si,xi,ai, bj,sj,xj,aj ){ + var convexBody = bj, + convexOffset = xj, + convexShape = sj, + convexAngle = aj, + planeBody = bi, + planeShape = si, + planeOffset = xi, + planeAngle = ai; var worldVertex = tmp1, worldNormal = tmp2, @@ -701,8 +939,8 @@ Nearphase.prototype.convexPlane = function( bi,si,xi,ai, bj,sj,xj,aj ){ var numReported = 0; vec2.rotate(worldNormal, yAxis, planeAngle); - for(var i=0; i 0) return false; if(justTest) return true; - var c = this.createContactEquation(planeBody,particleBody); + var c = this.createContactEquation(planeBody,particleBody,sj,si); vec2.copy(c.ni, worldNormal); vec2.scale( dist, c.ni, d ); @@ -801,7 +1049,7 @@ Nearphase.prototype.particlePlane = function( bi,si,xi,ai, bj,sj,xj,aj, justTest }; /** - * Circle/Particle nearphase + * Circle/Particle Narrowphase * @method circleParticle * @param {Body} bi * @param {Circle} si @@ -812,7 +1060,8 @@ Nearphase.prototype.particlePlane = function( bi,si,xi,ai, bj,sj,xj,aj, justTest * @param {Array} xj * @param {Number} aj */ -Nearphase.prototype.circleParticle = function( bi,si,xi,ai, bj,sj,xj,aj, justTest ){ +Narrowphase.prototype[Shape.CIRCLE | Shape.PARTICLE] = +Narrowphase.prototype.circleParticle = function( bi,si,xi,ai, bj,sj,xj,aj, justTest ){ var circleBody = bi, circleShape = si, circleOffset = xi, @@ -825,7 +1074,7 @@ Nearphase.prototype.circleParticle = function( bi,si,xi,ai, bj,sj,xj,aj, justT if(vec2.squaredLength(dist) > circleShape.radius*circleShape.radius) return false; if(justTest) return true; - var c = this.createContactEquation(circleBody,particleBody); + var c = this.createContactEquation(circleBody,particleBody,si,sj); vec2.copy(c.ni, dist); vec2.normalize(c.ni,c.ni); @@ -850,28 +1099,39 @@ var capsulePlane_tmpCircle = new Circle(1), capsulePlane_tmp1 = vec2.create(), capsulePlane_tmp2 = vec2.create(), capsulePlane_tmp3 = vec2.create(); -Nearphase.prototype.capsulePlane = function( bi,si,xi,ai, bj,sj,xj,aj ){ + +Narrowphase.prototype[Shape.PLANE | Shape.CAPSULE] = +Narrowphase.prototype.planeCapsule = function( bi,si,xi,ai, bj,sj,xj,aj ){ var end1 = capsulePlane_tmp1, end2 = capsulePlane_tmp2, circle = capsulePlane_tmpCircle, dst = capsulePlane_tmp3; // Compute world end positions - vec2.set(end1, -si.length/2, 0); - vec2.rotate(end1,end1,ai); - add(end1,end1,xi); + vec2.set(end1, -sj.length/2, 0); + vec2.rotate(end1,end1,aj); + add(end1,end1,xj); - vec2.set(end2, si.length/2, 0); - vec2.rotate(end2,end2,ai); - add(end2,end2,xi); + vec2.set(end2, sj.length/2, 0); + vec2.rotate(end2,end2,aj); + add(end2,end2,xj); - circle.radius = si.radius; + circle.radius = sj.radius; - // Do nearphase as two circles - this.circlePlane(bi,circle,end1,0, bj,sj,xj,aj); - this.circlePlane(bi,circle,end2,0, bj,sj,xj,aj); + // Do Narrowphase as two circles + this.circlePlane(bj,circle,end1,0, bi,si,xi,ai); + this.circlePlane(bj,circle,end2,0, bi,si,xi,ai); }; +/** + * @method capsulePlane + * @deprecated Use .planeCapsule() instead! + */ +Narrowphase.prototype.capsulePlane = function( bi,si,xi,ai, bj,sj,xj,aj ){ + console.warn("Narrowphase.prototype.capsulePlane() is deprecated. Use .planeCapsule() instead!"); + return this.planeCapsule( bj,sj,xj,aj, bi,si,xi,ai ); +} + /** * Creates ContactEquations and FrictionEquations for a collision. * @method circlePlane @@ -883,7 +1143,8 @@ Nearphase.prototype.capsulePlane = function( bi,si,xi,ai, bj,sj,xj,aj ){ * @param {Array} xj Extra offset for the plane shape. * @param {Number} aj Extra angle to apply to the plane */ -Nearphase.prototype.circlePlane = function( bi,si,xi,ai, bj,sj,xj,aj ){ +Narrowphase.prototype[Shape.CIRCLE | Shape.PLANE] = +Narrowphase.prototype.circlePlane = function( bi,si,xi,ai, bj,sj,xj,aj ){ var circleBody = bi, circleShape = si, circleOffset = xi, // Offset from body center, rotated! @@ -910,7 +1171,7 @@ Nearphase.prototype.circlePlane = function( bi,si,xi,ai, bj,sj,xj,aj ){ if(d > circleShape.radius) return false; // No overlap. Abort. // Create contact - var contact = this.createContactEquation(planeBody,circleBody); + var contact = this.createContactEquation(planeBody,circleBody,sj,si); // ni is the plane world normal vec2.copy(contact.ni, worldNormal); @@ -937,7 +1198,7 @@ Nearphase.prototype.circlePlane = function( bi,si,xi,ai, bj,sj,xj,aj ){ /** - * Convex/convex nearphase.See this article for more info. + * Convex/convex Narrowphase.See this article for more info. * @method convexConvex * @param {Body} bi * @param {Convex} si @@ -948,7 +1209,8 @@ Nearphase.prototype.circlePlane = function( bi,si,xi,ai, bj,sj,xj,aj ){ * @param {Array} xj * @param {Number} aj */ -Nearphase.prototype.convexConvex = function( bi,si,xi,ai, bj,sj,xj,aj ){ +Narrowphase.prototype[Shape.CONVEX] = +Narrowphase.prototype.convexConvex = function( bi,si,xi,ai, bj,sj,xj,aj ){ var sepAxis = tmp1, worldPoint = tmp2, worldPoint0 = tmp3, @@ -959,7 +1221,7 @@ Nearphase.prototype.convexConvex = function( bi,si,xi,ai, bj,sj,xj,aj ){ dist = tmp8, worldNormal = tmp9; - var found = Nearphase.findSeparatingAxis(si,xi,ai,sj,xj,aj,sepAxis); + var found = Narrowphase.findSeparatingAxis(si,xi,ai,sj,xj,aj,sepAxis); if(!found) return false; // Make sure the separating axis is directed from shape i to shape j @@ -969,8 +1231,8 @@ Nearphase.prototype.convexConvex = function( bi,si,xi,ai, bj,sj,xj,aj ){ } // Find edges with normals closest to the separating axis - var closestEdge1 = Nearphase.getClosestEdge(si,ai,sepAxis,true), // Flipped axis - closestEdge2 = Nearphase.getClosestEdge(sj,aj,sepAxis); + var closestEdge1 = Narrowphase.getClosestEdge(si,ai,sepAxis,true), // Flipped axis + closestEdge2 = Narrowphase.getClosestEdge(sj,aj,sepAxis); if(closestEdge1==-1 || closestEdge2==-1) return false; @@ -1036,7 +1298,7 @@ Nearphase.prototype.convexConvex = function( bi,si,xi,ai, bj,sj,xj,aj ){ // Project it to the center edge and use the projection direction as normal // Create contact - var c = this.createContactEquation(bodyA,bodyB); + var c = this.createContactEquation(bodyA,bodyB,si,sj); // Get center edge from body A var v0 = shapeA.vertices[(closestEdgeA) % shapeA.vertices.length], @@ -1090,7 +1352,7 @@ var pcoa_tmp1 = vec2.fromValues(0,0); * @param {Array} worldAxis * @param {Array} result */ -Nearphase.projectConvexOntoAxis = function(convexShape, convexOffset, convexAngle, worldAxis, result){ +Narrowphase.projectConvexOntoAxis = function(convexShape, convexOffset, convexAngle, worldAxis, result){ var max=null, min=null, v, @@ -1141,7 +1403,7 @@ var fsa_tmp1 = vec2.fromValues(0,0) * @param {Array} sepAxis The resulting axis * @return {Boolean} Whether the axis could be found. */ -Nearphase.findSeparatingAxis = function(c1,offset1,angle1,c2,offset2,angle2,sepAxis){ +Narrowphase.findSeparatingAxis = function(c1,offset1,angle1,c2,offset2,angle2,sepAxis){ var maxDist = null, overlap = false, found = false, @@ -1172,8 +1434,8 @@ Nearphase.findSeparatingAxis = function(c1,offset1,angle1,c2,offset2,angle2,sepA vec2.normalize(normal,normal); // Project hulls onto that normal - Nearphase.projectConvexOntoAxis(c1,offset1,angle1,normal,span1); - Nearphase.projectConvexOntoAxis(c2,offset2,angle2,normal,span2); + Narrowphase.projectConvexOntoAxis(c1,offset1,angle1,normal,span1); + Narrowphase.projectConvexOntoAxis(c2,offset2,angle2,normal,span2); // Order by span position var a=span1, @@ -1215,7 +1477,7 @@ var gce_tmp1 = vec2.fromValues(0,0) * @param {Boolean} flip * @return {Number} Index of the edge that is closest. This index and the next spans the resulting edge. Returns -1 if failed. */ -Nearphase.getClosestEdge = function(c,angle,axis,flip){ +Narrowphase.getClosestEdge = function(c,angle,axis,flip){ var localAxis = gce_tmp1, edge = gce_tmp2, normal = gce_tmp3; diff --git a/src/physics/advanced/collision/QuadTree.js b/src/physics/advanced/collision/QuadTree.js index 1cf5c58b5..b0a48a733 100644 --- a/src/physics/advanced/collision/QuadTree.js +++ b/src/physics/advanced/collision/QuadTree.js @@ -27,10 +27,10 @@ function QuadTree(bounds, pointQuad, maxDepth, maxChildren){ } /** - * The root node of the QuadTree which covers the entire area being segmented. - * @property root - * @type Node - */ + * The root node of the QuadTree which covers the entire area being segmented. + * @property root + * @type Node + */ this.root = node; } @@ -299,7 +299,7 @@ BoundsNode.prototype.insert = function(item){ console.log("radius:",item.boundingRadius); console.log("item x:",item.position[0] - item.boundingRadius,"x range:",node.bounds.x,node.bounds.x+node.bounds.width); console.log("item y:",item.position[1] - item.boundingRadius,"y range:",node.bounds.y,node.bounds.y+node.bounds.height); - */ + */ //todo: make _bounds bounds if( !(item instanceof Plane) && // Plane is infinite.. Make it a "stuck" child diff --git a/src/physics/advanced/collision/SAP1DBroadphase.js b/src/physics/advanced/collision/SAP1DBroadphase.js index 7aa14c7ce..f0aaf4d2f 100644 --- a/src/physics/advanced/collision/SAP1DBroadphase.js +++ b/src/physics/advanced/collision/SAP1DBroadphase.js @@ -19,24 +19,24 @@ function SAP1DBroadphase(world){ Broadphase.apply(this); /** - * List of bodies currently in the broadphase. - * @property axisList - * @type {Array} - */ + * List of bodies currently in the broadphase. + * @property axisList + * @type {Array} + */ this.axisList = world.bodies.slice(0); /** - * The world to search in. - * @property world - * @type {World} - */ + * The world to search in. + * @property world + * @type {World} + */ this.world = world; /** - * Axis to sort the bodies along. Set to 0 for x axis, and 1 for y axis. For best performance, choose an axis that the bodies are spread out more on. - * @property axisIndex - * @type {Number} - */ + * Axis to sort the bodies along. Set to 0 for x axis, and 1 for y axis. For best performance, choose an axis that the bodies are spread out more on. + * @property axisIndex + * @type {Number} + */ this.axisIndex = 0; // Add listeners to update the list of bodies. @@ -92,23 +92,13 @@ SAP1DBroadphase.prototype.getCollisionPairs = function(world){ // Look through the list for(i=0, N=bodies.length; i!==N; i++){ - var bi = bodies[i], - biPos = bi.position[axisIndex], - ri = bi.boundingRadius; + var bi = bodies[i]; for(j=i+1; j boundA2 ){ + if(!SAP1DBroadphase.checkBounds(bi,bj,axisIndex)) break; - } // If we got overlap, add pair if(Broadphase.boundingRadiusCheck(bi,bj)) @@ -118,3 +108,25 @@ SAP1DBroadphase.prototype.getCollisionPairs = function(world){ return result; }; + +/** + * Check if the bounds of two bodies overlap, along the given SAP axis. + * @static + * @method checkBounds + * @param {Body} bi + * @param {Body} bj + * @param {Number} axisIndex + * @return {Boolean} + */ +SAP1DBroadphase.checkBounds = function(bi,bj,axisIndex){ + var biPos = bi.position[axisIndex], + ri = bi.boundingRadius, + bjPos = bj.position[axisIndex], + rj = bj.boundingRadius, + boundA1 = biPos-ri, + boundA2 = biPos+ri, + boundB1 = bjPos-rj, + boundB2 = bjPos+rj; + + return boundB1 < boundA2; +}; diff --git a/src/physics/advanced/constraints/Constraint.js b/src/physics/advanced/constraints/Constraint.js index b73c03765..df838cb1c 100644 --- a/src/physics/advanced/constraints/Constraint.js +++ b/src/physics/advanced/constraints/Constraint.js @@ -12,24 +12,24 @@ module.exports = Constraint; function Constraint(bodyA,bodyB){ /** - * Equations to be solved in this constraint - * @property equations - * @type {Array} - */ + * Equations to be solved in this constraint + * @property equations + * @type {Array} + */ this.equations = []; /** - * First body participating in the constraint. - * @property bodyA - * @type {Body} - */ + * First body participating in the constraint. + * @property bodyA + * @type {Body} + */ this.bodyA = bodyA; /** - * Second body participating in the constraint. - * @property bodyB - * @type {Body} - */ + * Second body participating in the constraint. + * @property bodyB + * @type {Body} + */ this.bodyB = bodyB; }; diff --git a/src/physics/advanced/constraints/ContactEquation.js b/src/physics/advanced/constraints/ContactEquation.js index d54ca9217..490c8cae5 100644 --- a/src/physics/advanced/constraints/ContactEquation.js +++ b/src/physics/advanced/constraints/ContactEquation.js @@ -5,7 +5,7 @@ var Equation = require("./Equation"), module.exports = ContactEquation; /** - * Non-penetration constraint equation. + * Non-penetration constraint equation. Tries to make the ri and rj vectors the same point. * * @class ContactEquation * @constructor @@ -14,13 +14,57 @@ module.exports = ContactEquation; * @param {Body} bj */ function ContactEquation(bi,bj){ - Equation.call(this,bi,bj,0,1e6); + Equation.call(this,bi,bj,0,Number.MAX_VALUE); + + /** + * Vector from body i center of mass to the contact point. + * @property ri + * @type {Array} + */ this.ri = vec2.create(); this.penetrationVec = vec2.create(); + + /** + * Vector from body j center of mass to the contact point. + * @property rj + * @type {Array} + */ this.rj = vec2.create(); + + /** + * The normal vector, pointing out of body i + * @property ni + * @type {Array} + */ this.ni = vec2.create(); - this.rixn = 0; - this.rjxn = 0; + + /** + * The restitution to use. 0=no bounciness, 1=max bounciness. + * @property restitution + * @type {Number} + */ + this.restitution = 0; + + /** + * Set to true if this is the first impact between the bodies (not persistant contact). + * @property firstImpact + * @type {Boolean} + */ + this.firstImpact = false; + + /** + * The shape in body i that triggered this contact. + * @property shapeA + * @type {Shape} + */ + this.shapeA = null; + + /** + * The shape in body j that triggered this contact. + * @property shapeB + * @type {Shape} + */ + this.shapeB = null; }; ContactEquation.prototype = new Equation(); ContactEquation.prototype.constructor = ContactEquation; @@ -32,105 +76,39 @@ ContactEquation.prototype.computeB = function(a,b,h){ xi = bi.position, xj = bj.position; - var vi = bi.velocity, - wi = bi.angularVelocity, - fi = bi.force, - taui = bi.angularForce; - - var vj = bj.velocity, - wj = bj.angularVelocity, - fj = bj.force, - tauj = bj.angularForce; - var penetrationVec = this.penetrationVec, - invMassi = bi.invMass, - invMassj = bj.invMass, - invIi = bi.invInertia, - invIj = bj.invInertia, - n = this.ni; + n = this.ni, + G = this.G; // Caluclate cross products - this.rixn = vec2.crossLength(ri,n); - this.rjxn = vec2.crossLength(rj,n); + var rixn = vec2.crossLength(ri,n), + rjxn = vec2.crossLength(rj,n); + + // G = [-n -rixn n rjxn] + G[0] = -n[0]; + G[1] = -n[1]; + G[2] = -rixn; + G[3] = n[0]; + G[4] = n[1]; + G[5] = rjxn; // Calculate q = xj+rj -(xi+ri) i.e. the penetration vector vec2.add(penetrationVec,xj,rj); vec2.sub(penetrationVec,penetrationVec,xi); vec2.sub(penetrationVec,penetrationVec,ri); - var Gq = vec2.dot(n,penetrationVec); - // Compute iteration - var GW = vec2.dot(vj,n) - vec2.dot(vi,n) + wj * this.rjxn - wi * this.rixn; - var GiMf = vec2.dot(fj,n)*invMassj - vec2.dot(fi,n)*invMassi + invIj*tauj*this.rjxn - invIi*taui*this.rixn; + var GW, Gq; + if(this.firstImpact && this.restitution !== 0){ + Gq = 0; + GW = (1/b)*(1+this.restitution) * this.computeGW(); + } else { + GW = this.computeGW(); + Gq = vec2.dot(n,penetrationVec); + } + var GiMf = this.computeGiMf(); var B = - Gq * a - GW * b - h*GiMf; return B; }; - -// Compute C = GMG+eps in the SPOOK equation -var computeC_tmp1 = vec2.create(), - tmpMat1 = mat2.create(), - tmpMat2 = mat2.create(); -ContactEquation.prototype.computeC = function(eps){ - var bi = this.bi, - bj = this.bj, - n = this.ni, - rixn = this.rixn, - rjxn = this.rjxn, - tmp = computeC_tmp1, - imMat1 = tmpMat1, - imMat2 = tmpMat2; - - mat2.identity(imMat1); - mat2.identity(imMat2); - imMat1[0] = imMat1[3] = bi.invMass; - imMat2[0] = imMat2[3] = bj.invMass; - - var C = vec2.dot(n,vec2.transformMat2(tmp,n,imMat1)) + vec2.dot(n,vec2.transformMat2(tmp,n,imMat2)) + eps; - //var C = bi.invMass + bj.invMass + eps; - - C += bi.invInertia * this.rixn * this.rixn; - C += bj.invInertia * this.rjxn * this.rjxn; - - return C; -}; - -ContactEquation.prototype.computeGWlambda = function(){ - var bi = this.bi, - bj = this.bj, - n = this.ni, - dot = vec2.dot; - - return dot(n, bj.vlambda) + bj.wlambda * this.rjxn - dot(n, bi.vlambda) - bi.wlambda * this.rixn; -}; - -var addToWlambda_temp = vec2.create(); -ContactEquation.prototype.addToWlambda = function(deltalambda){ - var bi = this.bi, - bj = this.bj, - n = this.ni, - temp = addToWlambda_temp, - imMat1 = tmpMat1, - imMat2 = tmpMat2; - - mat2.identity(imMat1); - mat2.identity(imMat2); - imMat1[0] = imMat1[3] = bi.invMass; - imMat2[0] = imMat2[3] = bj.invMass; - - // Add to linear velocity - //vec2.scale(temp,n,-bi.invMass*deltalambda); - vec2.scale(temp,vec2.transformMat2(temp,n,imMat1),-deltalambda); - vec2.add( bi.vlambda,bi.vlambda, temp ); - - //vec2.scale(temp,n,bj.invMass*deltalambda); - vec2.scale(temp,vec2.transformMat2(temp,n,imMat2),deltalambda); - vec2.add( bj.vlambda,bj.vlambda, temp); - - // Add to angular velocity - bi.wlambda -= bi.invInertia * this.rixn * deltalambda; - bj.wlambda += bj.invInertia * this.rjxn * deltalambda; -}; - diff --git a/src/physics/advanced/constraints/DistanceConstraint.js b/src/physics/advanced/constraints/DistanceConstraint.js index ccdb6e562..4594a918a 100644 --- a/src/physics/advanced/constraints/DistanceConstraint.js +++ b/src/physics/advanced/constraints/DistanceConstraint.js @@ -1,5 +1,5 @@ var Constraint = require('./Constraint') -, ContactEquation = require('./ContactEquation') +, Equation = require('./Equation') , vec2 = require('../math/vec2') module.exports = DistanceConstraint; @@ -19,16 +19,25 @@ module.exports = DistanceConstraint; function DistanceConstraint(bodyA,bodyB,distance,maxForce){ Constraint.call(this,bodyA,bodyB); + /** + * The distance to keep. + * @property distance + * @type {Number} + */ this.distance = distance; - if(typeof(maxForce)==="undefined" ) { - maxForce = 1e6; - } - - var normal = new ContactEquation(bodyA,bodyB); // Just in the normal direction + if(typeof(maxForce)==="undefined" ) + maxForce = Number.MAX_VALUE; + var normal = new Equation(bodyA,bodyB,-maxForce,maxForce); // Just in the normal direction this.equations = [ normal ]; + var r = vec2.create(); + normal.computeGq = function(){ + vec2.sub(r, bodyB.position, bodyA.position); + return vec2.length(r)-distance; + }; + // Make the contact constraint bilateral this.setMaxForce(maxForce); } @@ -38,24 +47,38 @@ DistanceConstraint.prototype = new Constraint(); * Update the constraint equations. Should be done if any of the bodies changed position, before solving. * @method update */ +var n = vec2.create(); DistanceConstraint.prototype.update = function(){ var normal = this.equations[0], bodyA = this.bodyA, bodyB = this.bodyB, - distance = this.distance; + distance = this.distance, + G = normal.G; - vec2.sub(normal.ni, bodyB.position, bodyA.position); - vec2.normalize(normal.ni,normal.ni); - vec2.scale(normal.ri, normal.ni, distance*0.5); - vec2.scale(normal.rj, normal.ni, -distance*0.5); + vec2.sub(n, bodyB.position, bodyA.position); + vec2.normalize(n,n); + G[0] = -n[0]; + G[1] = -n[1]; + G[3] = n[0]; + G[4] = n[1]; }; +/** + * Set the max force to be used + * @method setMaxForce + * @param {Number} f + */ DistanceConstraint.prototype.setMaxForce = function(f){ var normal = this.equations[0]; normal.minForce = -f; normal.maxForce = f; }; +/** + * Get the max force + * @method getMaxForce + * @return {Number} + */ DistanceConstraint.prototype.getMaxForce = function(f){ var normal = this.equations[0]; return normal.maxForce; diff --git a/src/physics/advanced/constraints/Equation.js b/src/physics/advanced/constraints/Equation.js index 2bbd564b4..64527232d 100644 --- a/src/physics/advanced/constraints/Equation.js +++ b/src/physics/advanced/constraints/Equation.js @@ -1,5 +1,9 @@ module.exports = Equation; +var vec2 = require('../math/vec2'), + mat2 = require('../math/mat2'), + Utils = require('../utils/Utils'); + /** * Base class for constraint equations. * @class Equation @@ -12,52 +16,75 @@ module.exports = Equation; function Equation(bi,bj,minForce,maxForce){ /** - * Minimum force to apply when solving - * @property minForce - * @type {Number} - */ + * Minimum force to apply when solving + * @property minForce + * @type {Number} + */ this.minForce = typeof(minForce)=="undefined" ? -1e6 : minForce; /** - * Max force to apply when solving - * @property maxForce - * @type {Number} - */ + * Max force to apply when solving + * @property maxForce + * @type {Number} + */ this.maxForce = typeof(maxForce)=="undefined" ? 1e6 : maxForce; /** - * First body participating in the constraint - * @property bi - * @type {Body} - */ + * First body participating in the constraint + * @property bi + * @type {Body} + */ this.bi = bi; /** - * Second body participating in the constraint - * @property bj - * @type {Body} - */ + * Second body participating in the constraint + * @property bj + * @type {Body} + */ this.bj = bj; /** - * The stiffness of this equation. Typically chosen to a large number (~1e7), but can be chosen somewhat freely to get a stable simulation. - * @property stiffness - * @type {Number} - */ + * The stiffness of this equation. Typically chosen to a large number (~1e7), but can be chosen somewhat freely to get a stable simulation. + * @property stiffness + * @type {Number} + */ this.stiffness = 1e6; /** - * The number of time steps needed to stabilize the constraint equation. Typically between 3 and 5 time steps. - * @property relaxation - * @type {Number} - */ + * The number of time steps needed to stabilize the constraint equation. Typically between 3 and 5 time steps. + * @property relaxation + * @type {Number} + */ this.relaxation = 4; + /** + * The Jacobian entry of this equation. 6 numbers, 3 per body (x,y,angle). + * @property G + * @type {Array} + */ + this.G = new Utils.ARRAY_TYPE(6); + + // Constraint frames for body i and j + /* + this.xi = vec2.create(); + this.xj = vec2.create(); + this.ai = 0; + this.aj = 0; + */ + this.offset = 0; + this.a = 0; this.b = 0; this.eps = 0; this.h = 0; this.updateSpookParams(1/60); + + /** + * The resulting constraint multiplier from the last solve. This is mostly equivalent to the force produced by the constraint. + * @property multiplier + * @type {Number} + */ + this.multiplier = 0; }; Equation.prototype.constructor = Equation; @@ -75,3 +102,215 @@ Equation.prototype.updateSpookParams = function(timeStep){ this.eps = 4.0 / (h * h * k * (1 + 4 * d)); this.h = timeStep; }; + +function Gmult(G,vi,wi,vj,wj){ + return G[0] * vi[0] + + G[1] * vi[1] + + G[2] * wi + + G[3] * vj[0] + + G[4] * vj[1] + + G[5] * wj; +} + +/** + * Computes the RHS of the SPOOK equation + * @method computeB + * @return {Number} + */ +Equation.prototype.computeB = function(a,b,h){ + var GW = this.computeGW(); + var Gq = this.computeGq(); + var GiMf = this.computeGiMf(); + return - Gq * a - GW * b - GiMf*h; +}; + +/** + * Computes G*q, where q are the generalized body coordinates + * @method computeGq + * @return {Number} + */ +var qi = vec2.create(), + qj = vec2.create(); +Equation.prototype.computeGq = function(){ + var G = this.G, + bi = this.bi, + bj = this.bj, + xi = bi.position, + xj = bj.position, + ai = bi.angle, + aj = bj.angle; + + // Transform to the given body frames + /* + vec2.rotate(qi,this.xi,ai); + vec2.rotate(qj,this.xj,aj); + vec2.add(qi,qi,xi); + vec2.add(qj,qj,xj); + */ + + return Gmult(G, qi, ai, qj, aj) + this.offset; +}; + +var tmp_i = vec2.create(), + tmp_j = vec2.create(); +Equation.prototype.transformedGmult = function(G,vi,wi,vj,wj){ + // Transform velocity to the given body frames + // v_p = v + w x r + /* + vec2.rotate(tmp_i,this.xi,Math.PI / 2 + this.bi.angle); // Get r, and rotate 90 degrees. We get the "x r" part + vec2.rotate(tmp_j,this.xj,Math.PI / 2 + this.bj.angle); + vec2.scale(tmp_i,tmp_i,wi); // Temp vectors are now (w x r) + vec2.scale(tmp_j,tmp_j,wj); + vec2.add(tmp_i,tmp_i,vi); + vec2.add(tmp_j,tmp_j,vj); + */ + + // Note: angular velocity is same + return Gmult(G,vi,wi,vj,wj); +}; + +/** + * Computes G*W, where W are the body velocities + * @method computeGW + * @return {Number} + */ +Equation.prototype.computeGW = function(){ + var G = this.G, + bi = this.bi, + bj = this.bj, + vi = bi.velocity, + vj = bj.velocity, + wi = bi.angularVelocity, + wj = bj.angularVelocity; + return this.transformedGmult(G,vi,wi,vj,wj); +}; + +/** + * Computes G*Wlambda, where W are the body velocities + * @method computeGWlambda + * @return {Number} + */ +Equation.prototype.computeGWlambda = function(){ + var G = this.G, + bi = this.bi, + bj = this.bj, + vi = bi.vlambda, + vj = bj.vlambda, + wi = bi.wlambda, + wj = bj.wlambda; + return this.transformedGmult(G,vi,wi,vj,wj); +}; + +/** + * Computes G*inv(M)*f, where M is the mass matrix with diagonal blocks for each body, and f are the forces on the bodies. + * @method computeGiMf + * @return {Number} + */ +var iMfi = vec2.create(), + iMfj = vec2.create(); +Equation.prototype.computeGiMf = function(){ + var bi = this.bi, + bj = this.bj, + fi = bi.force, + ti = bi.angularForce, + fj = bj.force, + tj = bj.angularForce, + invMassi = bi.invMass, + invMassj = bj.invMass, + invIi = bi.invInertia, + invIj = bj.invInertia, + G = this.G; + + vec2.scale(iMfi, fi,invMassi); + vec2.scale(iMfj, fj,invMassj); + + return this.transformedGmult(G,iMfi,ti*invIi,iMfj,tj*invIj); +}; + +/** + * Computes G*inv(M)*G' + * @method computeGiMGt + * @return {Number} + */ +Equation.prototype.computeGiMGt = function(){ + var bi = this.bi, + bj = this.bj, + invMassi = bi.invMass, + invMassj = bj.invMass, + invIi = bi.invInertia, + invIj = bj.invInertia, + G = this.G; + + return G[0] * G[0] * invMassi + + G[1] * G[1] * invMassi + + G[2] * G[2] * invIi + + G[3] * G[3] * invMassj + + G[4] * G[4] * invMassj + + G[5] * G[5] * invIj; +}; + +var addToWlambda_temp = vec2.create(), + addToWlambda_Gi = vec2.create(), + addToWlambda_Gj = vec2.create(), + addToWlambda_ri = vec2.create(), + addToWlambda_rj = vec2.create(); +var tmpMat1 = mat2.create(), + tmpMat2 = mat2.create(); + +/** + * Add constraint velocity to the bodies. + * @method addToWlambda + * @param {Number} deltalambda + */ +Equation.prototype.addToWlambda = function(deltalambda){ + var bi = this.bi, + bj = this.bj, + temp = addToWlambda_temp, + imMat1 = tmpMat1, + imMat2 = tmpMat2, + Gi = addToWlambda_Gi, + Gj = addToWlambda_Gj, + ri = addToWlambda_ri, + rj = addToWlambda_rj, + G = this.G; + + Gi[0] = G[0]; + Gi[1] = G[1]; + Gj[0] = G[3]; + Gj[1] = G[4]; + + mat2.identity(imMat1); + mat2.identity(imMat2); + imMat1[0] = imMat1[3] = bi.invMass; + imMat2[0] = imMat2[3] = bj.invMass; + + /* + vec2.rotate(ri,this.xi,bi.angle); + vec2.rotate(rj,this.xj,bj.angle); + */ + + // Add to linear velocity + vec2.scale(temp,vec2.transformMat2(temp,Gi,imMat1),deltalambda); + vec2.add( bi.vlambda, bi.vlambda, temp); + // This impulse is in the offset frame + // Also add contribution to angular + //bi.wlambda -= vec2.crossLength(temp,ri); + + vec2.scale(temp,vec2.transformMat2(temp,Gj,imMat2),deltalambda); + vec2.add( bj.vlambda, bj.vlambda, temp); + //bj.wlambda -= vec2.crossLength(temp,rj); + + // Add to angular velocity + bi.wlambda += bi.invInertia * G[2] * deltalambda; + bj.wlambda += bj.invInertia * G[5] * deltalambda; +}; + +/** + * Compute the denominator part of the SPOOK equation: C = G*inv(M)*G' + eps + * @method computeC + * @param {Number} eps + * @return {Number} + */ +Equation.prototype.computeC = function(eps){ + return this.computeGiMGt() + eps; +}; diff --git a/src/physics/advanced/constraints/FrictionEquation.js b/src/physics/advanced/constraints/FrictionEquation.js index d0a3e8120..8dea79704 100644 --- a/src/physics/advanced/constraints/FrictionEquation.js +++ b/src/physics/advanced/constraints/FrictionEquation.js @@ -1,22 +1,10 @@ var mat2 = require('../math/mat2') , vec2 = require('../math/vec2') , Equation = require('./Equation') +, Utils = require('../utils/Utils') module.exports = FrictionEquation; -// 3D cross product from glmatrix, until we get this to work... -function cross(out, a, b) { - var ax = a[0], ay = a[1], az = a[2], - bx = b[0], by = b[1], bz = b[2]; - - out[0] = ay * bz - az * by; - out[1] = az * bx - ax * bz; - out[2] = ax * by - ay * bx; - return out; -}; - -var dot = vec2.dot; - /** * Constrains the slipping in a contact along a tangent * @@ -31,28 +19,53 @@ function FrictionEquation(bi,bj,slipForce){ Equation.call(this,bi,bj,-slipForce,slipForce); /** - * Relative vector from center of body i to the contact point, in world coords. - * @property ri - * @type {Float32Array} - */ + * Relative vector from center of body i to the contact point, in world coords. + * @property ri + * @type {Float32Array} + */ this.ri = vec2.create(); /** - * Relative vector from center of body j to the contact point, in world coords. - * @property rj - * @type {Float32Array} - */ + * Relative vector from center of body j to the contact point, in world coords. + * @property rj + * @type {Float32Array} + */ this.rj = vec2.create(); /** - * Tangent vector that the friction force will act along, in world coords. - * @property t - * @type {Float32Array} - */ + * Tangent vector that the friction force will act along, in world coords. + * @property t + * @type {Float32Array} + */ this.t = vec2.create(); - this.rixt = 0; - this.rjxt = 0; + /** + * A ContactEquation connected to this friction. The contact equation can be used to rescale the max force for the friction. + * @property contactEquation + * @type {ContactEquation} + */ + this.contactEquation = null; + + /** + * The shape in body i that triggered this friction. + * @property shapeA + * @type {Shape} + */ + this.shapeA = null; + + /** + * The shape in body j that triggered this friction. + * @property shapeB + * @type {Shape} + */ + this.shapeB = null; + + /** + * The friction coefficient to use. + * @property frictionCoefficient + * @type {Number} + */ + this.frictionCoefficient = 0.3; }; FrictionEquation.prototype = new Equation(); FrictionEquation.prototype.constructor = FrictionEquation; @@ -62,119 +75,34 @@ FrictionEquation.prototype.constructor = FrictionEquation; * larger than this value. * @method setSlipForce * @param {Number} slipForce + * @deprecated Use .frictionCoefficient instead */ FrictionEquation.prototype.setSlipForce = function(slipForce){ this.maxForce = slipForce; this.minForce = -slipForce; }; -var rixtVec = [0,0,0]; -var rjxtVec = [0,0,0]; -var ri3 = [0,0,0]; -var rj3 = [0,0,0]; -var t3 = [0,0,0]; FrictionEquation.prototype.computeB = function(a,b,h){ - var a = this.a, - b = this.b, - bi = this.bi, + var bi = this.bi, bj = this.bj, ri = this.ri, rj = this.rj, - t = this.t; + t = this.t, + G = this.G; - // Caluclate cross products - ri3[0] = ri[0]; - ri3[1] = ri[1]; - rj3[0] = rj[0]; - rj3[1] = rj[1]; - t3[0] = t[0]; - t3[1] = t[1]; - cross(rixtVec, ri3, t3);//ri.cross(t,rixt); - cross(rjxtVec, rj3, t3);//rj.cross(t,rjxt); - this.rixt = rixtVec[2]; - this.rjxt = rjxtVec[2]; + // G = [-t -rixt t rjxt] + // And remember, this is a pure velocity constraint, g is always zero! + G[0] = -t[0]; + G[1] = -t[1]; + G[2] = -vec2.crossLength(ri,t); + G[3] = t[0]; + G[4] = t[1]; + G[5] = vec2.crossLength(rj,t); - var GW = -dot(bi.velocity,t) + dot(bj.velocity,t) - this.rixt*bi.angularVelocity + this.rjxt*bj.angularVelocity; // eq. 40 - var GiMf = -dot(bi.force,t)*bi.invMass +dot(bj.force,t)*bj.invMass -this.rixt*bi.invInertia*bi.angularForce + this.rjxt*bj.invInertia*bj.angularForce; + var GW = this.computeGW(); + var GiMf = this.computeGiMf(); - var B = /* - Gq * a */ - GW * b - h*GiMf; + var B = /* - g * a */ - GW * b - h*GiMf; return B; }; - -// Compute C = G * iM * G' + eps -// -// G*iM*G' = -// -// [ iM1 ] [-t ] -// [-t (-ri x t) t (rj x t)] * [ iI1 ] [-ri x t] -// [ iM2 ] [t ] -// [ iI2 ] [rj x t ] -// -// = (-t)*iM1*(-t) + (-ri x t)*iI1*(-ri x t) + t*iM2*t + (rj x t)*iI2*(rj x t) -// -// = t*iM1*t + (ri x t)*iI1*(ri x t) + t*iM2*t + (rj x t)*iI2*(rj x t) -// -var computeC_tmp1 = vec2.create(), - tmpMat1 = mat2.create(), - tmpMat2 = mat2.create(); -FrictionEquation.prototype.computeC = function(eps){ - var bi = this.bi, - bj = this.bj, - t = this.t, - C = 0.0, - tmp = computeC_tmp1, - imMat1 = tmpMat1, - imMat2 = tmpMat2, - dot = vec2.dot; - - mat2.identity(imMat1); - mat2.identity(imMat2); - - imMat1[0] = imMat1[3] = bi.invMass; - imMat2[0] = imMat2[3] = bj.invMass; - - C = dot(t,vec2.transformMat2(tmp,t,imMat1)) + dot(t,vec2.transformMat2(tmp,t,imMat2)) + eps; - - //C = bi.invMass + bj.invMass + eps; - - C += bi.invInertia * this.rixt * this.rixt; - C += bj.invInertia * this.rjxt * this.rjxt; - - return C; -}; - -FrictionEquation.prototype.computeGWlambda = function(){ - var bi = this.bi, - bj = this.bj, - t = this.t, - dot = vec2.dot; - - return dot(t, bj.vlambda) + bj.wlambda * this.rjxt - bi.wlambda * this.rixt - dot(t, bi.vlambda); -}; - -var FrictionEquation_addToWlambda_tmp = vec2.create(); -FrictionEquation.prototype.addToWlambda = function(deltalambda){ - var bi = this.bi, - bj = this.bj, - t = this.t, - tmp = FrictionEquation_addToWlambda_tmp, - imMat1 = tmpMat1, - imMat2 = tmpMat2; - - mat2.identity(imMat1); - mat2.identity(imMat2); - imMat1[0] = imMat1[3] = bi.invMass; - imMat2[0] = imMat2[3] = bj.invMass; - - vec2.scale(tmp,vec2.transformMat2(tmp,t,imMat1),-deltalambda); - //vec2.scale(tmp, t, -bi.invMass * deltalambda); //t.mult(invMassi * deltalambda, tmp); - vec2.add(bi.vlambda, bi.vlambda, tmp); //bi.vlambda.vsub(tmp,bi.vlambda); - - vec2.scale(tmp,vec2.transformMat2(tmp,t,imMat2),deltalambda); - //vec2.scale(tmp, t, bj.invMass * deltalambda); //t.mult(invMassj * deltalambda, tmp); - vec2.add(bj.vlambda, bj.vlambda, tmp); //bj.vlambda.vadd(tmp,bj.vlambda); - - bi.wlambda -= bi.invInertia * this.rixt * deltalambda; - bj.wlambda += bj.invInertia * this.rjxt * deltalambda; -}; diff --git a/src/physics/advanced/constraints/LockConstraint.js b/src/physics/advanced/constraints/LockConstraint.js new file mode 100644 index 000000000..8c7539a90 --- /dev/null +++ b/src/physics/advanced/constraints/LockConstraint.js @@ -0,0 +1,123 @@ +var Constraint = require('./Constraint') +, vec2 = require('../math/vec2') +, Equation = require('./Equation') + +module.exports = LockConstraint; + +/** + * Locks the relative position between two bodies. + * + * @class LockConstraint + * @constructor + * @author schteppe + * @param {Body} bodyA + * @param {Body} bodyB + * @param {Object} [options] + * @param {Array} [options.localOffsetB] The offset of bodyB in bodyA's frame. + * @param {number} [options.localAngleB] The angle of bodyB in bodyA's frame. + * @param {number} [options.maxForce] + * @extends {Constraint} + */ +function LockConstraint(bodyA,bodyB,options){ + Constraint.call(this,bodyA,bodyB); + var maxForce = ( typeof(options.maxForce)=="undefined" ? Number.MAX_VALUE : options.maxForce ); + var localOffsetB = options.localOffsetB || vec2.fromValues(0,0); + localOffsetB = vec2.fromValues(localOffsetB[0],localOffsetB[1]); + + var localAngleB = options.localAngleB || 0; + + // Use 3 equations: + // gx = (xj - xi - l) * xhat = 0 + // gy = (xj - xi - l) * yhat = 0 + // gr = (xi - xj + r) * that = 0 + // + // ...where: + // l is the localOffsetB vector rotated to world in bodyA frame + // r is the same vector but reversed and rotated from bodyB frame + // xhat, yhat are world axis vectors + // that is the tangent of r + // + // For the first two constraints, we get + // G*W = (vj - vi - ldot ) * xhat + // = (vj - vi - wi x l) * xhat + // + // Since (wi x l) * xhat = (l x xhat) * wi, we get + // G*W = [ -1 0 (-l x xhat) 1 0 0] * [vi wi vj wj] + // + // The last constraint gives + // GW = (vi - vj + wj x r) * that + // = [ that 0 -that (r x t) ] + + var x = new Equation(bodyA,bodyB,-maxForce,maxForce), + y = new Equation(bodyA,bodyB,-maxForce,maxForce), + rot = new Equation(bodyA,bodyB,-maxForce,maxForce); + + var l = vec2.create(), + g = vec2.create(); + x.computeGq = function(){ + vec2.rotate(l,localOffsetB,bodyA.angle); + vec2.sub(g,bodyB.position,bodyA.position); + vec2.sub(g,g,l); + return g[0]; + } + y.computeGq = function(){ + vec2.rotate(l,localOffsetB,bodyA.angle); + vec2.sub(g,bodyB.position,bodyA.position); + vec2.sub(g,g,l); + return g[1]; + }; + var r = vec2.create(), + t = vec2.create(); + rot.computeGq = function(){ + vec2.rotate(r,localOffsetB,bodyB.angle - localAngleB); + vec2.scale(r,r,-1); + vec2.sub(g,bodyA.position,bodyB.position); + vec2.add(g,g,r); + vec2.rotate(t,r,-Math.PI/2); + vec2.normalize(t,t); + return vec2.dot(g,t); + }; + + this.localOffsetB = localOffsetB; + this.localAngleB = localAngleB; + this.maxForce = maxForce; + + var eqs = this.equations = [ x, y, rot ]; +} +LockConstraint.prototype = new Constraint(); + +var l = vec2.create(); +var r = vec2.create(); +var t = vec2.create(); +var xAxis = vec2.fromValues(1,0); +var yAxis = vec2.fromValues(0,1); +LockConstraint.prototype.update = function(){ + var x = this.equations[0], + y = this.equations[1], + rot = this.equations[2], + bodyA = this.bodyA, + bodyB = this.bodyB; + + vec2.rotate(l,this.localOffsetB,bodyA.angle); + vec2.rotate(r,this.localOffsetB,bodyB.angle - this.localAngleB); + vec2.scale(r,r,-1); + + vec2.rotate(t,r,Math.PI/2); + vec2.normalize(t,t); + + x.G[0] = -1; + x.G[1] = 0; + x.G[2] = -vec2.crossLength(l,xAxis); + x.G[3] = 1; + + y.G[0] = 0; + y.G[1] = -1; + y.G[2] = -vec2.crossLength(l,yAxis); + y.G[4] = 1; + + rot.G[0] = -t[0]; + rot.G[1] = -t[1]; + rot.G[3] = t[0]; + rot.G[4] = t[1]; + rot.G[5] = vec2.crossLength(r,t); +}; diff --git a/src/physics/advanced/constraints/PointToPointConstraint.js b/src/physics/advanced/constraints/PointToPointConstraint.js deleted file mode 100644 index 6fd343a12..000000000 --- a/src/physics/advanced/constraints/PointToPointConstraint.js +++ /dev/null @@ -1,94 +0,0 @@ -var Constraint = require('./Constraint') -, ContactEquation = require('./ContactEquation') -, RotationalVelocityEquation = require('./RotationalVelocityEquation') -, vec2 = require('../math/vec2') - -module.exports = PointToPointConstraint; - -/** - * Connects two bodies at given offset points - * @class PointToPointConstraint - * @constructor - * @author schteppe - * @param {Body} bodyA - * @param {Float32Array} pivotA The point relative to the center of mass of bodyA which bodyA is constrained to. - * @param {Body} bodyB Body that will be constrained in a similar way to the same point as bodyA. We will therefore get sort of a link between bodyA and bodyB. If not specified, bodyA will be constrained to a static point. - * @param {Float32Array} pivotB See pivotA. - * @param {Number} maxForce The maximum force that should be applied to constrain the bodies. - * @extends {Constraint} - * @todo Ability to specify world points - */ -function PointToPointConstraint(bodyA, pivotA, bodyB, pivotB, maxForce){ - Constraint.call(this,bodyA,bodyB); - - maxForce = typeof(maxForce)!="undefined" ? maxForce : 1e7; - - this.pivotA = pivotA; - this.pivotB = pivotB; - - // Equations to be fed to the solver - var eqs = this.equations = [ - new ContactEquation(bodyA,bodyB), // Normal - new ContactEquation(bodyA,bodyB), // Tangent - ]; - - var normal = eqs[0]; - var tangent = eqs[1]; - - tangent.minForce = normal.minForce = -maxForce; - tangent.maxForce = normal.maxForce = maxForce; - - this.motorEquation = null; -} -PointToPointConstraint.prototype = new Constraint(); - -PointToPointConstraint.prototype.update = function(){ - var bodyA = this.bodyA, - bodyB = this.bodyB, - pivotA = this.pivotA, - pivotB = this.pivotB, - eqs = this.equations, - normal = eqs[0], - tangent= eqs[1]; - - vec2.subtract(normal.ni, bodyB.position, bodyA.position); - vec2.normalize(normal.ni,normal.ni); - vec2.rotate(normal.ri, pivotA, bodyA.angle); - vec2.rotate(normal.rj, pivotB, bodyB.angle); - - vec2.rotate(tangent.ni, normal.ni, Math.PI / 2); - vec2.copy(tangent.ri, normal.ri); - vec2.copy(tangent.rj, normal.rj); -}; - -/** - * Enable the rotational motor - * @method enableMotor - */ -PointToPointConstraint.prototype.enableMotor = function(){ - if(this.motorEquation) return; - this.motorEquation = new RotationalVelocityEquation(this.bodyA,this.bodyB); - this.equations.push(this.motorEquation); -}; - -/** - * Disable the rotational motor - * @method disableMotor - */ -PointToPointConstraint.prototype.disableMotor = function(){ - if(!this.motorEquation) return; - var i = this.equations.indexOf(this.motorEquation); - this.motorEquation = null; - this.equations.splice(i,1); -}; - -/** - * Set the speed of the rotational constraint motor - * @method setMotorSpeed - * @param {Number} speed - */ -PointToPointConstraint.prototype.setMotorSpeed = function(speed){ - if(!this.motorEquation) return; - var i = this.equations.indexOf(this.motorEquation); - this.equations[i].relativeVelocity = speed; -}; diff --git a/src/physics/advanced/constraints/PrismaticConstraint.js b/src/physics/advanced/constraints/PrismaticConstraint.js index ff03a7673..43cec8a73 100644 --- a/src/physics/advanced/constraints/PrismaticConstraint.js +++ b/src/physics/advanced/constraints/PrismaticConstraint.js @@ -1,58 +1,107 @@ var Constraint = require('./Constraint') , ContactEquation = require('./ContactEquation') +, Equation = require('./Equation') , vec2 = require('../math/vec2') +, RotationalLockEquation = require('./RotationalLockEquation') module.exports = PrismaticConstraint; /** - * Constraint that only allows translation along a line between the bodies, no rotation + * Constraint that only allows bodies to move along a line, relative to each other. See this tutorial. * * @class PrismaticConstraint * @constructor + * @extends {Constraint} * @author schteppe * @param {Body} bodyA * @param {Body} bodyB * @param {Object} options - * @param {Number} options.maxForce - * @param {Array} options.worldAxis - * @param {Array} options.localAxisA - * @param {Array} options.localAxisB - * @extends {Constraint} + * @param {Number} options.maxForce Max force to be applied by the constraint + * @param {Array} options.localAnchorA Body A's anchor point, defined in its own local frame. + * @param {Array} options.localAnchorB Body B's anchor point, defined in its own local frame. + * @param {Array} options.localAxisA An axis, defined in body A frame, that body B's anchor point may slide along. */ function PrismaticConstraint(bodyA,bodyB,options){ options = options || {}; Constraint.call(this,bodyA,bodyB); - var maxForce = this.maxForce = typeof(options.maxForce)==="undefined" ? options.maxForce : 1e6; + // Get anchors + var localAnchorA = vec2.fromValues(0,0), + localAxisA = vec2.fromValues(1,0), + localAnchorB = vec2.fromValues(0,0); + if(options.localAnchorA) vec2.copy(localAnchorA, options.localAnchorA); + if(options.localAxisA) vec2.copy(localAxisA, options.localAxisA); + if(options.localAnchorB) vec2.copy(localAnchorB, options.localAnchorB); - // Equations to be fed to the solver - var eqs = this.equations = [ - new ContactEquation(bodyA,bodyB), // Tangent for bodyA - new ContactEquation(bodyB,bodyA), // Tangent for bodyB - ]; + /** + * @property localAnchorA + * @type {Array} + */ + this.localAnchorA = localAnchorA; - var tangentA = eqs[0], - tangentB = eqs[1]; + /** + * @property localAnchorB + * @type {Array} + */ + this.localAnchorB = localAnchorB; - tangentA.minForce = tangentB.minForce = -maxForce; - tangentA.maxForce = tangentB.maxForce = maxForce; + /** + * @property localAxisA + * @type {Array} + */ + this.localAxisA = localAxisA; - var worldAxis = vec2.create(); - if(options.worldAxis){ - vec2.copy(worldAxis, options.worldAxis); - } else { - vec2.sub(worldAxis, bodyB.position, bodyA.position); + /* + + The constraint violation for the common axis point is + + g = ( xj + rj - xi - ri ) * t := gg*t + + where r are body-local anchor points, and t is a tangent to the constraint axis defined in body i frame. + + gdot = ( vj + wj x rj - vi - wi x ri ) * t + ( xj + rj - xi - ri ) * ( wi x t ) + + Note the use of the chain rule. Now we identify the jacobian + + G*W = [ -t -ri x t + t x gg t rj x t ] * [vi wi vj wj] + + The rotational part is just a rotation lock. + + */ + + var maxForce = this.maxForce = typeof(options.maxForce)==="undefined" ? options.maxForce : Number.MAX_VALUE; + + // Translational part + var trans = new Equation(bodyA,bodyB,-maxForce,maxForce); + var ri = new vec2.create(), + rj = new vec2.create(), + gg = new vec2.create(), + t = new vec2.create(); + trans.computeGq = function(){ + // g = ( xj + rj - xi - ri ) * t + return vec2.dot(gg,t); + }; + trans.update = function(){ + var G = this.G, + xi = bodyA.position, + xj = bodyB.position; + vec2.rotate(ri,localAnchorA,bodyA.angle); + vec2.rotate(rj,localAnchorB,bodyB.angle); + vec2.add(gg,xj,rj); + vec2.sub(gg,gg,xi); + vec2.sub(gg,gg,ri); + vec2.rotate(t,localAxisA,bodyA.angle+Math.PI/2); + + G[0] = -t[0]; + G[1] = -t[1]; + G[2] = -vec2.crossLength(ri,t) + vec2.crossLength(t,gg); + G[3] = t[0]; + G[4] = t[1]; + G[5] = vec2.crossLength(rj,t); } - vec2.normalize(worldAxis,worldAxis); + var rot = new RotationalLockEquation(bodyA,bodyB,-maxForce,maxForce); - // Axis that is local in each body - this.localAxisA = vec2.create(); - this.localAxisB = vec2.create(); - if(options.localAxisA) vec2.copy(this.localAxisA, options.localAxisA); - else vec2.rotate(this.localAxisA, worldAxis, -bodyA.angle); - - if(options.localAxisB) vec2.copy(this.localAxisB, options.localAxisB); - else vec2.rotate(this.localAxisB, worldAxis, -bodyB.angle); + this.equations.push(trans,rot); } PrismaticConstraint.prototype = new Constraint(); @@ -62,22 +111,7 @@ PrismaticConstraint.prototype = new Constraint(); * @method update */ PrismaticConstraint.prototype.update = function(){ - var tangentA = this.equations[0], - tangentB = this.equations[1], - bodyA = this.bodyA, - bodyB = this.bodyB; - - // Get tangent directions - vec2.rotate(tangentA.ni, this.localAxisA, bodyA.angle - Math.PI/2); - vec2.rotate(tangentB.ni, this.localAxisB, bodyB.angle + Math.PI/2); - - // Get distance vector - var dist = vec2.create(); - vec2.sub(dist, bodyB.position, bodyA.position); - vec2.scale(tangentA.ri, tangentA.ni, -vec2.dot(tangentA.ni, dist)); - vec2.scale(tangentB.ri, tangentB.ni, vec2.dot(tangentB.ni, dist)); - vec2.add(tangentA.rj, tangentA.ri, dist); - vec2.sub(tangentB.rj, tangentB.ri, dist); - vec2.set(tangentA.ri, 0, 0); - vec2.set(tangentB.ri, 0, 0); + var eqs = this.equations, + trans = eqs[0]; + trans.update(); }; diff --git a/src/physics/advanced/constraints/RevoluteConstraint.js b/src/physics/advanced/constraints/RevoluteConstraint.js new file mode 100644 index 000000000..14abbab8f --- /dev/null +++ b/src/physics/advanced/constraints/RevoluteConstraint.js @@ -0,0 +1,208 @@ +var Constraint = require('./Constraint') +, Equation = require('./Equation') +, RotationalVelocityEquation = require('./RotationalVelocityEquation') +, RotationalLockEquation = require('./RotationalLockEquation') +, vec2 = require('../math/vec2') + +module.exports = RevoluteConstraint; + +var worldPivotA = vec2.create(), + worldPivotB = vec2.create(), + xAxis = vec2.fromValues(1,0), + yAxis = vec2.fromValues(0,1), + g = vec2.create(); + +/** + * Connects two bodies at given offset points, letting them rotate relative to each other around this point. + * @class RevoluteConstraint + * @constructor + * @author schteppe + * @param {Body} bodyA + * @param {Float32Array} pivotA The point relative to the center of mass of bodyA which bodyA is constrained to. + * @param {Body} bodyB Body that will be constrained in a similar way to the same point as bodyA. We will therefore get sort of a link between bodyA and bodyB. If not specified, bodyA will be constrained to a static point. + * @param {Float32Array} pivotB See pivotA. + * @param {Number} maxForce The maximum force that should be applied to constrain the bodies. + * @extends {Constraint} + * @todo Ability to specify world points + */ +function RevoluteConstraint(bodyA, pivotA, bodyB, pivotB, maxForce){ + Constraint.call(this,bodyA,bodyB); + + maxForce = typeof(maxForce)!="undefined" ? maxForce : Number.MAX_VALUE; + + this.pivotA = pivotA; + this.pivotB = pivotB; + + // Equations to be fed to the solver + var eqs = this.equations = [ + new Equation(bodyA,bodyB,-maxForce,maxForce), + new Equation(bodyA,bodyB,-maxForce,maxForce), + ]; + + var x = eqs[0]; + var y = eqs[1]; + + x.computeGq = function(){ + vec2.rotate(worldPivotA, pivotA, bodyA.angle); + vec2.rotate(worldPivotB, pivotB, bodyB.angle); + vec2.add(g, bodyB.position, worldPivotB); + vec2.sub(g, g, bodyA.position); + vec2.sub(g, g, worldPivotA); + return vec2.dot(g,xAxis); + }; + + y.computeGq = function(){ + vec2.rotate(worldPivotA, pivotA, bodyA.angle); + vec2.rotate(worldPivotB, pivotB, bodyB.angle); + vec2.add(g, bodyB.position, worldPivotB); + vec2.sub(g, g, bodyA.position); + vec2.sub(g, g, worldPivotA); + return vec2.dot(g,yAxis); + }; + + y.minForce = x.minForce = -maxForce; + y.maxForce = x.maxForce = maxForce; + + this.motorEquation = new RotationalVelocityEquation(bodyA,bodyB); + this.motorEnabled = false; + + // Angle limits + this.lowerLimitEnabled = false; + this.upperLimitEnabled = false; + this.lowerLimit = 0; + this.upperLimit = 0; + this.upperLimitEquation = new RotationalLockEquation(bodyA,bodyB); + this.lowerLimitEquation = new RotationalLockEquation(bodyA,bodyB); + this.upperLimitEquation.minForce = 0; + this.lowerLimitEquation.maxForce = 0; +} +RevoluteConstraint.prototype = new Constraint(); + +RevoluteConstraint.prototype.update = function(){ + var bodyA = this.bodyA, + bodyB = this.bodyB, + pivotA = this.pivotA, + pivotB = this.pivotB, + eqs = this.equations, + normal = eqs[0], + tangent= eqs[1], + x = eqs[0], + y = eqs[1], + upperLimit = this.upperLimit, + lowerLimit = this.lowerLimit, + upperLimitEquation = this.upperLimitEquation, + lowerLimitEquation = this.lowerLimitEquation; + + var relAngle = this.angle = bodyB.angle - bodyA.angle; + + if(this.upperLimitEnabled && relAngle > upperLimit){ + upperLimitEquation.angle = upperLimit; + if(eqs.indexOf(upperLimitEquation)==-1) + eqs.push(upperLimitEquation); + } else { + var idx = eqs.indexOf(upperLimitEquation); + if(idx != -1) eqs.splice(idx,1); + } + + if(this.lowerLimitEnabled && relAngle < lowerLimit){ + lowerLimitEquation.angle = lowerLimit; + if(eqs.indexOf(lowerLimitEquation)==-1) + eqs.push(lowerLimitEquation); + } else { + var idx = eqs.indexOf(lowerLimitEquation); + if(idx != -1) eqs.splice(idx,1); + } + + /* + + The constraint violation is + + g = xj + rj - xi - ri + + ...where xi and xj are the body positions and ri and rj world-oriented offset vectors. Differentiate: + + gdot = vj + wj x rj - vi - wi x ri + + We split this into x and y directions. (let x and y be unit vectors along the respective axes) + + gdot * x = ( vj + wj x rj - vi - wi x ri ) * x + = ( vj*x + (wj x rj)*x -vi*x -(wi x ri)*x + = ( vj*x + (rj x x)*wj -vi*x -(ri x x)*wi + = [ -x -(ri x x) x (rj x x)] * [vi wi vj wj] + = G*W + + ...and similar for y. We have then identified the jacobian entries for x and y directions: + + Gx = [ x (rj x x) -x -(ri x x)] + Gy = [ y (rj x y) -y -(ri x y)] + + */ + + vec2.rotate(worldPivotA, pivotA, bodyA.angle); + vec2.rotate(worldPivotB, pivotB, bodyB.angle); + + x.G[0] = -1; + x.G[1] = 0; + x.G[2] = -vec2.crossLength(worldPivotA,xAxis); + x.G[3] = 1; + x.G[4] = 0; + x.G[5] = vec2.crossLength(worldPivotB,xAxis); + + y.G[0] = 0; + y.G[1] = -1; + y.G[2] = -vec2.crossLength(worldPivotA,yAxis); + y.G[3] = 0; + y.G[4] = 1; + y.G[5] = vec2.crossLength(worldPivotB,yAxis); +}; + +/** + * Enable the rotational motor + * @method enableMotor + */ +RevoluteConstraint.prototype.enableMotor = function(){ + if(this.motorEnabled) return; + this.equations.push(this.motorEquation); + this.motorEnabled = true; +}; + +/** + * Disable the rotational motor + * @method disableMotor + */ +RevoluteConstraint.prototype.disableMotor = function(){ + if(!this.motorEnabled) return; + var i = this.equations.indexOf(this.motorEquation); + this.equations.splice(i,1); + this.motorEnabled = false; +}; + +/** + * Check if the motor is enabled. + * @method motorIsEnabled + * @return {Boolean} + */ +RevoluteConstraint.prototype.motorIsEnabled = function(){ + return !!this.motorEnabled; +}; + +/** + * Set the speed of the rotational constraint motor + * @method setMotorSpeed + * @param {Number} speed + */ +RevoluteConstraint.prototype.setMotorSpeed = function(speed){ + if(!this.motorEnabled) return; + var i = this.equations.indexOf(this.motorEquation); + this.equations[i].relativeVelocity = speed; +}; + +/** + * Get the speed of the rotational constraint motor + * @method getMotorSpeed + * @return {Number} The current speed, or false if the motor is not enabled. + */ +RevoluteConstraint.prototype.getMotorSpeed = function(){ + if(!this.motorEnabled) return false; + return this.motorEquation.relativeVelocity; +}; diff --git a/src/physics/advanced/constraints/RotationalLockEquation.js b/src/physics/advanced/constraints/RotationalLockEquation.js new file mode 100644 index 000000000..bcbd66a1f --- /dev/null +++ b/src/physics/advanced/constraints/RotationalLockEquation.js @@ -0,0 +1,37 @@ +var Equation = require("./Equation"), + vec2 = require('../math/vec2'); + +module.exports = RotationalLockEquation; + +/** + * Locks the relative angle between two bodies. The constraint tries to keep the dot product between two vectors, local in each body, to zero. The local angle in body i is a parameter. + * + * @class RotationalLockEquation + * @constructor + * @extends Equation + * @param {Body} bi + * @param {Body} bj + * @param {Object} options + * @param {Number} options.angle Angle to add to the local vector in body i. + */ +function RotationalLockEquation(bi,bj,options){ + options = options || {}; + Equation.call(this,bi,bj,-Number.MAX_VALUE,Number.MAX_VALUE); + this.angle = options.angle || 0; + + var G = this.G; + G[2] = 1; + G[5] = -1; +}; +RotationalLockEquation.prototype = new Equation(); +RotationalLockEquation.prototype.constructor = RotationalLockEquation; + +var worldVectorA = vec2.create(), + worldVectorB = vec2.create(), + xAxis = vec2.fromValues(1,0), + yAxis = vec2.fromValues(0,1); +RotationalLockEquation.prototype.computeGq = function(){ + vec2.rotate(worldVectorA,xAxis,this.bi.angle+this.angle); + vec2.rotate(worldVectorB,yAxis,this.bj.angle); + return vec2.dot(worldVectorA,worldVectorB); +}; diff --git a/src/physics/advanced/constraints/RotationalVelocityEquation.js b/src/physics/advanced/constraints/RotationalVelocityEquation.js index 346d5a694..6b6f65142 100644 --- a/src/physics/advanced/constraints/RotationalVelocityEquation.js +++ b/src/physics/advanced/constraints/RotationalVelocityEquation.js @@ -13,58 +13,20 @@ module.exports = RotationalVelocityEquation; * @param {Body} bj */ function RotationalVelocityEquation(bi,bj){ - Equation.call(this,bi,bj,-1e6,1e6); + Equation.call(this,bi,bj,-Number.MAX_VALUE,Number.MAX_VALUE); this.relativeVelocity = 1; this.ratio = 1; }; RotationalVelocityEquation.prototype = new Equation(); RotationalVelocityEquation.prototype.constructor = RotationalVelocityEquation; RotationalVelocityEquation.prototype.computeB = function(a,b,h){ - var bi = this.bi, - bj = this.bj, - vi = bi.velocity, - wi = bi.angularVelocity, - taui = bi.angularForce, - vj = bj.velocity, - wj = bj.angularVelocity, - tauj = bj.angularForce, - invIi = bi.invInertia, - invIj = bj.invInertia, - Gq = 0, - GW = this.ratio * wj - wi + this.relativeVelocity, - GiMf = invIj*tauj - invIi*taui; + var G = this.G; + G[2] = -1; + G[5] = this.ratio; - var B = - Gq * a - GW * b - h*GiMf; + var GiMf = this.computeGiMf(); + var GW = this.computeGW() + this.relativeVelocity; + var B = - GW * b - h*GiMf; return B; }; - -// Compute C = GMG+eps in the SPOOK equation -RotationalVelocityEquation.prototype.computeC = function(eps){ - var bi = this.bi, - bj = this.bj; - - var C = bi.invInertia + bj.invInertia + eps; - - return C; -}; -var computeGWlambda_ulambda = vec2.create(); -RotationalVelocityEquation.prototype.computeGWlambda = function(){ - var bi = this.bi, - bj = this.bj; - - var GWlambda = bj.wlambda - bi.wlambda; - - return GWlambda; -}; - -var addToWlambda_temp = vec2.create(); -RotationalVelocityEquation.prototype.addToWlambda = function(deltalambda){ - var bi = this.bi, - bj = this.bj; - - // Add to angular velocity - bi.wlambda -= bi.invInertia * deltalambda; - bj.wlambda += bj.invInertia * deltalambda; -}; - diff --git a/src/physics/advanced/events/EventEmitter.js b/src/physics/advanced/events/EventEmitter.js index 35bfbc7df..576d20249 100644 --- a/src/physics/advanced/events/EventEmitter.js +++ b/src/physics/advanced/events/EventEmitter.js @@ -11,12 +11,12 @@ EventEmitter.prototype = { constructor: EventEmitter, /** - * Add an event listener - * @method on - * @param {String} type - * @param {Function} listener - * @return {EventEmitter} The self object, for chainability. - */ + * Add an event listener + * @method on + * @param {String} type + * @param {Function} listener + * @return {EventEmitter} The self object, for chainability. + */ on: function ( type, listener ) { if ( this._listeners === undefined ) this._listeners = {}; var listeners = this._listeners; @@ -30,12 +30,12 @@ EventEmitter.prototype = { }, /** - * Check if an event listener is added - * @method has - * @param {String} type - * @param {Function} listener - * @return {Boolean} - */ + * Check if an event listener is added + * @method has + * @param {String} type + * @param {Function} listener + * @return {Boolean} + */ has: function ( type, listener ) { if ( this._listeners === undefined ) return false; var listeners = this._listeners; @@ -46,12 +46,12 @@ EventEmitter.prototype = { }, /** - * Remove an event listener - * @method off - * @param {String} type - * @param {Function} listener - * @return {EventEmitter} The self object, for chainability. - */ + * Remove an event listener + * @method off + * @param {String} type + * @param {Function} listener + * @return {EventEmitter} The self object, for chainability. + */ off: function ( type, listener ) { if ( this._listeners === undefined ) return; var listeners = this._listeners; @@ -63,12 +63,12 @@ EventEmitter.prototype = { }, /** - * Emit an event. - * @method emit - * @param {Object} event - * @param {String} event.type - * @return {EventEmitter} The self object, for chainability. - */ + * Emit an event. + * @method emit + * @param {Object} event + * @param {String} event.type + * @return {EventEmitter} The self object, for chainability. + */ emit: function ( event ) { if ( this._listeners === undefined ) return; var listeners = this._listeners; diff --git a/src/physics/advanced/material/ContactMaterial.js b/src/physics/advanced/material/ContactMaterial.js index 0577e6081..5824646ca 100644 --- a/src/physics/advanced/material/ContactMaterial.js +++ b/src/physics/advanced/material/ContactMaterial.js @@ -17,65 +17,65 @@ function ContactMaterial(materialA, materialB, options){ options = options || {}; /** - * The contact material identifier - * @property id - * @type {Number} - */ + * The contact material identifier + * @property id + * @type {Number} + */ this.id = idCounter++; /** - * First material participating in the contact material - * @property materialA - * @type {Material} - */ + * First material participating in the contact material + * @property materialA + * @type {Material} + */ this.materialA = materialA; /** - * Second material participating in the contact material - * @property materialB - * @type {Material} - */ + * Second material participating in the contact material + * @property materialB + * @type {Material} + */ this.materialB = materialB; /** - * Friction to use in the contact of these two materials - * @property friction - * @type {Number} - */ + * Friction to use in the contact of these two materials + * @property friction + * @type {Number} + */ this.friction = typeof(options.friction) !== "undefined" ? Number(options.friction) : 0.3; /** - * Restitution to use in the contact of these two materials - * @property restitution - * @type {Number} - */ - this.restitution = typeof(options.restitution) !== "undefined" ? Number(options.restitution) : 0.3; + * Restitution to use in the contact of these two materials + * @property restitution + * @type {Number} + */ + this.restitution = typeof(options.restitution) !== "undefined" ? Number(options.restitution) : 0.0; /** - * Stiffness of the resulting ContactEquation that this ContactMaterial generate - * @property stiffness - * @type {Number} - */ + * Stiffness of the resulting ContactEquation that this ContactMaterial generate + * @property stiffness + * @type {Number} + */ this.stiffness = typeof(options.stiffness) !== "undefined" ? Number(options.stiffness) : 1e7; /** - * Relaxation of the resulting ContactEquation that this ContactMaterial generate - * @property relaxation - * @type {Number} - */ + * Relaxation of the resulting ContactEquation that this ContactMaterial generate + * @property relaxation + * @type {Number} + */ this.relaxation = typeof(options.relaxation) !== "undefined" ? Number(options.relaxation) : 3; /** - * Stiffness of the resulting FrictionEquation that this ContactMaterial generate - * @property frictionStiffness - * @type {Number} - */ + * Stiffness of the resulting FrictionEquation that this ContactMaterial generate + * @property frictionStiffness + * @type {Number} + */ this.frictionStiffness = typeof(options.frictionStiffness) !== "undefined" ? Number(options.frictionStiffness) : 1e7; /** - * Relaxation of the resulting FrictionEquation that this ContactMaterial generate - * @property frictionRelaxation - * @type {Number} - */ + * Relaxation of the resulting FrictionEquation that this ContactMaterial generate + * @property frictionRelaxation + * @type {Number} + */ this.frictionRelaxation = typeof(options.frictionRelaxation) !== "undefined" ? Number(options.frictionRelaxation) : 3; }; diff --git a/src/physics/advanced/material/Material.js b/src/physics/advanced/material/Material.js index 7ae21ea2d..7c878dd9e 100644 --- a/src/physics/advanced/material/Material.js +++ b/src/physics/advanced/material/Material.js @@ -11,9 +11,9 @@ var idCounter = 0; */ function Material(){ /** - * The material identifier - * @property id - * @type {Number} - */ + * The material identifier + * @property id + * @type {Number} + */ this.id = idCounter++; }; diff --git a/src/physics/advanced/math/polyk.js b/src/physics/advanced/math/polyk.js index 6f4b4d5f4..1431d9094 100644 --- a/src/physics/advanced/math/polyk.js +++ b/src/physics/advanced/math/polyk.js @@ -194,7 +194,7 @@ i++; } } - if(iscs.length === 0) return [p.slice(0)]; + if(iscs.length == 0) return [p.slice(0)]; var comp = function(u,v) {return PolyK._P.dist(a,u) - PolyK._P.dist(a,v); } iscs.sort(comp); @@ -226,7 +226,7 @@ ps = PolyK._getPoints(ps, ind1, ind0); i0.flag = i1.flag = false; iscs.splice(0,2); - if(iscs.length === 0) pgs.push(ps); + if(iscs.length == 0) pgs.push(ps); } else { dir++; iscs.reverse(); } if(dir>1) break; @@ -402,7 +402,7 @@ var day = (a1.y-a2.y), dby = (b1.y-b2.y); var Den = dax*dby - day*dbx; - if (Den === 0) return null; // parallel + if (Den == 0) return null; // parallel var A = (a1.x * a2.y - a1.y * a2.x); var B = (b1.x * b2.y - b1.y * b2.x); @@ -424,7 +424,7 @@ var day = (a1.y-a2.y), dby = (b1.y-b2.y); var Den = dax*dby - day*dbx; - if (Den === 0) return null; // parallel + if (Den == 0) return null; // parallel var A = (a1.x * a2.y - a1.y * a2.x); var B = (b1.x * b2.y - b1.y * b2.x); @@ -472,6 +472,6 @@ PolyK._tp = []; for(var i=0; i<10; i++) PolyK._tp.push(new PolyK._P(0,0)); - */ + */ module.exports = PolyK; diff --git a/src/physics/advanced/objects/Body.js b/src/physics/advanced/objects/Body.js index 701df13df..e24c40cb4 100644 --- a/src/physics/advanced/objects/Body.js +++ b/src/physics/advanced/objects/Body.js @@ -1,4 +1,6 @@ -var vec2 = require('../math/vec2'); +var vec2 = require('../math/vec2') +, decomp = require('poly-decomp') +, Convex = require('../shapes/Convex') module.exports = Body; @@ -25,156 +27,176 @@ function Body(options){ options = options || {}; /** - * The body identifyer - * @property id - * @type {Number} - */ + * The body identifyer + * @property id + * @type {Number} + */ this.id = ++Body._idCounter; /** - * The shapes of the body. The local transform of the shape in .shapes[i] is - * defined by .shapeOffsets[i] and .shapeAngles[i]. - * - * @property shapes - * @type {Array} - */ + * The shapes of the body. The local transform of the shape in .shapes[i] is + * defined by .shapeOffsets[i] and .shapeAngles[i]. + * + * @property shapes + * @type {Array} + */ this.shapes = []; /** - * The local shape offsets, relative to the body center of mass. This is an - * array of Float32Array. - * @property shapeOffsets - * @type {Array} - */ + * The local shape offsets, relative to the body center of mass. This is an + * array of Float32Array. + * @property shapeOffsets + * @type {Array} + */ this.shapeOffsets = []; /** - * The body-local shape angle transforms. This is an array of numbers (angles). - * @property shapeAngles - * @type {Array} - */ + * The body-local shape angle transforms. This is an array of numbers (angles). + * @property shapeAngles + * @type {Array} + */ this.shapeAngles = []; /** - * The mass of the body. - * @property mass - * @type {number} - */ + * The mass of the body. + * @property mass + * @type {number} + */ this.mass = options.mass || 0; /** - * The inverse mass of the body. - * @property invMass - * @type {number} - */ + * The inverse mass of the body. + * @property invMass + * @type {number} + */ this.invMass = 0; /** - * The inertia of the body around the Z axis. - * @property inertia - * @type {number} - */ + * The inertia of the body around the Z axis. + * @property inertia + * @type {number} + */ this.inertia = 0; /** - * The inverse inertia of the body. - * @property invInertia - * @type {number} - */ + * The inverse inertia of the body. + * @property invInertia + * @type {number} + */ this.invInertia = 0; this.updateMassProperties(); /** - * The position of the body - * @property position - * @type {Float32Array} - */ + * The position of the body + * @property position + * @type {Float32Array} + */ this.position = vec2.fromValues(0,0); if(options.position) vec2.copy(this.position, options.position); /** - * The velocity of the body - * @property velocity - * @type {Float32Array} - */ + * The velocity of the body + * @property velocity + * @type {Float32Array} + */ this.velocity = vec2.fromValues(0,0); if(options.velocity) vec2.copy(this.velocity, options.velocity); /** - * Constraint velocity that was added to the body during the last step. - * @property vlambda - * @type {Float32Array} - */ + * Constraint velocity that was added to the body during the last step. + * @property vlambda + * @type {Float32Array} + */ this.vlambda = vec2.fromValues(0,0); /** - * Angular constraint velocity that was added to the body during last step. - * @property wlambda - * @type {Float32Array} - */ + * Angular constraint velocity that was added to the body during last step. + * @property wlambda + * @type {Float32Array} + */ this.wlambda = 0; /** - * The angle of the body - * @property angle - * @type {number} - */ + * The angle of the body + * @property angle + * @type {number} + */ this.angle = options.angle || 0; /** - * The angular velocity of the body - * @property angularVelocity - * @type {number} - */ + * The angular velocity of the body + * @property angularVelocity + * @type {number} + */ this.angularVelocity = options.angularVelocity || 0; /** - * The force acting on the body - * @property force - * @type {Float32Array} - */ + * The force acting on the body + * @property force + * @type {Float32Array} + */ this.force = vec2.create(); if(options.force) vec2.copy(this.force, options.force); /** - * The angular force acting on the body - * @property angularForce - * @type {number} - */ + * The angular force acting on the body + * @property angularForce + * @type {number} + */ this.angularForce = options.angularForce || 0; /** - * The type of motion this body has. Should be one of: Body.STATIC (the body - * does not move), Body.DYNAMIC (body can move and respond to collisions) - * and Body.KINEMATIC (only moves according to its .velocity). - * - * @property motionState - * @type {number} - * - * @example - * // This body will move and interact with other bodies - * var dynamicBody = new Body(); - * dynamicBody.motionState = Body.DYNAMIC; - * - * @example - * // This body will not move at all - * var staticBody = new Body(); - * staticBody.motionState = Body.STATIC; - * - * @example - * // This body will only move if you change its velocity - * var kinematicBody = new Body(); - * kinematicBody.motionState = Body.KINEMATIC; - */ - this.motionState = this.mass === 0 ? Body.STATIC : Body.DYNAMIC; + * The linear damping acting on the body in the velocity direction + * @property damping + * @type {Number} + */ + this.damping = typeof(options.damping)=="number" ? options.damping : 0.1; /** - * Bounding circle radius - * @property boundingRadius - * @type {Number} - */ + * The angular force acting on the body + * @property angularDamping + * @type {Number} + */ + this.angularDamping = typeof(options.angularDamping)=="number" ? options.angularDamping : 0.1; + + /** + * The type of motion this body has. Should be one of: Body.STATIC (the body + * does not move), Body.DYNAMIC (body can move and respond to collisions) + * and Body.KINEMATIC (only moves according to its .velocity). + * + * @property motionState + * @type {number} + * + * @example + * // This body will move and interact with other bodies + * var dynamicBody = new Body(); + * dynamicBody.motionState = Body.DYNAMIC; + * + * @example + * // This body will not move at all + * var staticBody = new Body(); + * staticBody.motionState = Body.STATIC; + * + * @example + * // This body will only move if you change its velocity + * var kinematicBody = new Body(); + * kinematicBody.motionState = Body.KINEMATIC; + */ + this.motionState = this.mass == 0 ? Body.STATIC : Body.DYNAMIC; + + /** + * Bounding circle radius + * @property boundingRadius + * @type {Number} + */ this.boundingRadius = 0; + + this.concavePath = null; + + this.lastDampingScale = 1; + this.lastAngularDampingScale = 1; + this.lastDampingTimeStep = -1; }; Body._idCounter = 0; @@ -225,6 +247,15 @@ Body.prototype.updateBoundingRadius = function(){ * body.addShape(shape,[0,1],Math.PI/2); */ Body.prototype.addShape = function(shape,offset,angle){ + angle = angle || 0.0; + + // Copy the offset vector + if(offset){ + offset = vec2.fromValues(offset[0],offset[1]); + } else { + offset = vec2.fromValues(0,0); + } + this.shapes .push(shape); this.shapeOffsets.push(offset); this.shapeAngles .push(angle); @@ -232,6 +263,24 @@ Body.prototype.addShape = function(shape,offset,angle){ this.updateBoundingRadius(); }; +/** + * Remove a shape + * @method removeShape + * @param {Shape} shape + * @return {Boolean} True if the shape was found and removed, else false. + */ +Body.prototype.removeShape = function(shape){ + var idx = this.shapes.indexOf(shape); + + if(idx != -1){ + this.shapes.splice(idx,1); + this.shapeOffsets.splice(idx,1); + this.shapeAngles.splice(idx,1); + return true; + } else + return false; +}; + /** * Updates .inertia, .invMass, .invInertia for this Body. Should be called when * changing the structure or mass of the Body. @@ -305,6 +354,175 @@ Body.prototype.toWorldFrame = function(out, localPoint){ vec2.toGlobalFrame(out, localPoint, this.position, this.angle); }; +/** + * Reads a polygon shape path, and assembles convex shapes from that and puts them at proper offset points. + * @method fromPolygon + * @param {Array} path An array of 2d vectors, e.g. [[0,0],[0,1],...] that resembles a concave or convex polygon. The shape must be simple and without holes. + * @param {Object} [options] + * @param {Boolean} [options.optimalDecomp=false] Set to true if you need optimal decomposition. Warning: very slow for polygons with more than 10 vertices. + * @param {Boolean} [options.skipSimpleCheck=false] Set to true if you already know that the path is not intersecting itself. + * @param {Boolean|Number} [options.removeCollinearPoints=false] Set to a number (angle threshold value) to remove collinear points, or false to keep all points. + * @return {Boolean} True on success, else false. + */ +Body.prototype.fromPolygon = function(path,options){ + options = options || {}; + + // Remove all shapes + for(var i=this.shapes.length; i>=0; --i) + this.removeShape(this.shapes[i]); + + var p = new decomp.Polygon(); + p.vertices = path; + + // Make it counter-clockwise + p.makeCCW(); + + if(typeof(options.removeCollinearPoints)=="number"){ + p.removeCollinearPoints(options.removeCollinearPoints); + } + + // Check if any line segment intersects the path itself + if(typeof(options.skipSimpleCheck) == "undefined"){ + if(!p.isSimple()) return false; + } + + // Save this path for later + this.concavePath = p.vertices.slice(0); + for(var i=0; ithis for details. + * @method applyDamping + * @param {number} dt Current time step + */ +Body.prototype.applyDamping = function(dt){ + if(this.motionState & Body.DYNAMIC){ // Only for dynamic bodies + + // Since Math.pow generates garbage we check if we can reuse the scaling coefficient from last step + if(dt != this.lastDampingTimeStep){ + this.lastDampingScale = Math.pow(1.0 - this.damping,dt); + this.lastAngularDampingScale = Math.pow(1.0 - this.angularDamping,dt); + this.lastDampingTimeStep = dt; + } + + var v = this.velocity; + vec2.scale(v,v,this.lastDampingScale); + this.angularVelocity *= this.lastAngularDampingScale; + } +}; + /** * Dynamic body. * @property DYNAMIC diff --git a/src/physics/advanced/objects/Spring.js b/src/physics/advanced/objects/Spring.js index 8105a9c5a..44f7131cc 100644 --- a/src/physics/advanced/objects/Spring.js +++ b/src/physics/advanced/objects/Spring.js @@ -22,52 +22,52 @@ function Spring(bodyA,bodyB,options){ options = options || {}; /** - * Rest length of the spring. - * @property restLength - * @type {number} - */ + * Rest length of the spring. + * @property restLength + * @type {number} + */ this.restLength = typeof(options.restLength)=="number" ? options.restLength : 1; /** - * Stiffness of the spring. - * @property stiffness - * @type {number} - */ + * Stiffness of the spring. + * @property stiffness + * @type {number} + */ this.stiffness = options.stiffness || 100; /** - * Damping of the spring. - * @property damping - * @type {number} - */ + * Damping of the spring. + * @property damping + * @type {number} + */ this.damping = options.damping || 1; /** - * First connected body. - * @property bodyA - * @type {Body} - */ + * First connected body. + * @property bodyA + * @type {Body} + */ this.bodyA = bodyA; /** - * Second connected body. - * @property bodyB - * @type {Body} - */ + * Second connected body. + * @property bodyB + * @type {Body} + */ this.bodyB = bodyB; /** - * Anchor for bodyA in local bodyA coordinates. - * @property localAnchorA - * @type {Array} - */ + * Anchor for bodyA in local bodyA coordinates. + * @property localAnchorA + * @type {Array} + */ this.localAnchorA = vec2.fromValues(0,0); /** - * Anchor for bodyB in local bodyB coordinates. - * @property localAnchorB - * @type {Array} - */ + * Anchor for bodyB in local bodyB coordinates. + * @property localAnchorB + * @type {Array} + */ this.localAnchorB = vec2.fromValues(0,0); if(options.localAnchorA) vec2.copy(this.localAnchorA, options.localAnchorA); diff --git a/src/physics/advanced/p2.js b/src/physics/advanced/p2.js index 10be36dad..00b27f83d 100644 --- a/src/physics/advanced/p2.js +++ b/src/physics/advanced/p2.js @@ -17,11 +17,12 @@ module.exports = { Island : require('./solver/IslandSolver'), IslandSolver : require('./solver/IslandSolver'), Line : require('./shapes/Line'), + LockConstraint : require('./constraints/LockConstraint'), Material : require('./material/Material'), NaiveBroadphase : require('./collision/NaiveBroadphase'), Particle : require('./shapes/Particle'), Plane : require('./shapes/Plane'), - PointToPointConstraint : require('./constraints/PointToPointConstraint'), + RevoluteConstraint : require('./constraints/RevoluteConstraint'), PrismaticConstraint : require('./constraints/PrismaticConstraint'), Rectangle : require('./shapes/Rectangle'), RotationalVelocityEquation : require('./constraints/RotationalVelocityEquation'), diff --git a/src/physics/advanced/serializer/Serializer.js b/src/physics/advanced/serializer/Serializer.js new file mode 100644 index 000000000..81f80e237 --- /dev/null +++ b/src/physics/advanced/serializer/Serializer.js @@ -0,0 +1,146 @@ +var World = require('../world/World') + +var num = { type:"number", required:true }; + +/* + * Serialize a World instance to JSON + * @method serialize + * @param {World} world + * @return {Object} + */ +exports.serialize = function(world){ + return {}; +}; + +/* + * Load a World instance from JSON + * @param {Object} json + * @return {World} + */ +exports.deserialize = function(json){ + var world = new World(); + return world; +}; + +var schemas = exports.schemas = {}; + +schemas['0.3.0'] = { + type: "object", + additionalProperties:false, + properties: { + gravity: { $ref:"vec2" }, + p2: { type:"string", pattern:"^0.3$", required:true }, + solver: { type:"object", required:true }, + broadphase: { type:"object", required:true }, + bodies: { + type:"array", + required:true, + additionalItems:false, + items:{ + type:"object", + additionalProperties:false, + properties:{ + id : num, + mass : num, + angle : num, + position : { $ref:"vec2" }, + velocity : { $ref:"vec2" }, + angularVelocity : num, + force : { $ref:"vec2" }, + shapes : { required:true, type:"array" }, + concavePath : { required:true, type:["array","null"] }, + }, + } + }, + springs: { + type:"array", + required:true, + additionalItems:false, + items:{ + type:"object", + additionalProperties:false, + properties:{ + bodyA : num, + bodyB : num, + stiffness : num, + damping : num, + restLength : num, + localAnchorA : { $ref:"vec2" }, + localAnchorB : { $ref:"vec2" }, + }, + }, + }, + constraints: { + type:"array", + required:true, + items:[{ + type:"object", + additionalProperties:false, + properties:{ + bodyA: num, + bodyB: num, + type: { type:"string", match:"^DistanceConstraint$" }, + distance: num, + maxForce: num, + }, + },{ + type:"object", + additionalProperties:false, + properties:{ + bodyA: num, + bodyB: num, + type: { type:"string", match:"^PrismaticConstraint$" }, + localAxisA: { $ref:"vec2" }, + localAxisB: { $ref:"vec2" }, + maxForce: num, + }, + },{ + type:"object", + additionalProperties:false, + properties:{ + bodyA: num, + bodyB: num, + type: { type:"string", match:'^RevoluteConstraint$' }, + pivotA: { $ref:"vec2" }, + pivotB: { $ref:"vec2" }, + maxForce: num, + motorSpeed: { type:["number","boolean"] }, + lowerLimit: num, + lowerLimitEnabled: { type:"boolean" }, + upperLimit: num, + upperLimitEnabled: { type:"boolean" }, + }, + }], + }, + contactMaterials: { + type:"array", + required:true, + additionalItems:false, + items: { + properties : { + id: num, + materialA: num, + materialB: num, + friction: num, + restitution: num, + stiffness: num, + relaxation: num, + frictionStiffness: num, + frictionRelaxation: num, + } + } + }, + } +}; + +exports.vec2 = { + id: "/vec2", + type:"array", + maxItems:2, + minItems:2, + items:{ + type:"number", + }, + additionalItems:false, + required:true, +}; diff --git a/src/physics/advanced/shapes/Circle.js b/src/physics/advanced/shapes/Circle.js index 9c2a1aeb6..736ddda65 100644 --- a/src/physics/advanced/shapes/Circle.js +++ b/src/physics/advanced/shapes/Circle.js @@ -7,15 +7,15 @@ module.exports = Circle; * @class Circle * @extends {Shape} * @constructor - * @param {number} radius + * @param {number} radius The radius of this circle */ function Circle(radius){ /** - * The radius of the circle. - * @property radius - * @type {number} - */ + * The radius of the circle. + * @property radius + * @type {number} + */ this.radius = radius || 1; Shape.call(this,Shape.CIRCLE); diff --git a/src/physics/advanced/shapes/Convex.js b/src/physics/advanced/shapes/Convex.js index 61c4912d3..8a5915422 100644 --- a/src/physics/advanced/shapes/Convex.js +++ b/src/physics/advanced/shapes/Convex.js @@ -1,6 +1,7 @@ var Shape = require('./Shape') , vec2 = require('../math/vec2') , polyk = require('../math/polyk') +, decomp = require('poly-decomp') module.exports = Convex; @@ -14,24 +15,31 @@ module.exports = Convex; function Convex(vertices){ /** - * Vertices defined in the local frame. - * @property vertices - * @type {Array} - */ + * Vertices defined in the local frame. + * @property vertices + * @type {Array} + */ this.vertices = vertices || []; + // Copy the verts + for(var i=0; i h=2*a/b - // Get inertia for this triangle: http://answers.yahoo.com/question/index?qid=20080721030038AA3oE1m - var I_triangle = (base * (Math.pow(height,3))) / 36; - // Get mass for the triangle - var m = base*height/2 * density; + var m = area_triangle * density; + + // Get inertia for this triangle: http://answers.yahoo.com/question/index?qid=20080721030038AA3oE1m + var I_triangle = m*(base * (Math.pow(height,3))) / 36; // Add to total inertia using parallel axis theorem var r2 = vec2.squaredLength(centroid); @@ -211,3 +230,26 @@ Convex.prototype.updateBoundingRadius = function(){ this.boundingRadius = Math.sqrt(r2); }; +/** + * Update the .area + * @method updateArea + */ +Convex.prototype.updateArea = function(){ + this.updateTriangles(); + this.area = 0; + + var triangles = this.triangles, + verts = this.vertices; + for(var i=0; i!==triangles.length; i++){ + var t = triangles[i], + a = verts[t[0]], + b = verts[t[1]], + c = verts[t[2]]; + + // Get mass for the triangle (density=1 in this case) + // http://math.stackexchange.com/questions/80198/area-of-triangle-via-vectors + var m = decomp.Point.area(a,b,c) + this.area += m; + } +}; + diff --git a/src/physics/advanced/shapes/Line.js b/src/physics/advanced/shapes/Line.js index 630523eb1..5a19c33ef 100644 --- a/src/physics/advanced/shapes/Line.js +++ b/src/physics/advanced/shapes/Line.js @@ -5,16 +5,17 @@ module.exports = Line; /** * Line shape class. The line shape is along the x direction, and stretches from [-length/2, 0] to [length/2,0]. * @class Line + * @param {Number} length The total length of the line * @extends {Shape} * @constructor */ function Line(length){ /** - * Length of this line - * @property length - * @type {Number} - */ + * Length of this line + * @property length + * @type {Number} + */ this.length = length; Shape.call(this,Shape.LINE); diff --git a/src/physics/advanced/shapes/Plane.js b/src/physics/advanced/shapes/Plane.js index 187adcc7b..7433c4c97 100644 --- a/src/physics/advanced/shapes/Plane.js +++ b/src/physics/advanced/shapes/Plane.js @@ -12,10 +12,19 @@ function Plane(){ Shape.call(this,Shape.PLANE); }; Plane.prototype = new Shape(); + +/** + * Compute moment of inertia + * @method computeMomentOfInertia + */ Plane.prototype.computeMomentOfInertia = function(mass){ return 0; // Plane is infinite. The inertia should therefore be infinty but by convention we set 0 here }; +/** + * Update the bounding radius + * @method updateBoundingRadius + */ Plane.prototype.updateBoundingRadius = function(){ this.boundingRadius = Number.MAX_VALUE; }; diff --git a/src/physics/advanced/shapes/Rectangle.js b/src/physics/advanced/shapes/Rectangle.js index 6c4c4507d..35e205726 100644 --- a/src/physics/advanced/shapes/Rectangle.js +++ b/src/physics/advanced/shapes/Rectangle.js @@ -8,6 +8,8 @@ module.exports = Rectangle; * Rectangle shape class. * @class Rectangle * @constructor + * @param {Number} w Width + * @param {Number} h Height * @extends {Convex} */ function Rectangle(w,h){ @@ -16,7 +18,18 @@ function Rectangle(w,h){ vec2.fromValues( w/2, h/2), vec2.fromValues(-w/2, h/2)]; + /** + * Total width of the rectangle + * @property width + * @type {Number} + */ this.width = w; + + /** + * Total height of the rectangle + * @property height + * @type {Number} + */ this.height = h; Convex.call(this,verts); @@ -35,6 +48,10 @@ Rectangle.prototype.computeMomentOfInertia = function(mass){ return mass * (h*h + w*w) / 12; }; +/** + * Update the bounding radius + * @method updateBoundingRadius + */ Rectangle.prototype.updateBoundingRadius = function(){ var w = this.width, h = this.height; diff --git a/src/physics/advanced/shapes/Shape.js b/src/physics/advanced/shapes/Shape.js index b0a9d7088..2f79f19a5 100644 --- a/src/physics/advanced/shapes/Shape.js +++ b/src/physics/advanced/shapes/Shape.js @@ -9,57 +9,66 @@ function Shape(type){ this.type = type; /** - * Bounding circle radius of this shape - * @property boundingRadius - * @type {Number} - */ + * Bounding circle radius of this shape + * @property boundingRadius + * @type {Number} + */ this.boundingRadius = 0; /** - * Collision group that this shape belongs to (bit mask). See this tutorial. - * @property collisionGroup - * @type {Number} - * @example - * // Setup bits for each available group - * var PLAYER = Math.pow(2,0), - * ENEMY = Math.pow(2,1), - * GROUND = Math.pow(2,2) - * - * // Put shapes into their groups - * player1Shape.collisionGroup = PLAYER; - * player2Shape.collisionGroup = PLAYER; - * enemyShape .collisionGroup = ENEMY; - * groundShape .collisionGroup = GROUND; - * - * // Assign groups that each shape collide with. - * // Note that the players can collide with ground and enemies, but not with other players. - * player1Shape.collisionMask = ENEMY | GROUND; - * player2Shape.collisionMask = ENEMY | GROUND; - * enemyShape .collisionMask = PLAYER | GROUND; - * groundShape .collisionMask = PLAYER | ENEMY; - * - * @example - * // How collision check is done - * if(shapeA.collisionGroup & shapeB.collisionMask)!=0 && (shapeB.collisionGroup & shapeA.collisionMask)!=0){ - * // The shapes will collide - * } - */ + * Collision group that this shape belongs to (bit mask). See this tutorial. + * @property collisionGroup + * @type {Number} + * @example + * // Setup bits for each available group + * var PLAYER = Math.pow(2,0), + * ENEMY = Math.pow(2,1), + * GROUND = Math.pow(2,2) + * + * // Put shapes into their groups + * player1Shape.collisionGroup = PLAYER; + * player2Shape.collisionGroup = PLAYER; + * enemyShape .collisionGroup = ENEMY; + * groundShape .collisionGroup = GROUND; + * + * // Assign groups that each shape collide with. + * // Note that the players can collide with ground and enemies, but not with other players. + * player1Shape.collisionMask = ENEMY | GROUND; + * player2Shape.collisionMask = ENEMY | GROUND; + * enemyShape .collisionMask = PLAYER | GROUND; + * groundShape .collisionMask = PLAYER | ENEMY; + * + * @example + * // How collision check is done + * if(shapeA.collisionGroup & shapeB.collisionMask)!=0 && (shapeB.collisionGroup & shapeA.collisionMask)!=0){ + * // The shapes will collide + * } + */ this.collisionGroup = 1; /** - * Collision mask of this shape. See .collisionGroup. - * @property collisionMask - * @type {Number} - */ + * Collision mask of this shape. See .collisionGroup. + * @property collisionMask + * @type {Number} + */ this.collisionMask = 1; if(type) this.updateBoundingRadius(); /** - * Material to use in collisions for this Shape. If this is set to null, the world will use default material properties instead. - * @property material - * @type {Material} - */ + * Material to use in collisions for this Shape. If this is set to null, the world will use default material properties instead. + * @property material + * @type {Material} + */ this.material = null; + + /** + * Area of this shape. + * @property area + * @type {Number} + */ + this.area = 0; + + this.updateArea(); }; Shape.CIRCLE = 1; @@ -88,3 +97,11 @@ Shape.prototype.computeMomentOfInertia = function(mass){ Shape.prototype.updateBoundingRadius = function(){ throw new Error("Shape.updateBoundingRadius is not implemented in this Shape..."); }; + +/** + * Update the .area property of the shape. + * @method updateArea + */ +Shape.prototype.updateArea = function(){ + // To be implemented in all subclasses +}; diff --git a/src/physics/advanced/solver/GSSolver.js b/src/physics/advanced/solver/GSSolver.js index b5f6e7614..5925d7c55 100644 --- a/src/physics/advanced/solver/GSSolver.js +++ b/src/physics/advanced/solver/GSSolver.js @@ -1,10 +1,10 @@ -var vec2 = require('../math/vec2'), - Solver = require('./Solver'); +var vec2 = require('../math/vec2') +, Solver = require('./Solver') +, Utils = require('../utils/Utils') +, FrictionEquation = require('../constraints/FrictionEquation') module.exports = GSSolver; -var ARRAY_TYPE = Float32Array || Array; - /** * Iterative Gauss-Seidel constraint equation solver. * @@ -19,59 +19,66 @@ var ARRAY_TYPE = Float32Array || Array; * @param {Number} options.tolerance */ function GSSolver(options){ - Solver.call(this); + Solver.call(this,options); options = options || {}; - this.iterations = options.iterations || 10; - this.tolerance = options.tolerance || 0; - this.debug = options.debug || false; - this.arrayStep = 30; - this.lambda = new ARRAY_TYPE(this.arrayStep); - this.Bs = new ARRAY_TYPE(this.arrayStep); - this.invCs = new ARRAY_TYPE(this.arrayStep); /** - * Whether to use .stiffness and .relaxation parameters from the Solver instead of each Equation individually. - * @type {Boolean} - * @property useGlobalEquationParameters - */ + * The number of iterations to do when solving. More gives better results, but is more expensive. + * @property iterations + * @type {Number} + */ + this.iterations = options.iterations || 10; + + /** + * The error tolerance. If the total error is below this limit, the solver will stop. Set to zero for as good solution as possible. + * @property tolerance + * @type {Number} + */ + this.tolerance = options.tolerance || 0; + + this.debug = options.debug || false; + this.arrayStep = 30; + this.lambda = new Utils.ARRAY_TYPE(this.arrayStep); + this.Bs = new Utils.ARRAY_TYPE(this.arrayStep); + this.invCs = new Utils.ARRAY_TYPE(this.arrayStep); + + /** + * Whether to use .stiffness and .relaxation parameters from the Solver instead of each Equation individually. + * @type {Boolean} + * @property useGlobalEquationParameters + */ this.useGlobalEquationParameters = true; /** - * Global equation stiffness. - * @property stiffness - * @type {Number} - */ + * Global equation stiffness. Larger number gives harder contacts, etc, but may also be more expensive to compute, or it will make your simulation explode. + * @property stiffness + * @type {Number} + */ this.stiffness = 1e6; /** - * Global equation relaxation. - * @property relaxation - * @type {Number} - */ + * Global equation relaxation. This is the number of timesteps required for a constraint to be resolved. Larger number will give softer contacts. Set to around 3 or 4 for good enough results. + * @property relaxation + * @type {Number} + */ this.relaxation = 4; /** - * Set to true to set all right hand side terms to zero when solving. Can be handy for a few applications. - * @property useZeroRHS - * @type {Boolean} - */ + * Set to true to set all right hand side terms to zero when solving. Can be handy for a few applications. + * @property useZeroRHS + * @type {Boolean} + */ this.useZeroRHS = false; + + /** + * Number of friction iterations to skip. If .skipFrictionIterations=2, then no FrictionEquations will be iterated until the third iteration. + * @property skipFrictionIterations + * @type {Number} + */ + this.skipFrictionIterations = 2; }; GSSolver.prototype = new Solver(); -/** - * Set stiffness parameters - * - * @method setSpookParams - * @param {number} k - * @param {number} d - * @deprecated - */ -GSSolver.prototype.setSpookParams = function(k,d){ - this.stiffness = k; - this.relaxation = d; -}; - /** * Solve the system of equations * @method solve @@ -79,8 +86,12 @@ GSSolver.prototype.setSpookParams = function(k,d){ * @param {World} world World to solve */ GSSolver.prototype.solve = function(dt,world){ + + this.sortEquations(); + var iter = 0, maxIter = this.iterations, + skipFrictionIter = this.skipFrictionIterations, tolSquared = this.tolerance*this.tolerance, equations = this.equations, Neq = equations.length, @@ -99,9 +110,9 @@ GSSolver.prototype.solve = function(dt,world){ // Things that does not change during iteration can be computed once if(this.lambda.length < Neq){ - this.lambda = new ARRAY_TYPE(Neq + this.arrayStep); - this.Bs = new ARRAY_TYPE(Neq + this.arrayStep); - this.invCs = new ARRAY_TYPE(Neq + this.arrayStep); + this.lambda = new Utils.ARRAY_TYPE(Neq + this.arrayStep); + this.Bs = new Utils.ARRAY_TYPE(Neq + this.arrayStep); + this.invCs = new Utils.ARRAY_TYPE(Neq + this.arrayStep); } var invCs = this.invCs, Bs = this.Bs, @@ -130,9 +141,7 @@ GSSolver.prototype.solve = function(dt,world){ // Reset vlambda for(i=0; i!==Nbodies; i++){ - var b=bodies[i], vlambda=b.vlambda; - set(vlambda,0,0); - b.wlambda = 0; + bodies[i].resetConstraintVelocity(); } // Iterate over equations @@ -142,49 +151,59 @@ GSSolver.prototype.solve = function(dt,world){ deltalambdaTot = 0.0; for(j=0; j!==Neq; j++){ - c = equations[j]; + if(c instanceof FrictionEquation && iter < skipFrictionIter) + continue; + var _eps = useGlobalParams ? eps : c.eps; - // Compute iteration - maxForce = c.maxForce; - minForce = c.minForce; - - B = Bs[j]; - invC = invCs[j]; - lambdaj = lambda[j]; - GWlambda = c.computeGWlambda(_eps); - - if(useZeroRHS) B = 0; - - deltalambda = invC * ( B - GWlambda - _eps * lambdaj ); - - // Clamp if we are not within the min/max interval - lambdaj_plus_deltalambda = lambdaj + deltalambda; - if(lambdaj_plus_deltalambda < minForce){ - deltalambda = minForce - lambdaj; - } else if(lambdaj_plus_deltalambda > maxForce){ - deltalambda = maxForce - lambdaj; - } - lambda[j] += deltalambda; - - deltalambdaTot += Math.abs(deltalambda); - - c.addToWlambda(deltalambda); + var deltalambda = GSSolver.iterateEquation(j,c,_eps,Bs,invCs,lambda,useZeroRHS,dt); + if(tolSquared !== 0) deltalambdaTot += Math.abs(deltalambda); } // If the total error is small enough - stop iterate - if(deltalambdaTot*deltalambdaTot <= tolSquared) break; + if(tolSquared !== 0 && deltalambdaTot*deltalambdaTot <= tolSquared) break; } // Add result to velocity for(i=0; i!==Nbodies; i++){ - var b=bodies[i], v=b.velocity; - add( v, v, b.vlambda); - b.angularVelocity += b.wlambda; + bodies[i].addConstraintVelocity(); } } errorTot = deltalambdaTot; }; +GSSolver.iterateEquation = function(j,eq,eps,Bs,invCs,lambda,useZeroRHS,dt){ + // Compute iteration + var B = Bs[j], + invC = invCs[j], + lambdaj = lambda[j], + GWlambda = eq.computeGWlambda(eps); + + if(eq instanceof FrictionEquation){ + // Rescale the max friction force according to the normal force + eq.maxForce = eq.contactEquation.multiplier * eq.frictionCoefficient * dt; + eq.minForce = -eq.contactEquation.multiplier * eq.frictionCoefficient * dt; + } + + var maxForce = eq.maxForce, + minForce = eq.minForce; + + if(useZeroRHS) B = 0; + + var deltalambda = invC * ( B - GWlambda - eps * lambdaj ); + + // Clamp if we are not within the min/max interval + var lambdaj_plus_deltalambda = lambdaj + deltalambda; + if(lambdaj_plus_deltalambda < minForce){ + deltalambda = minForce - lambdaj; + } else if(lambdaj_plus_deltalambda > maxForce){ + deltalambda = maxForce - lambdaj; + } + lambda[j] += deltalambda; + eq.multiplier = lambda[j] / dt; + eq.addToWlambda(deltalambda); + + return deltalambda; +}; diff --git a/src/physics/advanced/solver/Island.js b/src/physics/advanced/solver/Island.js index ee5261ca6..b3c8635dd 100644 --- a/src/physics/advanced/solver/Island.js +++ b/src/physics/advanced/solver/Island.js @@ -8,17 +8,17 @@ module.exports = Island; function Island(){ /** - * Current equations in this island. - * @property equations - * @type {Array} - */ + * Current equations in this island. + * @property equations + * @type {Array} + */ this.equations = []; /** - * Current bodies in this island. - * @property bodies - * @type {Array} - */ + * Current bodies in this island. + * @property bodies + * @type {Array} + */ this.bodies = []; } diff --git a/src/physics/advanced/solver/IslandSolver.js b/src/physics/advanced/solver/IslandSolver.js index 73c5b79cb..a32dd9e78 100644 --- a/src/physics/advanced/solver/IslandSolver.js +++ b/src/physics/advanced/solver/IslandSolver.js @@ -12,30 +12,41 @@ module.exports = IslandSolver; * @class IslandSolver * @constructor * @param {Solver} subsolver + * @param {Object} options * @extends Solver */ -function IslandSolver(subsolver){ - Solver.call(this); +function IslandSolver(subsolver,options){ + Solver.call(this,options); var that = this; /** - * The solver used in the workers. - * @property subsolver - * @type {Solver} - */ + * The solver used in the workers. + * @property subsolver + * @type {Solver} + */ this.subsolver = subsolver; /** - * Number of islands - * @property numIslands - * @type {number} - */ + * Number of islands. Read only. + * @property numIslands + * @type {number} + */ this.numIslands = 0; // Pooling of node objects saves some GC load this._nodePool = []; + + /** + * Fires before an island is solved. + * @event beforeSolveIsland + * @param {Island} island + */ + this.beforeSolveIslandEvent = { + type : "beforeSolveIsland", + island : null, + }; }; -IslandSolver.prototype = new Object(Solver.prototype); +IslandSolver.prototype = new Solver(); function getUnvisitedNode(nodes){ var Nnodes = nodes.length; @@ -153,7 +164,11 @@ IslandSolver.prototype.solve = function(dt,world){ this.numIslands = n; // Solve islands + var e = this.beforeSolveIslandEvent; for(var i=0; i 0) - reducedMass = 1/reducedMass; - - var mu = this.defaultFriction; + var mu = this.defaultFriction, + restitution = 0.0; if(si.material && sj.material){ var cm = this.getContactMaterial(si.material,sj.material); if(cm){ mu = cm.friction; + restitution = cm.restitution; } } - var mug = mu * glen * reducedMass, - doFriction = mu > 0; - - // Get world position and angle of each shape - rotate(xiw, xi, bi.angle); - rotate(xjw, xj, bj.angle); - add(xiw, xiw, bi.position); - add(xjw, xjw, bj.position); - var aiw = ai + bi.angle; - var ajw = aj + bj.angle; - - // Run nearphase - np.enableFriction = mu > 0; - np.slipForce = mug; - if(si instanceof Circle){ - if(sj instanceof Circle) np.circleCircle (bi,si,xiw,aiw, bj,sj,xjw,ajw); - else if(sj instanceof Particle) np.circleParticle(bi,si,xiw,aiw, bj,sj,xjw,ajw); - else if(sj instanceof Plane) np.circlePlane (bi,si,xiw,aiw, bj,sj,xjw,ajw); - else if(sj instanceof Rectangle) np.circleConvex (bi,si,xiw,aiw, bj,sj,xjw,ajw); - else if(sj instanceof Convex) np.circleConvex (bi,si,xiw,aiw, bj,sj,xjw,ajw); - else if(sj instanceof Line) np.circleLine (bi,si,xiw,aiw, bj,sj,xjw,ajw); - else if(sj instanceof Capsule) np.circleCapsule (bi,si,xiw,aiw, bj,sj,xjw,ajw); - - } else if(si instanceof Particle){ - if(sj instanceof Circle) np.circleParticle (bj,sj,xjw,ajw, bi,si,xiw,aiw); - else if(sj instanceof Plane) np.particlePlane (bi,si,xiw,aiw, bj,sj,xjw,ajw); - else if(sj instanceof Rectangle) np.particleConvex (bi,si,xiw,aiw, bj,sj,xjw,ajw); - else if(sj instanceof Convex) np.particleConvex (bi,si,xiw,aiw, bj,sj,xjw,ajw); - else if(sj instanceof Capsule) np.particleCapsule (bi,si,xiw,aiw, bj,sj,xjw,ajw); - - } else if(si instanceof Plane){ - if(sj instanceof Circle) np.circlePlane (bj,sj,xjw,ajw, bi,si,xiw,aiw); - else if(sj instanceof Particle) np.particlePlane (bj,sj,xjw,ajw, bi,si,xiw,aiw); - else if(sj instanceof Rectangle) np.convexPlane (bj,sj,xjw,ajw, bi,si,xiw,aiw); - else if(sj instanceof Convex) np.convexPlane (bj,sj,xjw,ajw, bi,si,xiw,aiw); - else if(sj instanceof Line) np.planeLine (bi,si,xiw,aiw, bj,sj,xjw,ajw); - else if(sj instanceof Capsule) np.capsulePlane (bj,sj,xjw,ajw, bi,si,xiw,aiw); - - } else if(si instanceof Rectangle){ - if(sj instanceof Plane) np.convexPlane (bi,si,xiw,aiw, bj,sj,xjw,ajw); - else if(sj instanceof Circle) np.circleConvex (bj,sj,xjw,ajw, bi,si,xiw,aiw); - else if(sj instanceof Rectangle) np.convexConvex (bj,sj,xjw,ajw, bi,si,xiw,aiw); - else if(sj instanceof Convex) np.convexConvex (bj,sj,xjw,ajw, bi,si,xiw,aiw); - else if(sj instanceof Particle) np.particleConvex (bj,sj,xjw,ajw, bi,si,xiw,aiw); - - } else if(si instanceof Convex){ - if(sj instanceof Plane) np.convexPlane (bi,si,xiw,aiw, bj,sj,xjw,ajw); - else if(sj instanceof Circle) np.circleConvex (bj,sj,xjw,ajw, bi,si,xiw,aiw); - else if(sj instanceof Rectangle) np.convexConvex (bj,sj,xjw,ajw, bi,si,xiw,aiw); - else if(sj instanceof Convex) np.convexConvex (bi,si,xiw,aiw, bj,sj,xjw,ajw); - else if(sj instanceof Particle) np.particleConvex (bj,sj,xjw,ajw, bi,si,xiw,aiw); - - } else if(si instanceof Line){ - if(sj instanceof Circle) np.circleLine (bj,sj,xjw,ajw, bi,si,xiw,aiw); - else if(sj instanceof Plane) np.planeLine (bj,sj,xjw,ajw, bi,si,xiw,aiw); - - } else if(si instanceof Capsule){ - if(sj instanceof Plane) np.capsulePlane (bi,si,xiw,aiw, bj,sj,xjw,ajw); - if(sj instanceof Circle) np.circleCapsule (bj,sj,xjw,ajw, bi,si,xiw,aiw); - if(sj instanceof Particle) np.particleCapsule(bj,sj,xjw,ajw, bi,si,xiw,aiw); - - } + World.runNarrowphase(np,bi,si,xi,ai,bj,sj,xj,aj,mu,glen,restitution); } } } @@ -413,28 +430,13 @@ World.prototype.step = function(dt){ var body = bodies[i]; if(body.mass>0){ - var minv = body.invMass, - f = body.force, - pos = body.position, - velo = body.velocity; - - // Angular step - body.angularVelocity += body.angularForce * body.invInertia * dt; - body.angle += body.angularVelocity * dt; - - // Linear step - scale(fhMinv,f,dt*minv); - add(velo,fhMinv,velo); - scale(velodt,velo,dt); - add(pos,pos,velodt); + World.integrateBody(body,dt); } } // Reset force for(var i=0; i!==Nbodies; i++){ - var bi = bodies[i]; - vec2.set(bi.force,0.0,0.0); - bi.angularForce = 0.0; + bodies[i].setZeroForce(); } if(doProfiling){ @@ -442,9 +444,104 @@ World.prototype.step = function(dt){ that.lastStepTime = t1-t0; } + // Emit impact event + if(this.emitImpactEvent){ + var ev = this.impactEvent; + for(var i=0; i!==np.contactEquations.length; i++){ + var eq = np.contactEquations[i]; + if(eq.firstImpact){ + ev.bodyA = eq.bi; + ev.bodyB = eq.bj; + this.emit(ev); + } + } + } + + // Increment time + this.time += dt; + this.emit(this.postStepEvent); }; +var ib_fhMinv = vec2.create(); +var ib_velodt = vec2.create(); + +/** + * Move a body forward in time. + * @static + * @method integrateBody + * @param {Body} body + * @param {Number} dt + */ +World.integrateBody = function(body,dt){ + var minv = body.invMass, + f = body.force, + pos = body.position, + velo = body.velocity; + + // Angular step + body.angularVelocity += body.angularForce * body.invInertia * dt; + body.angle += body.angularVelocity * dt; + + // Linear step + vec2.scale(ib_fhMinv,f,dt*minv); + vec2.add(velo,ib_fhMinv,velo); + vec2.scale(ib_velodt,velo,dt); + vec2.add(pos,pos,ib_velodt); +}; + +/** + * Runs narrowphase for the shape pair i and j. + * @static + * @method runNarrowphase + * @param {Narrowphase} np + * @param {Body} bi + * @param {Shape} si + * @param {Array} xi + * @param {Number} ai + * @param {Body} bj + * @param {Shape} sj + * @param {Array} xj + * @param {Number} aj + * @param {Number} mu + * @param {Number} glen + */ +World.runNarrowphase = function(np,bi,si,xi,ai,bj,sj,xj,aj,mu,glen,restitution){ + + if(!((si.collisionGroup & sj.collisionMask) !== 0 && (sj.collisionGroup & si.collisionMask) !== 0)) + return; + + var reducedMass = bi.invMass + bj.invMass; + if(reducedMass > 0) + reducedMass = 1/reducedMass; + + var mug = mu * glen * reducedMass, + doFriction = mu > 0; + + // Get world position and angle of each shape + vec2.rotate(xiw, xi, bi.angle); + vec2.rotate(xjw, xj, bj.angle); + vec2.add(xiw, xiw, bi.position); + vec2.add(xjw, xjw, bj.position); + var aiw = ai + bi.angle; + var ajw = aj + bj.angle; + + // Run narrowphase + np.enableFriction = mu > 0; + np.slipForce = mug; + np.frictionCoefficient = mu; + np.restitution = restitution; + + var resolver = np[si.type | sj.type]; + if (resolver) { + if (si.type < sj.type) { + resolver.call(np, bi,si,xiw,aiw, bj,sj,xjw,ajw); + } else { + resolver.call(np, bj,sj,xjw,ajw, bi,si,xiw,aiw); + } + } +}; + /** * Add a spring to the simulation * @@ -498,10 +595,26 @@ World.prototype.removeBody = function(body){ if(idx!==-1){ this.bodies.splice(idx,1); this.removeBodyEvent.body = body; + body.resetConstraintVelocity(); this.emit(this.removeBodyEvent); } }; +/** + * Get a body by its id. + * @method getBodyById + * @return {Body|Boolean} The body, or false if it was not found. + */ +World.prototype.getBodyById = function(id){ + var bodies = this.bodies; + for(var i=0; i=0; i--){ @@ -801,6 +998,12 @@ World.prototype.clear = function(){ for(var i=springs.length-1; i>=0; i--){ this.removeSpring(springs[i]); } + + // Remove all contact materials + var cms = this.contactMaterials; + for(var i=cms.length-1; i>=0; i--){ + this.removeContactMaterial(cms[i]); + } }; /** @@ -839,7 +1042,7 @@ World.prototype.hitTest = function(worldPoint,bodies,precision){ tmp = hitTest_tmp2; pb.addShape(ps); - var n = this.nearphase, + var n = this.narrowphase, result = []; // Check bodies diff --git a/src/physics/arcade/ArcadePhysics.js b/src/physics/arcade/ArcadePhysics.js index 7dd28e688..7c21b6466 100644 --- a/src/physics/arcade/ArcadePhysics.js +++ b/src/physics/arcade/ArcadePhysics.js @@ -200,7 +200,7 @@ Phaser.Physics.Arcade.prototype = { * @param {number} velocity - Any component of velocity (e.g. 20). * @param {number} acceleration - Rate at which the velocity is changing. * @param {number} drag - Really kind of a deceleration, this is how much the velocity changes if Acceleration is not set. - * @param {number} mMax - An absolute value cap for the velocity. + * @param {number} [max=10000] - An absolute value cap for the velocity. * @return {number} The altered Velocity value. */ computeVelocity: function (axis, body, velocity, acceleration, drag, max) { diff --git a/src/physics/arcade/Body.js b/src/physics/arcade/Body.js index a7dd54ac3..145f293d6 100644 --- a/src/physics/arcade/Body.js +++ b/src/physics/arcade/Body.js @@ -392,11 +392,10 @@ Phaser.Physics.Arcade.Body.prototype = { this.checkWorldBounds(); } - this.hull.setTo(this.preX, this.preY, this.width, this.height); - + // this.hull.setTo(this.preX, this.preY, this.width, this.height); // this.hullX.setTo(this.x, this.preY, this.width, this.height); // this.hullY.setTo(this.preX, this.y, this.width, this.height); - this.updateHulls(true); + // this.updateHulls(true); } if (this.skipQuadTree === false && this.allowCollision.none === false && this.sprite.visible && this.sprite.alive) diff --git a/tutorials/03 Using Phaser with TypeScript/screen shots/part1.png b/tutorials/03 Using Phaser with TypeScript/screen shots/part1.png new file mode 100644 index 0000000000000000000000000000000000000000..3816a1cbdcef477f9b1138d9ea11f415a5a25a45 GIT binary patch literal 32813 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 UexP|`J!&*63Yzi-vQXIn2a5JvBLDyZ literal 0 HcmV?d00001 diff --git a/tutorials/03 Using Phaser with TypeScript/screen shots/part2.png b/tutorials/03 Using Phaser with TypeScript/screen shots/part2.png new file mode 100644 index 0000000000000000000000000000000000000000..cd0d79e51ef5cc06f10540a12f57de723b4ccb92 GIT binary patch literal 53130 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 Hv>*K!9ZCS5 literal 0 HcmV?d00001 diff --git a/tutorials/03 Using Phaser with TypeScript/screen shots/part3.png b/tutorials/03 Using Phaser with TypeScript/screen shots/part3.png new file mode 100644 index 0000000000000000000000000000000000000000..25517ce031fc4285d497044d00f5f4e8a9c4ccf1 GIT binary patch literal 62877 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 literal 0 HcmV?d00001 diff --git a/tutorials/03 Using Phaser with TypeScript/screen shots/part8.png b/tutorials/03 Using Phaser with TypeScript/screen shots/part8.png new file mode 100644 index 0000000000000000000000000000000000000000..3db5a59cbd3f1f4b7c9d060a3931535925d525a0 GIT binary patch literal 7837 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 literal 0 HcmV?d00001