// Type definitions for poly2tri v0.9.10
// Project: http://github.com/r3mi/poly2tri.js/
// Definitions by: Elemar Junior
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare module poly2tri {
interface IPointLike {
x: number;
y: number;
}
class Point implements IPointLike {
x: number;
y: number;
constructor(x: number, y: number);
toString(): string;
toJSON(): JSON;
clone(): Point;
set_zero(): Point;
set(x: number, y: number): Point;
negate(): Point;
add(n: IPointLike): Point;
sub(n: IPointLike): Point;
mul(s: number): Point;
length(): number;
normalize(): number;
equals(p: IPointLike): boolean;
static negate(p: IPointLike): Point;
static add(a: IPointLike, b: IPointLike): Point;
static sub(a: IPointLike, b: IPointLike): Point;
static mul(s: number, p: IPointLike): Point;
static cross(a: number, b: number): number;
static cross(a: IPointLike, b: number): number;
static cross(a: IPointLike, b: IPointLike): number;
static cross(a: number, b: IPointLike): number;
static toStringBase(p: IPointLike): string;
static toString(p: IPointLike): string;
static compare(a: IPointLike, b: IPointLike): number;
static equals(a: IPointLike, b: IPointLike): boolean;
static dot(a: IPointLike, b: IPointLike): number;
}
class SweepContext {
constructor(contour: Array);
constructor(contour: Array, options: JSON);
addHole(polyline: Array): SweepContext;
addHoles(holes: Array>): SweepContext;
addPoint(point: IPointLike): SweepContext;
addPoints(point: Array): SweepContext;
triangulate(): SweepContext;
getBoundingBox(): { min: IPointLike; max: IPointLike; };
getTriangles(): Array;
}
class Triangle {
constructor(a: IPointLike, b: IPointLike, c: IPointLike);
toString(): string;
getPoint(index: number): IPointLike;
getPoints(): Array;
containsPoint(point: IPointLike): boolean;
containsPoints(p1: IPointLike, p2: IPointLike): boolean;
isInterior(): boolean;
}
}