1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
export class TolNode {
name: string;
children: TolNode[];
constructor(name: string, children: TolNode[] = []){
this.name = name;
this.children = children;
}
}
export class LayoutNode {
//set by TileTree and LayoutFn funcs, eventually used by Tile
tolNode: TolNode;
children: LayoutNode[];
pos: [number, number];
dims: [number, number];
headerSz: number;
//set by layoutInfoHooks, used by LayoutFn funcs
tileCount: number;
//set_by/internal_to LayoutFn funcs
usedDims: [number, number];
empSpc: number;
//set by LayoutFn funcs, eventually used by Tile
sepSweptArea: SepSweptArea | null;
//
constructor(
tolNode: TolNode, children: LayoutNode[], pos:[number,number]=[0,0], dims:[number,number]=[0,0],
{headerSz=0, tileCount=0, usedDims=[0,0] as [number,number],
empSpc=0, sepSweptArea=null as SepSweptArea|null} = {}){
this.tolNode = tolNode;
this.children = children;
this.pos = pos;
this.dims = dims;
this.headerSz = headerSz;
this.tileCount = tileCount;
this.usedDims = usedDims;
this.empSpc = empSpc;
this.sepSweptArea = sepSweptArea;
}
}
export class SepSweptArea {
pos: [number, number];
dims: [number, number];
sweptLeft: boolean;
tileSpacing: number;
constructor(pos: [number, number], dims: [number, number], sweptLeft: boolean, tileSpacing: number){
this.pos = pos;
this.dims = dims;
this.sweptLeft = sweptLeft;
this.tileSpacing = tileSpacing;
}
}
|