summaryrefslogtreecommitdiff
path: root/assets/javascripts/rectangles/util/sort.js
diff options
context:
space:
mode:
authorJulie Lala <jules@okfoc.us>2014-04-17 10:08:34 -0400
committerJulie Lala <jules@okfoc.us>2014-04-17 10:09:43 -0400
commitaf14fea4d7482d2a141add59e3127c1643b873de (patch)
treec289dbf1d606dfcd6845977d49a0a20d1b5ae17d /assets/javascripts/rectangles/util/sort.js
parent9a87e3a1a61b222097c7991edec5c2c94a6c4cae (diff)
etc
Diffstat (limited to 'assets/javascripts/rectangles/util/sort.js')
-rw-r--r--assets/javascripts/rectangles/util/sort.js51
1 files changed, 34 insertions, 17 deletions
diff --git a/assets/javascripts/rectangles/util/sort.js b/assets/javascripts/rectangles/util/sort.js
index 8ece95f..673b3cc 100644
--- a/assets/javascripts/rectangles/util/sort.js
+++ b/assets/javascripts/rectangles/util/sort.js
@@ -1,12 +1,4 @@
-function sort_rooms_by_position(list){
- return list.sort(function(a,b){
- return compare_rect_position(a.rect, b.rect)
- })
-}
-function sort_rects_by_position(list){
- return list.sort(compare_rect_position)
-}
function compare_rect_position(a,b){
if (a.x.a < b.x.a) {
@@ -24,14 +16,39 @@ function compare_rect_position(a,b){
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_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(function(a,b){
- if (a[0] < b[0]) {
- return 1
- }
- if (a[0] > b[0]) {
- return -1
- }
- return 0
- }).map(function(r){ return r[1] })
+ return list.map(function(r){ return [r.area(), r] })
+ .sort(compare_rect_area)
+ .map(function(r){ return r[1] })
}