From 2ecbf2e331e1e5352fbd54633dbaedf1942cc541 Mon Sep 17 00:00:00 2001
From: amandaghassaei <amandaghassaei@gmail.com>
Date: Tue, 2 May 2017 22:29:14 -0400
Subject: [PATCH] edge vis

---
 index.html     | 18 ++++++++++++++++++
 js/controls.js | 18 ++++++++++++++++++
 js/crease.js   | 10 +++++++++-
 js/globals.js  |  6 +++++-
 js/model.js    | 13 ++++++++++++-
 5 files changed, 62 insertions(+), 3 deletions(-)

diff --git a/index.html b/index.html
index 063155e..8483854 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 52e5618..3bece06 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 dc3805f..b4bc4e3 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 3a6e069..87a9568 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 5eae06c..460d2c2 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,
-- 
GitLab