summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/rectangles/engine
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-10-08 13:26:08 -0400
committerJules Laplace <jules@okfoc.us>2014-10-08 13:26:08 -0400
commit6f4cd32fa13efe3b0e8b26183589f66889dd3738 (patch)
treedf5ceeb82a40c247ec0dc508b5672289b483a5b4 /public/assets/javascripts/rectangles/engine
parent1f66850f5ec5a2e664ee8eaafbe25c46dad34102 (diff)
render thumbnails as masks
Diffstat (limited to 'public/assets/javascripts/rectangles/engine')
-rw-r--r--public/assets/javascripts/rectangles/engine/map/draw.js20
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/_rooms.js10
2 files changed, 23 insertions, 7 deletions
diff --git a/public/assets/javascripts/rectangles/engine/map/draw.js b/public/assets/javascripts/rectangles/engine/map/draw.js
index 07e2d9f..6c27ff1 100644
--- a/public/assets/javascripts/rectangles/engine/map/draw.js
+++ b/public/assets/javascripts/rectangles/engine/map/draw.js
@@ -38,18 +38,24 @@ Map.Draw = function(map, opt){
ctx.restore()
}
+ // changes the ctx temporarily
draw.render = function(){
- // change the ctx temporarily
+ var thumbnail_side = 1000
+
+ var extent = Rooms.extent()
+ var center = extent.center()
+ var zoom = thumbnail_side / Math.max( extent.width(), extent.height() ) * 0.99
+
var canvas = document.createElement("canvas")
ctx = canvas.getContext('2d')
- canvas.width = map.canvas.width
- canvas.height = map.canvas.height
+ canvas.width = thumbnail_side
+ canvas.height = thumbnail_side
draw.clear()
- ctx.translate( map.dimensions.a * 1/2, map.dimensions.b * 1/2)
- ctx.scale( map.zoom, map.zoom )
- ctx.translate( map.center.a, map.center.b )
+ ctx.translate( thumbnail_side * 1/2, thumbnail_side * 1/2)
+ ctx.scale( zoom, zoom )
+ ctx.translate( center.a, -center.b )
ctx.scale( -1, 1 )
draw.regions(Rooms.regions, ["#fff"], null)
@@ -73,7 +79,7 @@ Map.Draw = function(map, opt){
// reset the ctx
ctx = map.canvas.getContext("2d")
-
+
return canvas
}
diff --git a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
index 6f96275..0c3cfd4 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
@@ -118,6 +118,16 @@
return data
}
+ base.extent = function(){
+ var extent = new Rect ( new vec2(Infinity, -Infinity), new vec2(Infinity, -Infinity) )
+
+ base.forEach(function(room){
+ extent.expand(room.rect)
+ })
+
+ return extent
+ }
+
base.sorted_by_position = function(){
return sort.rooms_by_position( base.values() )
}