add geometry.d.ts

This commit is contained in:
Toshiya Nakakura
2015-06-27 15:51:36 +09:00
parent 2c96e9e777
commit f0d81a07d2
3 changed files with 387 additions and 0 deletions
+25
View File
@@ -0,0 +1,25 @@
/// <reference path="./geometry.d.ts" />
var point = new DOMPoint(5, 4);
var matrix = new DOMMatrix(2, 0, 0, 2, 10, 10);
var transformedPoint = point.matrixTransform(matrix);
var point = new DOMPoint(2, 0);
var quad1 = new DOMQuad(point, {x: 12, y: 0}, {x: 2, y: 10}, {x: 12, y: 10});
var rect = new DOMRect(2, 0, 10, 10);
var quad2 = new DOMQuad(rect);
new DOMQuad({x: 40, y: 25}, {x: 180, y: 8}, {x: 210, y: 150}, {x: 10, y: 180});
var matrix = new DOMMatrix();
matrix.scaleSelf(2);
matrix.translateSelf(20,20);
var matrix = new DOMMatrix();
matrix.translateSelf(20, 20);
matrix.scaleSelf(2);
matrix.translateSelf(-20, -20);
var matrix = new DOMMatrix();
matrix.translateSelf(20, 20).scaleSelf(2).translateSelf(-20, -20);
+326
View File
@@ -0,0 +1,326 @@
// Type definitions for Geometry Format Specification
// Project: http://www.w3.org/TR/geometry-1/
// Definitions by: Toshiya Nakakura <https://github.com/nakakura>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare module Geometry {
export interface DOMPointReadOnly {
/**
* x coordinate / readonly
*/
x: number;
/**
* y coordinate / readonly
*/
y: number;
/**
* z coordinate / readonly
*/
z: number;
/**
* w coordinate / readonly
*/
w: number;
/**
* Post-multiply point with matrix.
* @param matrix
*/
matrixTransform(matrix:DOMMatrixReadOnly): DOMPoint;
}
interface DOMPoint extends DOMPointReadOnly {
/**
* x coordinate
*/
x: number;
/**
* y coordinate
*/
y: number;
/**
* z coordinate
*/
z: number;
/**
* w coordinate
*/
w: number;
}
interface DOMRect extends DOMRectReadOnly {
/**
* x coordinate
*/
x: number;
/**
* y coordinate
*/
y: number;
/**
* width value
*/
width: number;
/**
* height value
*/
height: number;
}
interface DOMRectReadOnly {
/**
* x coordinate
*/
x: number;
/**
* y coordinate
*/
y: number;
/**
* width value
*/
width: number;
/**
* height value
*/
height: number;
/**
* min(y coordinate, y coordinate + height dimension)
*/
top: number;
/**
* max(x coordinate, x coordinate + width dimension)
*/
right: number;
/**
* max(y coordinate, y coordinate + height dimension)
*/
bottom: number;
/**
* min(x coordinate, x coordinate + width dimension)
*/
left: number;
}
interface DOMRectList {
/**
* total number of DOMRect objects associated with the object.
* readonly unsigned long length
*/
length: number;
/**
* the DOMRect object at index must be returned.
* @param index
*/
item(index: number): DOMRect;
}
interface DOMQuad {
/**
* a DOMPoint that represents p1 of the quadrilateral
*/
p1: DOMPoint;
/**
* a DOMPoint that represents p2 of the quadrilateral
*/
p2: DOMPoint;
/**
* a DOMPoint that represents p3 of the quadrilateral
*/
p3: DOMPoint;
/**
* a DOMPoint that represents p4 of the quadrilateral
*/
p4: DOMPoint;
/**
* the associated bounding rectangle of the quadrilateral
*/
bounds: DOMRectReadOnly;
}
interface DOMMatrixReadOnly {
/**
* These attributes are simple aliases for certain elements of the 4x4 matrix
*/
a: number;
b: number;
c: number;
d: number;
e: number;
f: number;
m11: number;
m12: number;
m13: number;
m14: number;
m21: number;
m22: number;
m23: number;
m24: number;
m31: number;
m32: number;
m33: number;
m34: number;
m41: number;
m42: number;
m43: number;
m44: number;
is2D: boolean;
isIdentity: boolean;
translate(tx: number, ty: number, tz?: number): DOMMatrix;
scale(scale: number, originX?: number, originY?: number): DOMMatrix;
scale3d(scale: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
scaleNonUniform(scale: number, scaleX: number, scaleY: number, scaleZ: number, originX: number, originY: number, originZ: number): DOMMatrix;
rotate(angle: number, originX?: number, originY?: number): DOMMatrix;
rotateFromVector(x: number, y: number): DOMMatrix;
rotateAxisAngle(x: number, y: number, z: number, angle: number): DOMMatrix;
skewX(sx: number): DOMMatrix;
skewY(sx: number): DOMMatrix;
multiply(other: DOMMatrix): DOMMatrix;
flipX(): DOMMatrix;
flipY(): DOMMatrix;
inverse(): DOMMatrix;
transformPoint(point?: DOMPointInit): DOMPoint;
toFloat32Array(): Array<number>;
toFloat64Array(): Array<number>;
}
interface DOMMatrix extends DOMMatrixReadOnly {
a: number;
b: number;
c: number;
d: number;
e: number;
f: number;
m11: number;
m12: number;
m13: number;
m14: number;
m21: number;
m22: number;
m23: number;
m24: number;
m31: number;
m32: number;
m33: number;
m34: number;
m41: number;
m42: number;
m43: number;
m44: number;
multiplySelf(other: DOMMatrix): DOMMatrix;
preMultiplySelf(other: DOMMatrix): DOMMatrix;
translateSelf(tx: number, ty: number, tz?: number): DOMMatrix;
scaleSelf(scale: number, originX?: number, originY?: number): DOMMatrix;
scale3dSelf(scale: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
scaleNonUniformSelf(scaleX: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
rotateSelf(angle: number, originX?: number, originY?: number): DOMMatrix;
rotateFromVectorSelf(x: number, y: number): DOMMatrix;
rotateAxisAngleSelf(x: number, y: number, z: number, angle: number): DOMMatrix;
skewXSelf(sx: number): DOMMatrix;
skewYSelf(sy: number): DOMMatrix;
invertSelf(): DOMMatrix;
setMatrixValue(transformList: DOMMatrix): DOMMatrix;
}
}
declare var DOMPointReadOnly: {
prototype: Geometry.DOMPointReadOnly;
new (x: number, y: number, z: number, w: number): Geometry.DOMPointReadOnly;
};
declare var DOMPoint: {
prototype: Geometry.DOMPoint;
new (x?:number, y?:number, z?:number, w?:number): Geometry.DOMPoint;
};
interface DOMPointInit {
/**
* x coordinate: 0
*/
x: number;
/**
* y coordinate: 0
*/
y: number;
/**
* z coordinate: 0
*/
z?: number;
/**
* w coordinate: 1
*/
w?: number;
}
declare var DOMRect: {
prototype: Geometry.DOMRect;
new (x: number, y: number, width: number, height: number): Geometry.DOMRect;
};
declare var DOMRectReadOnly: {
prototype: Geometry.DOMRectReadOnly;
new (x: number, y: number, width: number, height: number): Geometry.DOMRectReadOnly;
};
interface DOMRectInit {
/**
* x coordinate
*/
x: number;
/**
* y coordinate
*/
y: number;
/**
* width value
*/
width: number;
/**
* height value
*/
height: number;
}
interface DOMRectList {
/**
* total number of DOMRect objects associated with the object.
* readonly unsigned long length
*/
length: number;
/**
* the DOMRect object at index must be returned.
* @param index
*/
item(index: number): Geometry.DOMRect;
}
declare var DOMQuad: {
prototype: Geometry.DOMQuad;
new (rect?: DOMRectInit): Geometry.DOMQuad;
new (p1?: DOMPointInit, p2?: DOMPointInit, p3?: DOMPointInit, p4?: DOMPointInit): Geometry.DOMQuad;
};
declare var DOMMatrixReadOnly: {
prototype: Geometry.DOMMatrixReadOnly;
new (numberSequence: Array<number>): Geometry.DOMMatrixReadOnly;
};
declare var DOMMatrix: {
prototype: Geometry.DOMMatrix;
new (): Geometry.DOMMatrix;
new (transformList: string): Geometry.DOMMatrix;
new (other: Geometry.DOMMatrixReadOnly): Geometry.DOMMatrix;
new (array: Array<number>): Geometry.DOMMatrix;
new (a: number, b: number, c: number, d: number, e: number, f: number): Geometry.DOMMatrix;
};
+36
View File
@@ -0,0 +1,36 @@
0 info it worked if it ends with ok
1 verbose cli [ 'node', '/usr/local/bin/npm', 'run', 'all' ]
2 info using npm@2.7.5
3 info using node@v0.12.2
4 verbose node symlink /usr/local/bin/node
5 verbose run-script [ 'preall', 'all', 'postall' ]
6 info preall DefinitelyTyped@0.0.1
7 info all DefinitelyTyped@0.0.1
8 verbose unsafe-perm in lifecycle true
9 info DefinitelyTyped@0.0.1 Failed to exec all script
10 verbose stack Error: DefinitelyTyped@0.0.1 all: `dt`
10 verbose stack Exit status 1
10 verbose stack at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:213:16)
10 verbose stack at EventEmitter.emit (events.js:110:17)
10 verbose stack at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:14:12)
10 verbose stack at ChildProcess.emit (events.js:110:17)
10 verbose stack at maybeClose (child_process.js:1015:16)
10 verbose stack at Process.ChildProcess._handle.onexit (child_process.js:1087:5)
11 verbose pkgid DefinitelyTyped@0.0.1
12 verbose cwd /Volumes/user/Users/nakakura/Desktop/DefinitelyTyped
13 error Darwin 14.3.0
14 error argv "node" "/usr/local/bin/npm" "run" "all"
15 error node v0.12.2
16 error npm v2.7.5
17 error code ELIFECYCLE
18 error DefinitelyTyped@0.0.1 all: `dt`
18 error Exit status 1
19 error Failed at the DefinitelyTyped@0.0.1 all script 'dt'.
19 error This is most likely a problem with the DefinitelyTyped package,
19 error not with npm itself.
19 error Tell the author that this fails on your system:
19 error dt
19 error You can get their info via:
19 error npm owner ls DefinitelyTyped
19 error There is likely additional logging output above.
20 verbose exit [ 1, true ]