From e0eddb8741b840df97380e557abd51b47a5e2eee Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Thu, 8 Nov 2018 22:26:11 +0100 Subject: Implement circle collidables --- src/math/circle.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/math/circle.ts (limited to 'src/math') diff --git a/src/math/circle.ts b/src/math/circle.ts new file mode 100644 index 0000000..f4e855a --- /dev/null +++ b/src/math/circle.ts @@ -0,0 +1,15 @@ +import { Collidable } from './collision'; +import { Movement } from './line'; +import { Point } from './point'; + +import { vec2 } from 'gl-matrix'; + +export class Circle implements Collidable, Point { + private pointCollide = Point.prototype.collide; + + constructor(public readonly p: vec2, public readonly r: number) {} + + public collide(out: vec2, move: Movement, r: number): boolean { + return this.pointCollide(out, move, r + this.r); + } +} -- cgit v1.2.3