Index: /issm/trunk-jpl/src/m/plot/webgl.js
===================================================================
--- /issm/trunk-jpl/src/m/plot/webgl.js	(revision 19944)
+++ /issm/trunk-jpl/src/m/plot/webgl.js	(revision 19945)
@@ -32,6 +32,4 @@
 	gl.shaders = loadShaders(gl);
 	
-
-
 	// Add context state variables
 	//TODO:Group variables in objects for organization and naming
@@ -46,6 +44,7 @@
 	canvas.rotation = canvas.rotationDefault;
 	canvas.controlsensitivity = 1;
-
-	if (options.getfieldvalue('2d','off') == 'on') {
+	canvas.twod = options.getfieldvalue('2d','off') == 'on';
+
+	if (canvas.twod) {
 		canvas.rotationAzimuthBounds = [0,0];
 		canvas.rotationElevationBounds = [90,90];
@@ -55,6 +54,6 @@
 	
 	// Add event listeners for canvas
-	canvas.addEventListener("mousewheel", function (ev) {onZoom(ev,canvas,options)}, false);
-	canvas.addEventListener("DOMMouseScroll", function (ev) {onZoom(ev,canvas,options)}, false);
+	canvas.addEventListener("mousewheel", function (ev) {onZoom(ev,canvas,options.getfieldvalue('displayzoom','off') == 'on')}, false);
+	canvas.addEventListener("DOMMouseScroll", function (ev) {onZoom(ev,canvas,options.getfieldvalue('displayzoom','off') == 'on')}, false);
 
 	var mc = new Hammer.Manager(canvas);
@@ -63,6 +62,6 @@
     mc.add(new Hammer.Pinch({threshold:0})).recognizeWith(mc.get('pan'));
 
-    mc.on("panstart panmove", function (ev) {onPan(ev,canvas,options);});
-    mc.on("pinchstart pinchmove", function (ev) {onPinch(ev,canvas,options);});
+    mc.on("panstart panmove", function (ev) {onPan(ev,canvas,options.getfieldvalue('displayview','off') == 'on');});
+    mc.on("pinchstart pinchmove", function (ev) {onPinch(ev,canvas,options.getfieldvalue('displayview','off') == 'on');});
 	//mc.on("mousewheel DOMMouseScroll", function (ev) {onZoom(ev,canvas,options);});
 	
@@ -322,5 +321,5 @@
 //}}}
 //{{{ Interface Functions
-function onPan(ev,canvas,options) { //{{{
+function onPan(ev,canvas,displaylog) { //{{{
 	ev.preventDefault();
 	if (ev.type == 'panstart') {
@@ -350,7 +349,7 @@
 	canvas.lastDeltaY = ev.deltaY;
 	
-	if (options.getfieldvalue('displayview','off') == 'on') console.log(canvas.rotation);
-} //}}}
-function onPinch(ev,canvas,options) { //{{{
+	if (displaylog) console.log(canvas.rotation);
+} //}}}
+function onPinch(ev,canvas,displaylog) { //{{{
 	ev.preventDefault();
 	if (ev.type == 'pinchstart') {
@@ -359,12 +358,12 @@
 	else {
 		canvas.zoomFactor = clamp(ev.scale * canvas.zoomLast, canvas.zoomBounds[1], canvas.zoomBounds[0]);
-		if (options.getfieldvalue('displayzoom','off') == 'on') console.log(canvas.zoomFactor);
-	}
-} //}}}
-function onZoom(ev,canvas,options) { //{{{
+		if (displaylog) console.log(canvas.zoomFactor);
+	}
+} //}}}
+function onZoom(ev,canvas,displaylog) { //{{{
 	ev.preventDefault();
 	var delta = 1/10 * clamp(ev.scale || ev.wheelDelta || -ev.detail, -1, 1);
 	canvas.zoomFactor = clamp(canvas.zoomFactor - delta * canvas.zoomFactor, canvas.zoomBounds[1], canvas.zoomBounds[0]);
-	if (options.getfieldvalue('displayzoom','off') == 'on') console.log(canvas.zoomFactor);
+	if (displaylog) console.log(canvas.zoomFactor);
 } //}}}
 //}}}
@@ -379,5 +378,10 @@
 	var elevationRotationMatrix = mat4.create();
 
-	mat4.perspective(pMatrix, 90 * Math.PI / 180, canvas.clientWidth / canvas.clientHeight, 0.001, 10000.0);
+	if (canvas.twod) {
+		mat4.ortho(pMatrix, 1*canvas.zoomFactor, -1*canvas.zoomFactor, 1*canvas.zoomFactor, -1*canvas.zoomFactor, -1, 1.0);
+	}
+	else {
+		mat4.perspective(pMatrix, 90 * Math.PI / 180, canvas.clientWidth / canvas.clientHeight, 0.001, 10000.0);
+	}
 	
 	//Apply worldspace translation
