import { mat3, vec2 } from 'gl-matrix'; import { AABB } from '../aabb'; import { Shape, MassDistribution } from '../types'; export declare class Vertex { readonly point: Readonly; readonly normal: Readonly; readonly prev: Vertex; readonly next: Vertex; readonly edge0: Edge; readonly edge1: Edge; constructor(point: Readonly); } export declare class Edge { readonly v0: Readonly; readonly v1: Readonly; readonly normal: vec2; readonly prev: Edge; readonly next: Edge; constructor(v0: Readonly, v1: Readonly); } export declare class Polygon implements Shape, MassDistribution { readonly points: Readonly; readonly transformOrigin: boolean; readonly radius: number; readonly loop: Vertex; readonly edgeLoop: Edge; cachedSupportVertex: Readonly; /** * @param points array of couter-clock wise oriented loop of points * @param transformOrigin */ constructor(points: Readonly, transformOrigin?: boolean); support(out: vec2, dir: Readonly, margin?: number): vec2; aabb(out: AABB, transform: mat3): AABB; testPoint(point: vec2): boolean; inetria(mass: number): number; vertices(): Iterable; edges(): Iterable; private transformOriginToCentroid; private getRadius; private createVertexLoop; private createEdgeLoop; }