Index: /trunk/src/check_files.m
===================================================================
--- /trunk/src/check_files.m	(revision 654)
+++ /trunk/src/check_files.m	(revision 655)
@@ -54,5 +54,5 @@
     'fill_GUI';...%  fill a GUI with a set of parameters from a Matlab structure 
     'filter_tps';...% find the thin plate spline coefficients for interpolation-smoothing
-    'find_field_bounds': % find the boounds and typical meshs of coordinates
+    'find_field_bounds';... % find the boounds and typical meshs of coordinates
     'find_field_cells';...% group the variables of a 'field object' into 'field cells' and specify their structure
     'find_file_series';...% check the content of an input file and find the corresponding file series
Index: /trunk/src/geometry_calib.m
===================================================================
--- /trunk/src/geometry_calib.m	(revision 654)
+++ /trunk/src/geometry_calib.m	(revision 655)
@@ -939,18 +939,14 @@
  huvmat=findobj(allchild(0),'Name','uvmat');%find the current uvmat interface handle
 UvData=get(huvmat,'UserData');%Data associated to the current uvmat interface
-Xima=0.8*[UvData.Field.XMin UvData.Field.XMax UvData.Field.XMax UvData.Field.XMin]';
-Yima=0.8*[UvData.Field.YMin UvData.Field.YMax UvData.Field.YMax UvData.Field.YMin]';
+npy=size(UvData.Field.A,1);
+npx=size(UvData.Field.A,2);
+Xima=[0.25*npx 0.75*npx 0.75*npx 0.25*npx]';
+Yima=[0.25*npy 0.25*npy 0.75*npy 0.75*npy]';
 x=Xima/str2num(answer);
 y=Yima/str2num(answer);
-for j=1:4
-    for i=1:5
-          Coord{j,1}=num2str(x);%
-          Coord{j,2}=num2str(y);%
-          Coord{j,3}='0';%
-          Coord{j,4}=num2str(Xima);%
-          Coord{j,5}=num2str(Yima);%
-    end
-end
-
+Coord={num2str(x(1)) num2str(y(1)) '0' num2str(Xima(1)) num2str(Yima(1));...
+    num2str(x(2)) num2str(y(2)) '0' num2str(Xima(2)) num2str(Yima(2));...
+    num2str(x(3)) num2str(y(3)) '0' num2str(Xima(3)) num2str(Yima(3));...
+    num2str(x(4)) num2str(y(4)) '0' num2str(Xima(4)) num2str(Yima(4))};
 Tabchar=cell2tab(Coord,' | ');
 Tabchar=[Tabchar ;{'......'}];
@@ -1211,5 +1207,5 @@
 GeometryCalib=s.GeometryCalib;
 %GeometryCalib=load_calib(hObject, eventdata, handles)
-calib=reshape(GeometryCalib.PointCoord,[],1);
+calib=reshape(GeometryCalib.SourceCalib.PointCoord,[],1);
 for ilist=1:numel(calib)
     CoordCell{ilist}=num2str(calib(ilist));
Index: /trunk/src/plot_object.m
===================================================================
--- /trunk/src/plot_object.m	(revision 654)
+++ /trunk/src/plot_object.m	(revision 655)
@@ -131,5 +131,5 @@
 
 %% determine the coordinates xline, yline,xsup,xinf, yinf,ysup determining the new object plot
-test_line= isequal(ObjectData.Type,'points')||isequal(ObjectData.Type,'line')||isequal(ObjectData.Type,'line_x')||isequal(ObjectData.Type,'line_y')||...
+test_line= isequal(ObjectData.Type,'points')||isequal(ObjectData.Type,'line')||...
     isequal(ObjectData.Type,'polyline')||isequal(ObjectData.Type,'polygon')|| isequal(ObjectData.Type,'plane')|| isequal(ObjectData.Type,'volume');
 test_patch=isequal(ObjectData.ProjMode,'inside')||isequal(ObjectData.ProjMode,'outside')||isequal(ObjectData.Type,'volume')...
@@ -395,9 +395,22 @@
     if test_patch
         for iobj=1:length(PlotData.SubObject)
-            objtype=get(PlotData.SubObject(iobj),'Type');
-            if isequal(objtype,'image')
-                set(PlotData.SubObject(iobj),'CData',imflag,'AlphaData',(flag)*0.2)
-                set(PlotData.SubObject(iobj),'XData',[xlim(1)+dx/2 xlim(2)-dx/2])
-                set(PlotData.SubObject(iobj),'YData',[ylim(1)+dy/2 ylim(2)-dy/2])
+            if ~ishandle(PlotData.SubObject(iobj))
+                hold on
+                hhh=image([xlim(1)+dx/2 xlim(2)-dx/2],[ylim(1)+dy/2 ylim(2)-dy/2],imflag,'Tag','proj_object','HitTest','off');
+                set(hhh,'AlphaData',(flag)*0.2)% set partial transparency to the filling color
+                PlotData.SubObject(iobj)=hhh;
+            else
+                objtype=get(PlotData.SubObject(iobj),'Type');
+                if isequal(objtype,'image')
+                    set(PlotData.SubObject(iobj),'CData',imflag,'AlphaData',(flag)*0.2)
+                    set(PlotData.SubObject(iobj),'XData',[xlim(1)+dx/2 xlim(2)-dx/2])
+                    set(PlotData.SubObject(iobj),'YData',[ylim(1)+dy/2 ylim(2)-dy/2])
+                end
+            end
+        end      
+    else% no patch image requested, erase existing ones
+        for iobj=1:length(PlotData.SubObject)
+            if ishandle(PlotData.SubObject(iobj)) && strcmp(get(PlotData.SubObject(iobj),'Type'),'image')
+                delete(PlotData.SubObject(iobj))
             end
         end
Index: /trunk/src/proj_field.m
===================================================================
--- /trunk/src/proj_field.m	(revision 654)
+++ /trunk/src/proj_field.m	(revision 655)
@@ -88,6 +88,6 @@
     return
 end
-ListProjMode={'projection','interp_lin','interp_tps'};%list of effective projection modes
-if isempty(strcmp(ObjectData.ProjMode,ListProjMode))
+ListProjMode={'projection','interp_lin','interp_tps','inside','outside'};%list of effective projection modes
+if isempty(find(strcmp(ObjectData.ProjMode,ListProjMode), 1))% no projection in case 
     return
 end
Index: /trunk/src/xml2struct.m
===================================================================
--- /trunk/src/xml2struct.m	(revision 654)
+++ /trunk/src/xml2struct.m	(revision 655)
@@ -47,5 +47,7 @@
         end
     case 'char'   
-        if isempty(regexp(ss,'^(-*\d+\.*\d*\ *)+$'))% if the string does not contains a set of numbers (with possible sign and decimal) separated by blanks
+        out=str2num(ss);
+        %if isempty(regexp(ss,'^(-*\d+\.*\d*\ *)+$'))% if the string does not contain a set of numbers (with possible sign and decimal) separated by blanks
+        if isempty(out)
             sep_ind=regexp(ss,'\s&\s');% check for separator ' & ' which indicates column separation in tables
             if ~isempty(sep_ind)
@@ -57,6 +59,6 @@
                 out=ss; %reproduce the input string
             end
-        else
-            out=str2num(ss);
+%         else
+%             out=str2num(ss);
         end
     case 'cell'
