var BlueprintToolbar = View.extend({ el: "#blueprintToolbar", events: { "click [data-role=upload-floorplan]": 'showUploader', "click [data-role=toggle-orbit-mode]": 'toggleOrbitMode', "click [data-role=arrow-mode]": 'arrowMode', "click [data-role=polyline-mode]": 'polylineMode', "click [data-role=ortho-polyline-mode]": 'orthoPolylineMode', "click [data-role=eraser-mode]": 'eraserMode', "click [data-role=start-position-mode]": 'startPositionMode', "click [data-role=toggle-layout-settings]": 'toggleSettings', }, initialize: function(opt){ this.parent = opt.parent this.$modes = this.$('.mode') this.$toggleOrbitMode = this.$('[data-role=toggle-orbit-mode]') this.$arrowMode = this.$('[data-role=arrow-mode]') this.$polylineMode = this.$('[data-role=polyline-mode]') this.$orthoPolylineMode = this.$('[data-role=ortho-polyline-mode]') this.$eraserMode = this.$('[data-role=eraser-mode]') this.$startPositionMode = this.$('[data-role=start-position-mode]') this.orthoPolylineMode() }, showUploader: function(){ this.parent.scaler.show() this.parent.uploader.show() }, toggleOrbitMode: function(state){ this.parent.orbiting = typeof state == "boolean" ? state : ! this.parent.orbiting this.$toggleOrbitMode.toggleClass("inuse", ! this.parent.orbiting) this.parent.editor.resize() if (this.parent.orbiting) { controls.toggle(true) movements.lock() } else { controls.toggle(false) movements.unlock() movements.gravity(true) cam.rotationX = 0 cam.rotationY = -cam.rotationY cam.x = this.parent.startPosition.x cam.y = viewHeight cam.z = this.parent.startPosition.z } }, toggleSettings: function(){ this.parent.settings.toggle() this.parent.notice.toggle( ! this.parent.data.isNew && ! this.parent.settings.visible() ) }, setActiveMode: function( $el ) { this.$modes.removeClass('active') $el.addClass('active') }, arrowMode: function(){ this.setActiveMode( this.$arrowMode ) this.parent.map.ui.set_tool("arrow") }, polylineMode: function(){ this.setActiveMode( this.$polylineMode ) this.parent.map.ui.set_tool("polyline") }, orthoPolylineMode: function(){ this.setActiveMode( this.$orthoPolylineMode ) this.parent.map.ui.set_tool("ortho-polyline") }, eraserMode: function(){ this.setActiveMode( this.$eraserMode ) this.parent.map.ui.set_tool("eraser") }, startPositionMode: function(){ this.setActiveMode( this.$startPositionMode ) this.parent.map.ui.set_tool("start-position") this.parent.settings.hide() this.parent.notice.showStartPositionNotice() }, })