summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/rectangles/util
diff options
context:
space:
mode:
authorJulie Lala <jules@okfoc.us>2014-07-23 17:03:04 -0400
committerJulie Lala <jules@okfoc.us>2014-07-23 17:27:58 -0400
commitc7e27b743eb8488ec71adaf365056ff500b458ab (patch)
treeb806895981a752368bf294edc54d283911b993d3 /public/assets/javascripts/rectangles/util
parentc3d855b3f0b6af000c0d359da6a2b774bcd0a5d5 (diff)
preparing modules for clip test
Diffstat (limited to 'public/assets/javascripts/rectangles/util')
-rw-r--r--public/assets/javascripts/rectangles/util/sort.js156
-rw-r--r--public/assets/javascripts/rectangles/util/uid.js31
2 files changed, 104 insertions, 83 deletions
diff --git a/public/assets/javascripts/rectangles/util/sort.js b/public/assets/javascripts/rectangles/util/sort.js
index a0665ae..c0b5d54 100644
--- a/public/assets/javascripts/rectangles/util/sort.js
+++ b/public/assets/javascripts/rectangles/util/sort.js
@@ -1,86 +1,96 @@
+(function(){
-
-function compare_rect_position(a,b){
- if (a[0].x.a < b[0].x.a) {
- return -1
- }
- if (a[0].x.a > b[0].x.a) {
- return 1
+ function compare_rect_position(a,b){
+ if (a[0].x.a < b[0].x.a) {
+ return -1
+ }
+ if (a[0].x.a > b[0].x.a) {
+ return 1
+ }
+ if (a[0].y.a < b[0].y.a) {
+ return -1
+ }
+ if (a[0].y.a > b[0].y.a) {
+ return 1
+ }
+ return 0
}
- if (a[0].y.a < b[0].y.a) {
- return -1
+
+ function compare_car_reversed (a,b){
+ if (a[0] < b[0]) {
+ return 1
+ }
+ if (a[0] > b[0]) {
+ return -1
+ }
+ return 0
}
- if (a[0].y.a > b[0].y.a) {
- return 1
+ function compare_car (a,b){
+ if (a[0] < b[0]) {
+ return -1
+ }
+ if (a[0] > b[0]) {
+ return 1
+ }
+ return 0
}
- return 0
-}
-function compare_car_reversed (a,b){
- if (a[0] < b[0]) {
- return 1
+ function room_id_tuple (r){ return [r.id, r] }
+ function room_height_tuple (r){ return [r.height, r] }
+ function room_area_tuple (r){ return [r.rect.area(), r] }
+ function rect_area_tuple (r){ return [r.area(), r] }
+
+ function room_rect_tuple (r){ return [r.rect, r] }
+ function identity_tuple (r){ return [r, r] }
+ function car (r){ return r[0] }
+ function cdr (r){ return r[1] }
+
+ var sort = {}
+
+ sort.rooms_by_id = function (list){
+ return list.map(room_id_tuple)
+ .sort(compare_car)
+ .map(cdr)
}
- if (a[0] > b[0]) {
- return -1
+ sort.rooms_by_height = function (list){
+ return list.map(room_height_tuple)
+ .sort(compare_car_reversed)
+ .map(cdr)
}
- return 0
-}
-function compare_car (a,b){
- if (a[0] < b[0]) {
- return -1
+ sort.rooms_by_position = function (list){
+ return list.map(room_rect_tuple)
+ .sort(compare_rect_position)
+ .map(cdr)
}
- if (a[0] > b[0]) {
- return 1
+ sort.rooms_by_area = function (list){
+ return list.map(room_area_tuple)
+ .sort(compare_car)
+ .map(cdr)
}
- return 0
-}
-
-function room_id_tuple (r){ return [r.id, r] }
-function room_height_tuple (r){ return [r.height, r] }
-function room_area_tuple (r){ return [r.rect.area(), r] }
-function rect_area_tuple (r){ return [r.area(), r] }
-
-function room_rect_tuple (r){ return [r.rect, r] }
-function identity_tuple (r){ return [r, r] }
-function car (r){ return r[0] }
-function cdr (r){ return r[1] }
+ sort.rects_by_position = function (list){
+ return list.map(identity_tuple)
+ .sort(compare_rect_position)
+ .map(cdr)
+ }
+ sort.rects_by_area = function (list){
+ return list.map(rect_area_tuple)
+ .sort(compare_car)
+ .map(cdr)
+ }
-function sort_rooms_by_id(list){
- return list.map(room_id_tuple)
- .sort(compare_car)
- .map(cdr)
-}
-function sort_rooms_by_height(list){
- return list.map(room_height_tuple)
- .sort(compare_car_reversed)
- .map(cdr)
-}
-function sort_rooms_by_position(list){
- return list.map(room_rect_tuple)
- .sort(compare_rect_position)
- .map(cdr)
-}
-function sort_rooms_by_area(list){
- return list.map(room_area_tuple)
- .sort(compare_car)
- .map(cdr)
-}
+ sort.compare_z = function (a,b){
+ return a.rect.y.a < b.rect.y.a ? -1 : a.rect.y.a == b.rect.y.a ? 0 : 1
+ }
+ sort.compare_x = function (a,b){
+ return a.rect.x.a > b.rect.x.a ? -1 : a.rect.x.a == b.rect.x.a ? 0 : 1
+ }
-function sort_rects_by_position(list){
- return list.map(identity_tuple)
- .sort(compare_rect_position)
- .map(cdr)
-}
-function sort_rects_by_area(list){
- return list.map(rect_area_tuple)
- .sort(compare_car)
- .map(cdr)
-}
+ if ("window" in this) {
+ window.sort = sort
+ }
+ else {
+ module.exports = sort
+ }
-function compare_z(a,b){
- return a.rect.y.a < b.rect.y.a ? -1 : a.rect.y.a == b.rect.y.a ? 0 : 1
-}
-function compare_x(a,b){
- return a.rect.x.a > b.rect.x.a ? -1 : a.rect.x.a == b.rect.x.a ? 0 : 1
-}
+})()
diff --git a/public/assets/javascripts/rectangles/util/uid.js b/public/assets/javascripts/rectangles/util/uid.js
index ca22fb3..648bf0c 100644
--- a/public/assets/javascripts/rectangles/util/uid.js
+++ b/public/assets/javascripts/rectangles/util/uid.js
@@ -1,14 +1,25 @@
-var UidGenerator = function(list){
- var id = 0
- return function(s){
- s = s || ""
- var ss
- while (1) {
- ss = s + (id++)
- if (! (ss in list)) {
- return ss
+(function(){
+
+ var UidGenerator = function(list){
+ var id = 0
+ return function(s){
+ s = s || ""
+ var ss
+ while (1) {
+ ss = s + (id++)
+ if (! (ss in list)) {
+ return ss
+ }
}
}
}
-} \ No newline at end of file
+
+ if ('window' in this) {
+ window.UidGenerator = UidGenerator
+ }
+ else {
+ module.exports = UidGenerator
+ }
+
+})()