nehan
Version:
Html layout engine for paged-media written in Typescript
54 lines • 1.35 kB
JavaScript
export class LogicalRect {
constructor(pos, size) {
this.pos = pos;
this.size = size;
}
toString() {
let str = JSON.stringify({ pos: this.pos, size: this.size });
return `rect(${str})`;
}
canContain(size) {
return this.size.canContain(size);
}
translate(value) {
return new LogicalRect(this.pos.translate(value), this.size);
}
collideWith(rect) {
const dx = Math.abs(this.start - rect.start);
const sx = (this.measure + rect.measure) / 2;
const dy = Math.abs(this.before - rect.before);
const sy = (this.extent + rect.extent) / 2;
return dx < sx && dy < sy;
}
get extent() {
return this.size.extent;
}
set extent(size) {
this.size.extent = size;
}
get measure() {
return this.size.measure;
}
set measure(size) {
this.size.measure = size;
}
get start() {
return this.pos.start;
}
set start(size) {
this.pos.start = size;
}
get before() {
return this.pos.before;
}
set before(size) {
this.pos.before = size;
}
get end() {
return this.pos.start + this.size.measure;
}
get after() {
return this.pos.before + this.size.extent;
}
}
//# sourceMappingURL=logical-rect.js.map