UNPKG

2d-physics-engine

Version:

A lightweight, flexible 2D physics engine with ECS architecture, built with TypeScript

40 lines 1.22 kB
import { AABB } from '../../math/AABB'; import { Vector2 } from '../../math/Vector2'; import { Collider } from './Collider.abstract'; export class CircleCollider extends Collider { constructor(radius) { super(); Object.defineProperty(this, "radius", { enumerable: true, configurable: true, writable: true, value: radius }); Object.defineProperty(this, "colliderId", { enumerable: true, configurable: true, writable: true, value: CircleCollider.COLLIDER_ID }); } getRadius() { return this.radius; } getAABB() { return new AABB(new Vector2(-this.radius, -this.radius), new Vector2(this.radius, this.radius)); } calculateInertia(mass) { // Moment of inertia for a solid disk return (mass * this.radius * this.radius) / 2; } getClosestPoint(point) { return point.getNormal().scale(this.radius); } } Object.defineProperty(CircleCollider, "COLLIDER_ID", { enumerable: true, configurable: true, writable: true, value: Symbol('CircleCollider') }); //# sourceMappingURL=CircleCollider.component.js.map