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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
function compare_rect_position(a,b){
if (a.x.a < b.x.a) {
return -1
}
if (a.x.a > b.x.a) {
return 1
}
if (a.y.a < b.y.a) {
return -1
}
if (a.y.a > b.y.a) {
return 1
}
return 0
}
function compare_rect_area (a,b){
if (a[0] < b[0]) {
return 1
}
if (a[0] > b[0]) {
return -1
}
return 0
}
function sort_rooms_by_id(list){
return list.sort(function(a,b){
return a.id < b.id ? -1 : a.id == b.id ? 0 : 1
})
}
function sort_rooms_by_height(list){
return list.sort(function(b,a){
return a.height < b.height ? -1 : a.height == b.height ? 0 : 1
})
}
function sort_rooms_by_position(list){
return list.sort(function(a,b){
return compare_rect_position(a.rect, b.rect)
})
}
function sort_rooms_by_area(list){
return list.map(function(r){ return [r.rect.area(), r] })
.sort(compare_rect_area)
.map(function(r){ return r[1] })
}
function sort_rects_by_position(list){
return list.sort(compare_rect_position)
}
function sort_rects_by_area(list){
return list.map(function(r){ return [r.area(), r] })
.sort(compare_rect_area)
.map(function(r){ return r[1] })
}
function sort_wall_els_by_x_then_z(list){
return list.sort(function(a,b){
return sort_wall_els_by_x(a,b) || sort_wall_els_by_z(a,b)
})
}
function sort_wall_els_by_z(list){
return list.sort(function(a,b){
return a.z < b.z ? -1 : a.z == b.z ? 0 : 1
})
}
function sort_wall_els_by_x(a){
return list.sort(function(a,b){
return a.x < b.x ? -1 : a.x == b.x ? 0 : 1
})
}
|