summaryrefslogtreecommitdiffstats
path: root/src/renderer/runtime/math/circle.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/renderer/runtime/math/circle.ts')
-rw-r--r--src/renderer/runtime/math/circle.ts15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/renderer/runtime/math/circle.ts b/src/renderer/runtime/math/circle.ts
new file mode 100644
index 0000000..f4e855a
--- /dev/null
+++ b/src/renderer/runtime/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);
+ }
+}