summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/ui/blueprint/BlueprintEditor.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/javascripts/ui/blueprint/BlueprintEditor.js')
-rw-r--r--public/assets/javascripts/ui/blueprint/BlueprintEditor.js148
1 files changed, 52 insertions, 96 deletions
diff --git a/public/assets/javascripts/ui/blueprint/BlueprintEditor.js b/public/assets/javascripts/ui/blueprint/BlueprintEditor.js
index c781495..545de7b 100644
--- a/public/assets/javascripts/ui/blueprint/BlueprintEditor.js
+++ b/public/assets/javascripts/ui/blueprint/BlueprintEditor.js
@@ -7,22 +7,6 @@ var BlueprintEditor = View.extend(AnimatedView.prototype).extend({
initialize: function(opt){
this.parent = opt.parent
-
- map = new Map ({
- type: "ortho",
- el: document.querySelector("#orthographic"),
- width: window.innerWidth/2,
- height: window.innerHeight,
- zoom: -2,
- zoom_min: -6.2,
- zoom_max: 1,
- })
- map.ui.add_tool("arrow", new ArrowTool)
- map.ui.add_tool("polyline", new PolylineTool)
- map.ui.add_tool("ortho-polyline", new OrthoPolylineTool)
- map.ui.add_tool("eraser", new EraserTool)
- map.ui.add_tool("position", new PositionTool)
- map.ui.placing = false
/*
$(window).resize(function(){
@@ -33,36 +17,62 @@ var BlueprintEditor = View.extend(AnimatedView.prototype).extend({
})
*/
- var PerspectiveToolbar = new Toolbar (".persp-hud")
- PerspectiveToolbar.add("orbit-mode", function(){
- controls.toggle(true)
- movements.lock()
- })
- PerspectiveToolbar.add("keyboard-mode", function(){
- controls.toggle(false)
- movements.unlock()
- movements.gravity(true)
- cam.rotationX = 0
- cam.rotationY = -cam.rotationY
- cam.x = 0
- cam.y = viewHeight + 100
- cam.z = 0
- })
+ scene = new MX.Scene().addTo("#perspective")
+ scene.camera.radius = 20
+ cam = scene.camera
+
+ scene.width = window.innerWidth/2
+ scene.height = window.innerHeight
+ scene.perspective = window.innerHeight
+
+ movements = new MX.Movements(cam, viewHeight)
+ movements.init()
+ movements.lock()
- var OrthographicToolbar = new Toolbar (".ortho-hud")
- OrthographicToolbar.add("arrow-mode", function(){
- map.ui.set_tool("arrow")
+ app.on("move", function(pos){
+ cam.x = pos.x
+ cam.y = pos.y
+ cam.z = pos.z
})
- OrthographicToolbar.add("polyline-mode", function(){
- map.ui.set_tool("polyline")
+
+ var floorplan = this.floorplan = new MX.Image({
+ backface: true,
})
- OrthographicToolbar.add("ortho-polyline-mode", function(){
- map.ui.set_tool("ortho-polyline")
+ scene.add(this.floorplan)
+
+ // recenter perspective view by rightclicking map
+ this.floorplan.el.addEventListener("contextmenu", function(e){
+ e.preventDefault()
+ var offset = offsetFromPoint(e, this)
+ var x = (offset.left - 0.5) * floorplan.width * floorplan.scale
+ var z = (offset.top - 0.5) * floorplan.height * floorplan.scale
+ controls.opt.center.x = -x
+ controls.opt.center.y = 0
+ controls.opt.center.z = -z
+ }, true)
+
+ scene.update()
+
+ controls = new MX.OrbitCamera({
+ el: scene.el,
+ radius: 3000,
+ radiusRange: [ 10, 10000 ],
+ rotationX: PI/4,
+ rotationY: PI/2,
})
- OrthographicToolbar.add("eraser-mode", function(){
- map.ui.set_tool("eraser")
+ controls.init()
+ },
+
+ loadFloorplan: function(media){
+ console.log(media)
+ this.floorplan.load({
+ media: media,
+ keepImage: true,
+ rotationX: -PI/2,
+ rotationY: PI,
+ scale: media.scale,
})
- OrthographicToolbar.pick("ortho-polyline-mode")
+ this.startAnimating()
},
animate: function(t, dt){
@@ -75,7 +85,7 @@ var BlueprintEditor = View.extend(AnimatedView.prototype).extend({
map.draw.ctx.save()
map.draw.translate()
- floorplan.draw(map.draw.ctx, true)
+ this.floorplan.draw(map.draw.ctx, true)
map.draw.coords()
@@ -99,57 +109,3 @@ var BlueprintEditor = View.extend(AnimatedView.prototype).extend({
},
})
-
-function build () {
- scene = new MX.Scene().addTo("#perspective")
- scene.camera.radius = 20
-
- viewHeight = 100
-
- scene.width = window.innerWidth/2
- scene.height = window.innerHeight
- scene.perspective = window.innerHeight
-
- cam = scene.camera
- movements = new MX.Movements(cam, viewHeight)
- movements.init()
- movements.lock()
- movements.velocity(8)
- app.on("move", function(pos){
- cam.x = pos.x
- cam.y = pos.y
- cam.z = pos.z
- })
-
- floorplan = new MX.Image({
- src: "https://s3.amazonaws.com/luckyplop/fbf4295da80f1f66c5e4a248f2ea3e1ce7a22c3d.jpg",
- keepImage: true,
- rotationX: -PI/2,
- rotationY: PI,
- })
- scene.add(floorplan)
-
- // recenter perspective view by rightclicking map
- floorplan.el.addEventListener("contextmenu", function(e){
- e.preventDefault()
- var offset = offsetFromPoint(e, this)
- var x = (offset.left - 0.5) * floorplan.width * floorplan.scale
- var z = (offset.top - 0.5) * floorplan.height * floorplan.scale
- controls.opt.center.x = -x
- controls.opt.center.y = 0
- controls.opt.center.z = -z
- }, true)
-
- scene.update()
-
- controls = new MX.OrbitCamera({
- el: scene.el,
- radius: 3000,
- radiusRange: [ 10, 10000 ],
- rotationX: PI/4,
- rotationY: PI/2,
- })
- controls.init()
-
- animate(0)
-}