UNPKG

@dominicstop/utils

Version:

Yet another event emitter written in typescript.

73 lines 2.33 kB
import { BoxedPolygon } from "./interfaces/BoxedPolygon"; import { Point, PointValue } from "./Point"; import { UniformScaleConfig } from "./Scalelable"; import { SizeValue } from "./Size"; export type RectValue = { origin: PointValue; size: SizeValue; }; export type RectMinMaxDimensions = { minX: number; minY: number; maxX: number; maxY: number; }; export type RectCorners = { topLeftPoint: Point; topRightPoint: Point; bottomLeftPoint: Point; bottomRightPoint: Point; }; export type RectCornerKey = keyof RectCorners; export type RectInit = (RectValue & { mode: 'originAndSize'; }) | (RectMinMaxDimensions & { mode: 'corners'; }); export declare class Rect implements BoxedPolygon<RectValue> { origin: Point; size: SizeValue; constructor(args: RectInit); get minX(): number; set minX(value: number); get minY(): number; set minY(value: number); get midX(): number; set midX(value: number); get midY(): number; set midY(value: number); get maxX(): number; set maxX(value: number); get maxY(): number; set maxY(value: number); get asValue(): RectValue; get boundingBox(): Rect; get width(): number; get height(): number; get isNaN(): boolean; get area(): number; get minMaxDimensions(): RectMinMaxDimensions; get center(): Point; get topMidPoint(): Point; get bottomMidPoint(): Point; get leftMidPoint(): Point; get rightMidPoint(): Point; get topLeftPoint(): Point; get topRightPoint(): Point; get bottomLeftPoint(): Point; get bottomRightPoint(): Point; get cornerPointsAsArray(): Array<Point>; clone(): Rect; computeDistanceToOther(other: Rect): number; isPointInside(pointValue: PointValue): boolean; isEdgeToEdgeWithOther(other: this): boolean; isCollidingWithOther(other: this): boolean; setPointCenter(newCenterPoint: Point): void; getCornerPoint(cornerKey: RectCornerKey): Point; setCornerPoint(cornerKey: RectCornerKey, newValue: Point): void; applyScaleToNewSize(newSize: SizeValue): void; applyUniformScaleByFactor(args: UniformScaleConfig): void; scaledUniformallyByFactor(args: UniformScaleConfig): this; static initFromValue(args: RectValue): Rect; } //# sourceMappingURL=Rect.d.ts.map