From e268787d2bc0a958cca0870e68be51ea54d08c4a Mon Sep 17 00:00:00 2001 From: Voxylu <42711914+Voxylu@users.noreply.github.com> Date: Mon, 18 Mar 2019 17:07:58 +0100 Subject: [PATCH] Add `intersects` types (#33959) * add intersects types * Add strictFunctionTypes to true * Add tests * Makes the linter happy --- types/intersects/index.d.ts | 323 +++++++++++++++++++++++++++ types/intersects/intersects-tests.ts | 12 + types/intersects/tsconfig.json | 16 ++ types/intersects/tslint.json | 1 + 4 files changed, 352 insertions(+) create mode 100644 types/intersects/index.d.ts create mode 100644 types/intersects/intersects-tests.ts create mode 100644 types/intersects/tsconfig.json create mode 100644 types/intersects/tslint.json diff --git a/types/intersects/index.d.ts b/types/intersects/index.d.ts new file mode 100644 index 0000000000..1062b2fc6b --- /dev/null +++ b/types/intersects/index.d.ts @@ -0,0 +1,323 @@ +// Type definitions for intersects 2.5 +// Project: https://github.com/davidfig/intersects#readme +// Definitions by: Voxylu +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export function boxBox( + x1: number, + y1: number, + w1: number, + h1: number, + x2: number, + y2: number, + w2: number, + h2: number +): boolean; + +export function boxCircle( + xb: number, + yb: number, + wb: number, + hb: number, + xc: number, + yc: number, + rc: number +): boolean; + +export function boxEllipse( + xb: number, + yb: number, + wb: number, + hb: number, + xe: number, + ye: number, + rex: number, + rey: number +): boolean; + +export function boxLine( + xb: number, + yb: number, + wb: number, + hb: number, + x1: number, + y1: number, + x2: number, + y2: number +): boolean; + +export function boxPoint( + x1: number, + y1: number, + w1: number, + h1: number, + x2: number, + y2: number +): boolean; + +export function boxPolygon( + xb: number, + yb: number, + wb: number, + hb: number, + points: number[] +): boolean; + +export function circleBox( + xc: number, + yc: number, + rc: number, + xb: number, + yb: number, + wb: number, + hb: number +): boolean; + +export function circleCircle( + x1: number, + y1: number, + r1: number, + x2: number, + y2: number, + r2: number +): boolean; + +export function circleEllipse( + xc: number, + yc: number, + rc: number, + xe: number, + ye: number, + rex: number, + rey: number +): boolean; + +export function circleLine( + xc: number, + yc: number, + rc: number, + x1: number, + y1: number, + x2: number, + y2: number +): boolean; + +export function circlePoint( + x1: number, + y1: number, + r1: number, + x2: number, + y2: number +): boolean; + +export function circlePolygon( + xc: number, + yc: number, + rc: number, + points: number[] +): boolean; + +export function ellipseBox( + xe: number, + ye: number, + rex: number, + rey: number, + xb: number, + yb: number, + wb: number, + hb: number +): boolean; + +export function ellipseCircle( + xe: number, + ye: number, + rex: number, + rey: number, + xc: number, + yc: number, + rc: number +): boolean; + +export function ellipseEllipse( + x1: number, + y1: number, + r1x: number, + r1y: number, + x2: number, + y2: number, + r2x: number, + r2y: number +): boolean; + +export function ellipseLine( + xe: number, + ye: number, + rex: number, + rey: number, + x1: number, + y1: number, + x2: number, + y2: number +): boolean; + +export function ellipsePoint( + xe: number, + ye: number, + rex: number, + rey: number, + x1: number, + y1: number +): boolean; + +export function ellipsePolygon( + xe: number, + ye: number, + rex: number, + rey: number, + points: number[] +): boolean; + +export function lineBox( + x1: number, + y1: number, + x2: number, + y2: number, + xb: number, + yb: number, + wb: number, + hb: number +): boolean; + +export function lineCircle( + x1: number, + y1: number, + x2: number, + y2: number, + xc: number, + yc: number, + rc: number +): boolean; + +export function lineEllipse( + x1: number, + y1: number, + x2: number, + y2: number, + xe: number, + ye: number, + rex: number, + rey: number +): boolean; + +export function lineLine( + x1: number, + y1: number, + x2: number, + y2: number, + x3: number, + y3: number, + x4: number, + y4: number +): boolean; + +export function linePoint( + x1: number, + y1: number, + x2: number, + y2: number, + xp: number, + yp: number, + tolerance: number +): boolean; + +export function linePolygon( + x1: number, + y1: number, + x2: number, + y2: number, + points: number[], + tolerance: number +): boolean; + +export function pointBox( + x1: number, + y1: number, + xb: number, + yb: number, + wb: number, + hb: number +): boolean; + +export function pointCircle( + x1: number, + y1: number, + xc: number, + yc: number, + rc: number +): boolean; + +export function pointEllipse( + x1: number, + y1: number, + xe: number, + ye: number, + rex: number, + rey: number +): boolean; + +export function pointLine( + xp: number, + yp: number, + x1: number, + y1: number, + x2: number, + y2: number +): boolean; + +export function pointPolygon( + x1: number, + y1: number, + points: number[], + tolerance: number +): boolean; + +export function polygonBox( + points: number[], + x: number, + y: number, + w: number, + h: number +): boolean; + +export function polygonCircle( + points: number[], + xc: number, + yc: number, + rc: number +): boolean; + +export function polygonEllipse( + points: number[], + xe: number, + ye: number, + rex: number, + rey: number +): boolean; + +export function polygonLine( + points: number[], + x1: number, + y1: number, + x2: number, + y2: number, + tolerance: number +): boolean; + +export function polygonPoint( + points: number[], + x: number, + y: number, + tolerance: number +): boolean; + +export function polygonPolygon(points1: number[], points2: number[]): boolean; diff --git a/types/intersects/intersects-tests.ts b/types/intersects/intersects-tests.ts new file mode 100644 index 0000000000..e39d8a08ca --- /dev/null +++ b/types/intersects/intersects-tests.ts @@ -0,0 +1,12 @@ +import { polygonBox, pointLine, circleEllipse } from 'intersects'; + +const res = polygonBox([2, 0, 4, 2, 0, 2], 1, 1, 2, 2); +if (res) { + // do something +} + +if (pointLine(0, 8, -5, 4, 7, 6)) { + // do agian something +} + +const isGood = circleEllipse(0, 6, 9, 2, 4, 5, 1) ? 'yes' : 'no'; diff --git a/types/intersects/tsconfig.json b/types/intersects/tsconfig.json new file mode 100644 index 0000000000..7c8a1b6d87 --- /dev/null +++ b/types/intersects/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": ["es6"], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": ["../"], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true, + "strictFunctionTypes": true + }, + "files": ["index.d.ts", "intersects-tests.ts"] +} diff --git a/types/intersects/tslint.json b/types/intersects/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/intersects/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }