Index: /issm/trunk-jpl/src/m/plot/plot_manager.js
===================================================================
--- /issm/trunk-jpl/src/m/plot/plot_manager.js	(revision 19907)
+++ /issm/trunk-jpl/src/m/plot/plot_manager.js	(revision 19908)
@@ -216,4 +216,12 @@
 		return;
 	}
+	
+	//Figure out if this is a semi-transparent plot.
+	if (options.getfieldvalue('radaroverlay','on')=='on'){
+		if (md.radaroverlay) {
+			nodes["radaroverlay"] = Node(gl,options);
+			plot_radaroverlay(md,data,options,canvas,gl,nodes["radaroverlay"]);
+		}
+	}
 
 	if (typeof data !== 'string'){
Index: /issm/trunk-jpl/src/m/plot/plot_overlay.js
===================================================================
--- /issm/trunk-jpl/src/m/plot/plot_overlay.js	(revision 19907)
+++ /issm/trunk-jpl/src/m/plot/plot_overlay.js	(revision 19908)
@@ -59,10 +59,4 @@
 	var xrange = modelxlim[1] - modelxlim[0];
 	var yrange = modelylim[1] - modelylim[0];
-
-	//redefine overlay as square plane
-	//x = [modelxlim[0], modelxlim[1], modelxlim[0], modelxlim[1]];
-	//y = [modelylim[0], modelylim[0], modelylim[1], modelylim[1]];
-	//z = [modelzlim[0], modelzlim[0], modelzlim[0], modelzlim[0]];
-	//elements = [[1,2,3],[2,4,3]];
 	
 	//generate mesh:
Index: /issm/trunk-jpl/src/m/plot/plot_radaroverlay.js
===================================================================
--- /issm/trunk-jpl/src/m/plot/plot_radaroverlay.js	(revision 19908)
+++ /issm/trunk-jpl/src/m/plot/plot_radaroverlay.js	(revision 19908)
@@ -0,0 +1,89 @@
+function plot_radaroverlay(md,data,options,canvas,gl,node){
+	//PLOT_RADAROVERLAY - Function for plotting a georeferenced image.
+	//Differs from plot_overlay by plotting independent radaroverlay mesh.
+	//This function is called from within the plotmodel code.
+	//
+	//   Usage:
+	//      plot_radaroverlay(md,data,options,canvas,gl,node);
+	//
+	//   See also: PLOTMODEL, PLOT_MANAGER, PLOT_OVERLAY
+
+	//declare variables:  {{{
+	var vertices = [];
+	var indices = [];
+	var texcoords = [];
+	var xmin,xmax;
+	var ymin,ymax;
+	var zmin,zmax;
+	
+	//Process data and model
+	var meshresults = processmesh(md,data,options);
+	var x = meshresults[0]; 
+	var y = meshresults[1]; 
+	var z = meshresults[2]; 
+	var elements = meshresults[3]; 
+	var is2d = meshresults[4]; 
+	var isplanet = meshresults[5];
+	//}}}
+
+	//Compute coordinates and data range:
+	var modelxlim = [ArrayMin(x),ArrayMax(x)];
+	var modelylim = [ArrayMin(y),ArrayMax(y)];
+	var modelzlim = [ArrayMin(z),ArrayMax(z)];
+	var xlim = options.getfieldvalue('xlim',modelxlim);
+	var ylim = options.getfieldvalue('ylim',modelylim);
+	var zlim = options.getfieldvalue('zlim',modelzlim);
+	xmin = xlim[0];
+	xmax = xlim[1];
+	ymin = ylim[0];
+	ymax = ylim[1];
+	zmin = zlim[0];
+	zmax = zlim[1];
+	
+	//Compute scaling: 
+	var scale = 1 / (xmax - xmin);
+	node["shaderName"] = "unlit_textured";
+	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
+	node["scale"] = [scale, scale, scale];
+	node["rotation"] = options.getfieldvalue('view',[0,0,0]);
+	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+	node["modelMatrix"] = recalculateModelMatrix(node);
+	node["texture"] = initTexture(gl,options.getfieldvalue('image'));
+	node["alpha"] = options.getfieldvalue('alpha',.5);
+	node["overlay"] = false;
+	node["drawOrder"] = 1;
+				
+	//some defaults:
+	texcoords.itemSize = 2;
+	vertices.itemSize = 3;
+	
+	x = md.radaroverlay.outerx;
+	y = md.radaroverlay.outery;
+	z = md.radaroverlay.outerheight;
+	elements = md.radaroverlay.outerindex;
+	
+	modelxlim = md.radaroverlay.xlim;
+	modelylim = md.radaroverlay.ylim;
+	
+	var xrange = modelxlim[1] - modelxlim[0];
+	var yrange = modelylim[1] - modelylim[0];
+	
+	//generate mesh:
+	for(var i = 0; i < x.length; i++){
+		vertices[vertices.length] = x[i];
+		vertices[vertices.length] = y[i];
+		vertices[vertices.length] = z[i];
+
+		texcoords[texcoords.length] = (x[i] - modelxlim[0]) / xrange;
+		texcoords[texcoords.length] = (y[i] - modelylim[0]) / yrange;
+	}
+	
+	//linearize the elements array: 
+	indices = indices.concat.apply(indices, elements); 
+	indices.itemSize = 1;
+	for(var i=0;i<indices.length;i++)indices[i]--; //matlab indices from 1, so decrement.
+	
+	/*Initalize buffers: */
+	node["arrays"] = [vertices, texcoords, indices];
+	node["buffers"] = initBuffers(gl,node["arrays"]);
+}
