Index: /issm/trunk-jpl/src/m/classes/mesh2d.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/mesh2d.m	(revision 24883)
+++ /issm/trunk-jpl/src/m/classes/mesh2d.m	(revision 24884)
@@ -189,4 +189,86 @@
 
 		end % }}}
+		function export(self,varargin) % {{{
+
+			options=pairoptions(varargin{:});
+			filename=getfieldvalue(options,'filename');
+			format=getfieldvalue(options,'format','shp');
+			geometry=getfieldvalue(options,'geometry','line');
+			index=getfieldvalue(options,'index',[]);
+			proj=getfieldvalue(options,'projection','');
+
+			%prepare contours: 
+			contours= struct([]);
+			if strcmpi(geometry,'point'),
+				for i=1:self.numberofvertices,
+					contours(i).x = self.x(i);
+					contours(i).y = self.y(i);
+					contours(i).id = i;
+					contours(i).Geometry = 'Point';
+				end
+			elseif strcmpi(geometry,'line'),
+				counter=1;
+				for i=1:self.numberofelements,
+					el=self.elements(i,:);
+					%first line:
+					contours(counter).x = [self.x(el(1)) self.x(el(2))];
+					contours(counter).y = [self.y(el(1)) self.y(el(2))];
+					contours(counter).Geometry = 'Line';
+
+					%second line:
+					contours(counter+1).x = [self.x(el(2)) self.x(el(3))];
+					contours(counter+1).y = [self.y(el(2)) self.y(el(3))];
+					contours(counter+1).Geometry = 'Line';
+
+					%third line:
+					contours(counter+2).x = [self.x(el(3)) self.x(el(1))];
+					contours(counter+2).y = [self.y(el(3)) self.y(el(1))];
+					contours(counter+2).Geometry = 'Line';
+					
+					%increase counter: 
+					counter=counter+3;
+				end
+			elseif strcmpi(geometry,'polygon'),
+				if isempty(index),
+					counter=1;
+					for i=1:self.numberofelements,
+						el=self.elements(i,:);
+						contours(i).x=[self.x(el(1)) self.x(el(2)) self.x(el(3)) self.x(el(1))];
+						contours(i).y=[self.y(el(1)) self.y(el(2)) self.y(el(3)) self.y(el(1))];
+						contours(i).Geometry = 'Polygon';
+						contours(i).Id = i;
+					end
+				else
+					counter=1;
+					for i=1:length(index),
+						el=self.elements(index(i),:);
+						contours(i).x=[self.x(el(1)) self.x(el(2)) self.x(el(3)) self.x(el(1))];
+						contours(i).y=[self.y(el(1)) self.y(el(2)) self.y(el(3)) self.y(el(1))];
+						contours(i).id = index(i);
+						contours(i).Geometry = 'Polygon';
+					end
+				end
+			else
+				error(sprintf('mesh3dsurface ''export'' error message: geometry %s not supported yet (should be ''point'' or ''line''',geometry));
+			end
+
+			%write file: 
+			if strcmpi(format,'shp'),
+				shpwrite(contours,filename);
+			elseif strcmpi(format,'exp'),
+				expwrite(contours,filename);
+			else
+				error(sprintf('mesh3dsurface ''export'' error message: file format %s not supported yet',format));
+			end
+
+			%write projection file: 
+			if ~isempty(proj),
+				proj2shpprj(filename,proj);
+			end
+			%write style file: 
+			applyqgisstyle(filename,'mesh');
+
+
+		end % }}}
 	end
 end
