@dominicstop/utils
Version:
Yet another event emitter written in typescript.
73 lines • 2.33 kB
TypeScript
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