UNPKG

modern-canvas

Version:

A JavaScript WebGL rendering engine. only the ESM.

71 lines (70 loc) 2.06 kB
import type { Vector2Like } from './Vector2'; import { Matrix3 } from './Matrix3'; import { Vector2 } from './Vector2'; export interface TransformObject { a: number; c: number; tx: number; b: number; d: number; ty: number; tz: number; } export interface TransformableObject { position: { x: number; y: number; }; scale: { x: number; y: number; }; skew: { x: number; y: number; }; rotation: number; } /** * Transform * * | a | c | tx| * | b | d | ty| * | 0 | 0 | 1 | */ export declare class Transform2D extends Matrix3 { private static _t2d; premultiply(t2d: Transform2D): this; skewX(x: number): this; skewY(y: number): this; skew(x: number, y: number): this; makeSkew(x: number, y: number): this; translateX(x: number): this; translateY(y: number): this; translateZ(z: number): this; translate3d(x: number, y: number, z: number): this; translate(x: number, y: number, z?: number): this; makeTranslation(x: number, y: number, _z?: number): this; scaleX(x: number): this; scaleY(y: number): this; scale3d(x: number, y: number, z?: number): this; scale(x: number, y: number, z?: number): this; makeScale(x: number, y: number, _z?: number): this; rotateX(x: number): this; rotateY(y: number): this; rotateZ(z: number): this; rotate(rad: number): this; rotate3d(x: number, y: number, z: number, rad: number): this; protected _rotateToScale(rad: number): number; protected _rotate3d(x: number, y: number, z: number, rad: number): number[]; makeRotation(theta: number): this; decompose(pivot?: { x: number; y: number; }, output?: TransformableObject): TransformableObject; apply<P extends Vector2Like = Vector2>(pos: Vector2Like, newPos?: P): P; affineInverse(): this; applyAffineInverse<P extends Vector2Like = Vector2>(pos: Vector2Like, newPos?: P): P; isIdentity(): boolean; toObject(): TransformObject; }