diff --git a/index.html b/index.html index 063155efbc964950404636b498cec18c22242e5b..8483854aad100fdea83cbd6aea930102d022fab2 100644 --- a/index.html +++ b/index.html @@ -464,6 +464,24 @@ <input id="edgesVisible" data-toggle="checkbox" class="custom-checkbox layersSelector" type="checkbox"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span> Edges Visible </label> + <div id="edgeVisOptions" class="indent"> + <label class="checkbox" for="mtnsVisible"> + <input id="mtnsVisible" data-toggle="checkbox" class="custom-checkbox layersSelector" type="checkbox"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span> + Mountains + </label> + <label class="checkbox" for="valleysVisible"> + <input id="valleysVisible" data-toggle="checkbox" class="custom-checkbox layersSelector" type="checkbox"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span> + Valleys + </label> + <label class="checkbox" for="panelsVisible"> + <input id="panelsVisible" data-toggle="checkbox" class="custom-checkbox layersSelector" type="checkbox"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span> + Panel Creases + </label> + <label class="checkbox" for="passiveEdgesVisible"> + <input id="passiveEdgesVisible" data-toggle="checkbox" class="custom-checkbox layersSelector" type="checkbox"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span> + Undriven Edges + </label> + </div> </div><br/> Rendering: <div class="indent"> diff --git a/js/controls.js b/js/controls.js index 52e5618a3d63713fbdac2f24649aad53a516b85a..3bece06f2f08c6a80da10e84320451f1a1350121 100644 --- a/js/controls.js +++ b/js/controls.js @@ -232,6 +232,24 @@ function initControls(globals){ setCheckbox("#edgesVisible", globals.edgesVisible, function(val){ globals.edgesVisible = val; + if (globals.edgesVisible) $("#edgeVisOptions").show(); + else $("#edgeVisOptions").hide(); + globals.model.updateEdgeVisibility(); + }); + setCheckbox("#mtnsVisible", globals.mtnsVisible, function(val){ + globals.mtnsVisible = val; + globals.model.updateEdgeVisibility(); + }); + setCheckbox("#valleysVisible", globals.valleysVisible, function(val){ + globals.valleysVisible = val; + globals.model.updateEdgeVisibility(); + }); + setCheckbox("#panelsVisible", globals.panelsVisible, function(val){ + globals.panelsVisible = val; + globals.model.updateEdgeVisibility(); + }); + setCheckbox("#passiveEdgesVisible", globals.passiveEdgesVisible, function(val){ + globals.passiveEdgesVisible = val; globals.model.updateEdgeVisibility(); }); diff --git a/js/crease.js b/js/crease.js index dc3805fe435bac287d854f780c72aaa7691c1899..b4bc4e373257b2301d4f130a1f07b518d3b07411 100644 --- a/js/crease.js +++ b/js/crease.js @@ -7,7 +7,6 @@ function Crease(edge, face1Index, face2Index, targetTheta, type, node1, node2, i //face1 corresponds to node1, face2 to node2 this.edge = edge; - if (targetTheta>0) this.edge.highlight(); for (var i=0;i<edge.nodes.length;i++){ edge.nodes[i].addInvCrease(this); } @@ -84,6 +83,15 @@ Crease.prototype.getNodeIndex = function(node){ return 0; }; +Crease.prototype.setVisibility = function(){ + var vis = false; + if (this.type==0) vis = globals.panelsVisible; + else { + vis = (this.targetTheta>0 && globals.mtnsVisible) || (this.targetTheta<0 && globals.valleysVisible); + } + this.edge.setVisibility(vis); +}; + Crease.prototype.destroy = function(){ this.node1.removeCrease(this); this.node2.removeCrease(this); diff --git a/js/globals.js b/js/globals.js index 3a6e0696cd08dde94af6fdddd9bbc8e0ab37d160..87a95685cf1bca4cbe8aa8110ec5affcd5bc6ed1 100644 --- a/js/globals.js +++ b/js/globals.js @@ -14,8 +14,12 @@ function initGlobals(){ color1: "ec008b", color2: "dddddd", edgesVisible: true, + mtnsVisible: true, + valleysVisible: true, + panelsVisible: true, + passiveEdgesVisible: true, meshVisible: true, - ambientOcclusion: true, + ambientOcclusion: false, //flags fixedHasChanged: false, diff --git a/js/model.js b/js/model.js index 5eae06ce6b247f1c2fb607a2cbe95b7be87ec941..460d2c2faaa2a7d5f2d665ba5f020bc08710d55f 100644 --- a/js/model.js +++ b/js/model.js @@ -23,7 +23,14 @@ function initModel(globals){ function updateEdgeVisibility(){ for (var i=0;i<edges.length;i++){ - edges[i].setVisibility(globals.edgesVisible); + edges[i].setVisibility(false); + } + if (!globals.edgesVisible) return; + for (var i=0;i<edges.length;i++){ + edges[i].setVisibility(globals.passiveEdgesVisible); + } + for (var i=0;i<creases.length;i++){ + creases[i].setVisibility(); } } @@ -229,6 +236,10 @@ function initModel(globals){ return allNodeObject3Ds; } + function updateEdgeVis(){ + + } + return { pause: pause, resume: resume,