UNPKG

p2s

Version:

A JavaScript 2D physics engine.

50 lines (40 loc) 1.39 kB
var Circle = require(__dirname + '/../../src/shapes/Circle'); var AABB = require(__dirname + '/../../src/collision/AABB'); var Ray = require(__dirname + '/../../src/collision/Ray'); var RaycastResult = require(__dirname + '/../../src/collision/RaycastResult'); exports.construct = function(test){ var circle = new Circle({ radius: 2 }); test.equal(circle.radius, 2); test.done(); }; exports.computeAABB = function(test){ var aabb = new AABB(), offset = [2,3]; var c = new Circle({ radius: 1 }); c.computeAABB(aabb,offset,Math.PI / 2); test.equal(aabb.lowerBound[0],-1 + offset[0]); test.equal(aabb.lowerBound[1],-1 + offset[1]); test.equal(aabb.upperBound[0], 1 + offset[0]); test.equal(aabb.upperBound[1], 1 + offset[1]); test.done(); }; exports.pointTest = function(test){ var shape = new Circle({ radius: 1 }); test.equal(shape.pointTest([0, 0]), true); test.equal(shape.pointTest([1, 0]), true); test.equal(shape.pointTest([2, 0]), false); test.done(); }; exports.raycast = function(test){ var ray = new Ray({ mode: Ray.CLOSEST, from: [-10,0], to: [10,0] }); var shape = new Circle({ radius: 0.5 }); var result = new RaycastResult(); shape.raycast(result, ray, [0,0], 0); test.equal(result.normal[0], -1); test.equal(result.normal[1], 0); test.done(); };