p2s
Version:
A JavaScript 2D physics engine.
39 lines (35 loc) • 1.18 kB
JavaScript
var GSSolver = require(__dirname + '/../../src/solver/GSSolver');
var World = require(__dirname + '/../../src/world/World');
var Body = require(__dirname + '/../../src/objects/Body');
var DistanceConstraint = require(__dirname + '/../../src/constraints/DistanceConstraint');
exports.construct = function(test){
var solver = new GSSolver();
test.done();
};
exports.solve = function(test){
var world = new World();
var bodyA = new Body({
mass: 1
});
world.addBody(bodyA);
var bodyB = new Body({
mass: 1,
position:[0,1.001]
});
world.addBody(bodyB);
var constraint = new DistanceConstraint(bodyA, bodyB, {
distance: 1
});
world.addConstraint(constraint);
var solver = new GSSolver({
iterations: 10,
tolerance: 0
});
solver.addEquations(constraint.equations);
solver.solve(1/60, world);
test.equal(solver.usedIterations, solver.iterations, 'should use all iterations if tolerance is zero');
solver.tolerance = 1;
solver.solve(1/60, world);
test.ok(solver.usedIterations < 10, 'should use less iterations if tolerance is nonzero');
test.done();
};