diff --git a/assets/imgs/cursor-light.png b/assets/imgs/cursor-light.png new file mode 100644 index 0000000000000000000000000000000000000000..4a50f922f4bea8f581c8889334b6602fc062c636 Binary files /dev/null and b/assets/imgs/cursor-light.png differ diff --git a/css/main.css b/css/main.css index 8b7e75da9102b275a5e1e1b5ee9d394ae26723f5..f84278efa8d161106b0618e24aa209c7ccd6e128 100644 --- a/css/main.css +++ b/css/main.css @@ -250,7 +250,7 @@ input.numberInput{ #navRibbon{ height: 49px; - width: 300px; + width: 320px; z-index: 1; display: block; position: absolute; diff --git a/js/cam/MachineOneBit.js b/js/cam/MachineOneBit.js index 5b54aa4b3d21ea91993d551193cc1174584847a4..b8b6b33068a195e514e601f735c9a6e240965cf9 100644 --- a/js/cam/MachineOneBit.js +++ b/js/cam/MachineOneBit.js @@ -14,6 +14,10 @@ OneBitBot.prototype.setMachinePosition = function(){ _.each(_.values(this.meshes), function(mesh){//todo add cell? mesh.position.set(self.position.x, self.position.y, self.position.z); }); + var stockPosition = dmaGlobals.assembler.get("stockPosition"); + this.cell.moveTo(stockPosition.x, "x"); + this.cell.moveTo(stockPosition.y, "y"); + this.cell.moveTo(stockPosition.z, "z"); dmaGlobals.three.render(); }; diff --git a/js/menus/Ribbon.js b/js/menus/Ribbon.js index e0979ccda207faa4038d3afc230329014e1063a8..4c269fa9420baaff192434b3b53d7280e727b8c3 100644 --- a/js/menus/Ribbon.js +++ b/js/menus/Ribbon.js @@ -9,7 +9,8 @@ Ribbon = Backbone.View.extend({ events: { "click .cellModeBtn": "_updateCellMode", - "click .deleteMode": "_updateDeleteMode" + "click .deleteMode": "_updateDeleteMode", + "click .highlightMode": "_updateHighlightMode" }, initialize: function(){ @@ -18,6 +19,7 @@ Ribbon = Backbone.View.extend({ this.listenTo(this.model, "change:cellMode", this.render); this.listenTo(this.model, "change:deleteMode", this.render); + this.listenTo(this.model, "change:highlightMode", this.render); this.listenTo(dmaGlobals.lattice, "change:cellType change:connectionType", this.render); this.render(); }, @@ -32,6 +34,11 @@ Ribbon = Backbone.View.extend({ dmaGlobals.appState.set("deleteMode", !dmaGlobals.appState.get("deleteMode")); }, + _updateHighlightMode: function(e){ + e.preventDefault(); + dmaGlobals.appState.set("highlightMode", !dmaGlobals.appState.get("highlightMode")); + }, + render: function(){ this.$el.html(this.template(_.extend(dmaGlobals.lattice.toJSON(), this.model.toJSON()))); }, @@ -43,6 +50,7 @@ Ribbon = Backbone.View.extend({ <% if (allPartTypes[cellType][connectionType]){ %>\ <a data-type="part" class="btn btn-primary btn-ribbon cellModeBtn<% if (cellMode == "part"){ %> ribbon-selected<% } %>" href="#"><img data-type="part" src="assets/imgs/part-sm.png"></a>\ <% } %>\ + <a class="btn btn-primary btn-ribbon highlightMode<% if (highlightMode){ %> ribbon-selected<% } %>" href="#"><img data-type="part" src="assets/imgs/cursor-light.png"></a>\ <a class="btn btn-primary btn-ribbon deleteMode<% if (deleteMode){ %> ribbon-selected"<% } %>"><span class="fui-cross"></span></a>\ </div>\ </div>\ diff --git a/js/models/AppState.js b/js/models/AppState.js index 85572aff6f057faee1f9aea2b66abe84762f74a1..e1b81f50b3ac9d5ba6b7f4575cd08302dd217282 100644 --- a/js/models/AppState.js +++ b/js/models/AppState.js @@ -135,6 +135,7 @@ AppState = Backbone.Model.extend({ //key bindings shift: false, deleteMode: false, + highlightMode: true, extrudeMode: false, cellMode: "cell",//show cells vs part diff --git a/js/threeViews/ThreeView.js b/js/threeViews/ThreeView.js index 03a7b2e9d12dd27351bbf67c19c2be05263b19f6..82f58e1e17e93a1f00ae1d96b4e970ecb8bfd5ef 100644 --- a/js/threeViews/ThreeView.js +++ b/js/threeViews/ThreeView.js @@ -86,6 +86,8 @@ ThreeView = Backbone.View.extend({ _mouseMoved: function(e){ + if (!dmaGlobals.appState.get("highlightMode")) return; + if (this.mouseIsDown && !this.controls.noRotate) {//in the middle of a camera move this.highlighter.setNothingHighlighted(); this._setNoPartIntersections();