Index: /trunk/src/plot_field.m
===================================================================
--- /trunk/src/plot_field.m	(revision 73)
+++ /trunk/src/plot_field.m	(revision 74)
@@ -998,7 +998,7 @@
        colorlist(nbcolor,:)=[0 0 0]; %add black to the list of colors
        if ~isempty(ivar_FF)
-            ind_flag=find(vec_F~=1 & vec_FF==0);  %flag warning but not false
+            ind_flag=find(vec_F~=1 & vec_F~=0 & vec_FF==0);  %flag warning but not false
        else
-            ind_flag=find(vec_F~=1);
+            ind_flag=find(vec_F~=1 & vec_F~=0);
        end
        col_vec(ind_flag)=nbcolor;    
Index: /trunk/src/rotate_points.m
===================================================================
--- /trunk/src/rotate_points.m	(revision 74)
+++ /trunk/src/rotate_points.m	(revision 74)
@@ -0,0 +1,166 @@
+%'rotate_points': associated with GUI rotate_points.fig to display message boxes, for error, warning or input calls
+% rotate_points(title,display)
+%
+% OUTPUT:
+% answer  (text string)= 'yes', 'No', 'cancel', or the text string introduced as input
+%
+%INPUT:
+% title: string indicating the type of message box:
+%          title= 'INPUT_TXT','CONFIMATION' ,'ERROR', 'WARNING', 'INPUT_Y-N', default = 'INPUT_TXT' (the title is displayed in the upper bar of the fig). 
+%          if title='INPUT_TXT', input data is asked in an edit box
+%          if title='CONFIMATION'', 'ERROR', 'WARNING', the figure remains  opened until a button 'OK' is pressed
+%          if title='INPUT_Y-N', an answer Yes/No is requested
+% display, displayed text
+% default_answer: default answer in the edit box (only used with title='INPUT_TXT')
+
+function varargout = rotate_points(varargin)
+
+% Last Modified by GUIDE v2.5 05-Jan-2010 15:10:10
+
+% Begin initialization code - DO NOT EDIT
+gui_Singleton = 1;
+gui_State = struct('gui_Name',       mfilename, ...
+                   'gui_Singleton',  gui_Singleton, ...
+                   'gui_OpeningFcn', @rotate_points_OpeningFcn, ...
+                   'gui_OutputFcn',  @rotate_points_OutputFcn, ...
+                   'gui_LayoutFcn',  [] , ...
+                   'gui_Callback',   []);
+if nargin && ischar(varargin{1})
+    gui_State.gui_Callback = str2func(varargin{1});
+end
+
+if nargout
+    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
+else
+    gui_mainfcn(gui_State, varargin{:});
+end
+% End initialization code - DO NOT EDIT
+
+% --- Executes just before rotate_points is made visible.
+function rotate_points_OpeningFcn(hObject, eventdata, handles,input_shift)
+% This function has no output args, see OutputFcn.
+
+% Choose default command line output for rotate_points
+handles.output = 'Cancel';
+
+% Update handles structure
+guidata(hObject, handles);
+testNo=0;
+testCancel=1;
+testinputstring=0;
+icontype='quest';%default question icon (text input asked)
+
+% Determine the position of the dialog - centered on the screen
+FigPos=get(0,'DefaultFigurePosition');
+OldUnits = get(hObject, 'Units');
+set(hObject, 'Units', 'pixels');
+OldPos = get(hObject,'Position');
+FigWidth = OldPos(3);
+FigHeight = OldPos(4);
+ScreenUnits=get(0,'Units');
+set(0,'Units','pixels');
+ScreenSize=get(0,'ScreenSize');
+set(0,'Units',ScreenUnits);
+
+FigPos(1)=1/2*(ScreenSize(3)-FigWidth);
+FigPos(2)=2/3*(ScreenSize(4)-FigHeight);
+FigPos(3:4)=[FigWidth FigHeight];
+set(hObject, 'Position', FigPos);
+set(hObject, 'Units', OldUnits);
+
+% Show a question icon from dialogicons.mat - variables questIconData and questIconMap
+load dialogicons.mat
+eval(['IconData=' icontype 'IconData;'])
+eval(['IconCMap=' icontype 'IconMap;'])
+questIconMap(256,:) = get(handles.figure1, 'Color');
+Img=image(IconData, 'Parent', handles.axes1);
+set(handles.figure1, 'Colormap', IconCMap);
+set(handles.axes1, ...
+    'Visible', 'off', ...
+    'YDir'   , 'reverse'       , ...
+    'XLim'   , get(Img,'XData'), ...
+    'YLim'   , get(Img,'YData')  ...
+    );
+
+if exist('input_shift','var') && ~isempty(input_shift)
+   set(handles.Phi,'String',num2str(input_shift(1)));
+   if numel(input_shift)>=2
+    set(handles.x_0,'String',num2str(input_shift(2)));
+   end
+   if numel(input_shift)>=3
+    set(handles.y_0,'String',num2str(input_shift(3)));
+   end
+end
+
+set(handles.figure1,'WindowStyle','modal')% Make% Make the GUI modal 
+% UIWAIT makes rotate_points wait for user response (see UIRESUME)
+uiwait(handles.figure1);
+
+
+% --- Outputs from this function are returned to the command line.
+function varargout = rotate_points_OutputFcn(hObject, eventdata, handles)
+
+% Get default command line output from handles structure
+varargout{1}=[0 0 0];%default
+if ~isequal(handles.output,'Cancel')
+    x_shift=str2num(get(handles.Phi,'String'));
+    y_shift=str2num(get(handles.x_0,'String'));
+    z_shift=str2num(get(handles.y_0,'String'));
+    if ~isempty(x_shift)
+        varargout{1}(1)=x_shift;
+    end
+    if ~isempty(y_shift)
+        varargout{1}(2)=y_shift;
+    end
+    if ~isempty(z_shift)
+        varargout{1}(3)=z_shift;
+    end
+end
+% The figure can be deleted now
+delete(handles.figure1);
+
+% --- Executes on button press in OK.
+function OK_Callback(hObject, eventdata, handles)
+handles.output = get(hObject,'String');
+guidata(hObject, handles);% Update handles structure
+uiresume(handles.figure1);
+
+% --- Executes on button press in Cancel.
+function Cancel_Callback(hObject, eventdata, handles)
+handles.output = get(hObject,'String');
+%handles.output = 'Cancel'
+guidata(hObject, handles); % Update handles structure
+% Use UIRESUME instead of delete because the OutputFcn needs
+% to get the updated handles structure.
+uiresume(handles.figure1);
+
+% --- Executes when user attempts to close figure1.
+function figure1_CloseRequestFcn(hObject, eventdata, handles)
+if isequal(get(handles.figure1, 'waitstatus'), 'waiting')
+    % The GUI is still in UIWAIT, us UIRESUME
+    uiresume(handles.figure1);
+else
+    % The GUI is no longer waiting, just close it
+    delete(handles.figure1);
+end
+
+% --- Executes on key press over figure1 with no controls selected.
+function figure1_KeyPressFcn(hObject, eventdata, handles)
+% Check for "enter" or "escape"
+if isequal(get(hObject,'CurrentKey'),'escape')
+    % User said no by hitting escape
+    handles.output = 'Cancel';
+    
+    % Update handles structure
+    guidata(hObject, handles);
+    
+    uiresume(handles.figure1);
+end
+if isequal(get(hObject,'CurrentKey'),'return')
+    uiresume(handles.figure1);
+end    
+
+
+
+
+
Index: /trunk/src/set_object.m
===================================================================
--- /trunk/src/set_object.m	(revision 73)
+++ /trunk/src/set_object.m	(revision 74)
@@ -202,5 +202,7 @@
         end
         set(handles.ZMax,'String',num2str(max(data.RangeZ),3))
-        set(handles.ZMin,'String',num2str(min(data.RangeZ),3))
+        if numel(data.RangeZ)>=2
+            set(handles.ZMin,'String',num2str(min(data.RangeZ),3))
+        end
     end  
     if isfield(data,'Phi')
@@ -407,5 +409,29 @@
         set(handles.XObject,'TooltipString',['XObject:  x coordinate of the ' ObjectStyle ' centre'])
         set(handles.YObject,'TooltipString',['YObject:  y coordinate of the ' ObjectStyle ' centre'])
-    case {'plane','volume'}  
+    case {'plane'}  
+        set(handles.Phi,'Visible','on')
+        set(handles.XMin,'Visible','on')
+        set(handles.XMax,'Visible','on')
+        set(handles.YMin,'Visible','on')
+        set(handles.YMax,'Visible','on')
+        set(handles.XObject,'TooltipString',['XObject:  x coordinate of the axis origin for the ' ObjectStyle])
+        set(handles.YObject,'TooltipString',['YObject:  y coordinate of the axis origin for the ' ObjectStyle])
+        set(handles.ZMax,'TooltipString',['ZMax: range of projection normal to the plane'])
+        if test3D
+            set(handles.Theta,'Visible','on')
+            set(handles.Psi,'Visible','on')
+            set(handles.ZMax,'Visible','on')
+        end
+        if isequal(ProjMode,'interp')|| isequal(ProjMode,'filter')
+            set(handles.DX,'Visible','on')
+            set(handles.DY,'Visible','on')
+        else
+            set(handles.DX,'Visible','off')
+            set(handles.DY,'Visible','off')
+        end
+        if isequal(ObjectStyle,'volume') && isequal(ProjMode,'interp')
+            set(handles.DZ,'Visible','on')  
+        end
+     case {'volume'}  
         set(handles.Phi,'Visible','on')
         set(handles.XMin,'Visible','on')
Index: /trunk/src/uvmat.m
===================================================================
--- /trunk/src/uvmat.m	(revision 73)
+++ /trunk/src/uvmat.m	(revision 74)
@@ -2336,5 +2336,4 @@
 end
 
-UvData.NewSeries=0;% put to 0 the test for a new field series (set by RootPath_callback)
 % test 3D , default projection menuplane and typical mesh (needed to menuopen set_object)
 test_x=0;
@@ -2480,5 +2479,5 @@
 
 %3D case (menuvolume)
-if NbDim==3
+if NbDim==3 && UvData.NewSeries
     UvData.Object{1}.NbDim=UvData.NbDim;%test for 3D objects
     UvData.Object{1}.RangeZ=UvData.Mesh;%main plotting plane
@@ -2614,4 +2613,5 @@
 %display the updated plotting parameters for the base menuplane
 write_plot_param(handles,UvData.Object{1}.PlotParam);% update the display of the plotting parameters
+UvData.NewSeries=0;% put to 0 the test for a new field series (set by RootPath_callback)
 set(handles.uvmat,'UserData',UvData)
 
