devexpress-diagram
Version:
DevExpress Diagram Control
46 lines (41 loc) • 1.26 kB
text/typescript
import { IKeyOwner } from "../Interfaces";
import { ItemKey } from "../Model/DiagramItem";
import { Rectangle } from "@devexpress/utils/lib/geometry/rectangle";
import { Size } from "@devexpress/utils/lib/geometry/size";
import { Point } from "@devexpress/utils/lib/geometry/point";
export class NodeInfo implements IKeyOwner {
constructor(
public key: ItemKey,
public margin: Margin,
public size: Size,
public connectionPoints: Point[] = []
) { }
}
export class NodeLayout implements IKeyOwner {
constructor(
public info: NodeInfo,
public position: Point
) { }
get key(): ItemKey { return this.info.key; }
get rectangle(): Rectangle {
return Rectangle.fromGeometry(this.position, this.info.size);
}
}
export class EdgeLayout implements IKeyOwner {
constructor(
public key: ItemKey,
public beginIndex: number,
public endIndex: number
) {}
}
export class Margin {
constructor(
public top: number,
public right: number = top,
public bottom: number = top,
public left: number = top,
) { }
static empty(): Margin {
return new Margin(0);
}
}