Ignore:
Timestamp:
Jan 7, 2011, 1:53:05 AM (13 years ago)
Author:
sommeria
Message:

bug with mouse object editing resolved. Display feature 'satus' for PIV task advancement introduced. Various bug repair and cleaning

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/plot_object.m

    r156 r177  
    9292
    9393%% default input parameters
    94 if ~isfield(ObjectData,'ProjMode')|isempty(ObjectData.ProjMode)
     94if ~isfield(ObjectData,'ProjMode')||isempty(ObjectData.ProjMode)
    9595     ObjectData.ProjMode='projection';%default
    9696end
    97 if ~isfield(ObjectData,'Coord')|isempty(ObjectData.Coord)
     97if ~isfield(ObjectData,'Coord')||isempty(ObjectData.Coord)
    9898     ObjectData.Coord=[0 0 0];%default
    9999end
    100 if ~isfield(ObjectData,'Phi')|isempty(ObjectData.Phi)
     100if ~isfield(ObjectData,'Phi')||isempty(ObjectData.Phi)
    101101     ObjectData.Phi=0;%default
    102102end
     
    131131    YMax=max(XMax,YMax);
    132132    YMax=max(YMax,ZMax);
    133 elseif isequal(ObjectData.Style,'rectangle')|isequal(ObjectData.Style,'ellipse')|isequal(ObjectData.Style,'volume')
     133elseif isequal(ObjectData.Style,'rectangle')||isequal(ObjectData.Style,'ellipse')||isequal(ObjectData.Style,'volume')
    134134    if  isequal(YMax,0)
    135135        ylim=get(haxes,'YLim');
     
    159159    xline=ObjectData.Coord(:,1);
    160160    yline=ObjectData.Coord(:,2);
     161    nbpoints=numel(xline);
    161162    if isequal(ObjectData.Style,'polygon')
    162163        xline=[xline; ObjectData.Coord(1,1)];%closing the line
    163164        yline=[yline; ObjectData.Coord(1,2)];
    164     elseif isequal(ObjectData.Style,'plane')| isequal(ObjectData.Style,'volume')
     165    elseif isequal(ObjectData.Style,'plane')|| isequal(ObjectData.Style,'volume')
    165166        phi=ObjectData.Phi*pi/180;%angle in radians
    166167        Xend_x=xline(1)+XMax*cos(phi);
     
    180181            SubLineStyle='--'; %range of projection marked by dash
    181182            if isfield (ObjectData,'DX')
    182                rmfield(ObjectData,'DX');
     183               ObjectData=rmfield(ObjectData,'DX');
    183184            end
    184185            if isfield (ObjectData,'DY')
    185                rmfield(ObjectData,'DY');
     186               ObjectData=rmfield(ObjectData,'DY');
    186187            end
    187188        elseif isequal(ObjectData.ProjMode,'filter')
     
    189190        end
    190191    end
    191     if isequal(ObjectData.Style,'line')|isequal(ObjectData.Style,'polyline')|isequal(ObjectData.Style,'polygon')
     192    if isequal(ObjectData.Style,'line')||isequal(ObjectData.Style,'polyline')||isequal(ObjectData.Style,'polygon')
    192193        if length(xline)<2
    193194            theta=0;
     
    223224        scale_x=2*1.4*XMax/npMx;
    224225        scale_y=2*1.4*YMax/npMy;
    225         xi=[0.5:npMx-0.5]*scale_x+xlim(1);
    226         yi=[0.5:npMy-0.5]*scale_y+ylim(1);
     226        xi=(0.5:npMx-0.5)*scale_x+xlim(1);
     227        yi=(0.5:npMy-0.5)*scale_y+ylim(1);
    227228        [Xi,Yi]=meshgrid(xi,yi);
    228229        X2Max=XMax*XMax;
     
    231232        distY=(Yi-ObjectData.Coord(1,2));
    232233        flag=(distX.*distX/X2Max+distY.*distY/Y2Max)<1;
    233     elseif isequal(ObjectData.Style,'rectangle')|isequal(ObjectData.Style,'volume')
     234    elseif isequal(ObjectData.Style,'rectangle')||isequal(ObjectData.Style,'volume')
    234235        XimaMin=ObjectData.Coord(1,1)-XMax;
    235236        XimaMax=ObjectData.Coord(1,1)+XMax;
     
    240241        scale_x=2*1.4*XMax/npMx;
    241242        scale_y=2*1.4*YMax/npMy;
    242         xi=[0.5:npMx-0.5]*scale_x+xlim(1);
    243         yi=[0.5:npMy-0.5]*scale_y+ylim(1);
     243        xi=(0.5:npMx-0.5)*scale_x+xlim(1);
     244        yi=(0.5:npMy-0.5)*scale_y+ylim(1);
    244245        [Xi,Yi]=meshgrid(xi,yi);
    245246        distX=abs(Xi-ObjectData.Coord(1,1));
     
    270271
    271272PlotData=[];%default
     273
    272274%% MODIFY AN EXISTING OBJECT PLOT
    273275if test_newobj==0;
     
    301303           for ipt=1:length(PlotData.DeformPoint)
    302304               if ishandle(PlotData.DeformPoint(ipt))
    303                    if length(xline)>=ipt &   length(yline)>=ipt   
     305                   if nbpoints>=ipt 
    304306                        set(PlotData.DeformPoint(ipt),'XData',xline(ipt),'YData',yline(ipt));
    305307                    end
    306308               end
    307309           end
    308            if length(xline)>length(PlotData.DeformPoint)
    309                for ipt=length(PlotData.DeformPoint)+1:length(xline)
     310           if nbpoints>length(PlotData.DeformPoint)
     311               for ipt=length(PlotData.DeformPoint)+1:nbpoints
    310312                    PlotData.DeformPoint(ipt)=line(xline(ipt),yline(ipt),'Color',col,'LineStyle','.','Tag','DeformPoint',...
    311313                        'SelectionHighlight','off','UserData',hplot);
     
    314316           end
    315317        end
    316     elseif isequal(ObjectData.Style,'rectangle')|isequal(ObjectData.Style,'ellipse')
     318    elseif isequal(ObjectData.Style,'rectangle')||isequal(ObjectData.Style,'ellipse')
    317319        set(hplot,'Position',[ObjectData.Coord(1,1)-XMax ObjectData.Coord(1,2)-YMax 2*XMax 2*YMax])         
    318320    end
     
    334336    hother=findobj('Tag','proj_object');%find all the proj objects
    335337    for iobj=1:length(hother)
    336         if isequal(get(hother(iobj),'Type'),'rectangle')|isequal(get(hother(iobj),'Type'),'patch')
     338        if strcmp(get(hother(iobj),'Type'),'rectangle')|| strcmp(get(hother(iobj),'Type'),'patch')
    337339            set(hother(iobj),'EdgeColor','b')
    338340            if isequal(get(hother(iobj),'FaceColor'),'m')
     
    363365              end
    364366        end
    365     elseif  isequal(ObjectData.Style,'line')|isequal(ObjectData.Style,'polyline')|...       
    366           isequal(ObjectData.Style,'polygon') |isequal(ObjectData.Style,'plane')|isequal(ObjectData.Style,'volume')%  (isequal(ObjectData.Style,'polygon') & ~test_patch) |isequal(ObjectData.Style,'plane')
     367    elseif  strcmp(ObjectData.Style,'line')||strcmp(ObjectData.Style,'polyline')||...       
     368          strcmp(ObjectData.Style,'polygon') ||strcmp(ObjectData.Style,'plane')||strcmp(ObjectData.Style,'volume')%  (isequal(ObjectData.Style,'polygon') & ~test_patch) |isequal(ObjectData.Style,'plane')
    367369        hh=line(xline,yline,'Color',col);
    368         if ~isequal(ObjectData.Style,'plane')& ~isequal(ObjectData.Style,'volume')
     370        if ~strcmp(ObjectData.Style,'plane') && ~strcmp(ObjectData.Style,'volume')
     371            PlotData.SubObject(1)=line(xinf,yinf,'Color',col,'LineStyle',SubLineStyle,'Tag','proj_object');%draw sub-lines
     372            PlotData.SubObject(2)=line(xsup,ysup,'Color',col,'LineStyle',SubLineStyle,'Tag','proj_object');
    369373            for ipt=1:sizcoord(1)
    370374                PlotData.DeformPoint(ipt)=line(ObjectData.Coord(ipt,1),ObjectData.Coord(ipt,2),'Color',...
    371375                      col,'LineStyle','none','Marker','.','Tag','DeformPoint','SelectionHighlight','off','UserData',hh);
    372376            end
    373             PlotData.SubObject(1)=line(xinf,yinf,'Color',col,'LineStyle',SubLineStyle,'Tag','proj_object');%draw sub-lines
    374             PlotData.SubObject(2)=line(xsup,ysup,'Color',col,'LineStyle',SubLineStyle,'Tag','proj_object');
    375377        end
    376378   
    377     elseif isequal(ObjectData.Style,'rectangle')
     379    elseif strcmp(ObjectData.Style,'rectangle')
    378380        hh=rectangle('Position',[ObjectData.Coord(1,1)-XMax ObjectData.Coord(1,2)-YMax 2*XMax 2*YMax],'EdgeColor',col);   
    379     elseif isequal(ObjectData.Style,'ellipse')
     381    elseif strcmp(ObjectData.Style,'ellipse')
    380382        hh=rectangle('Curvature',[1 1],'Position',[ObjectData.Coord(1,1)-XMax ObjectData.Coord(1,2)-YMax 2*XMax 2*YMax],'EdgeColor',col);
    381383    else
     
    387389        hold on
    388390        hhh=image([xlim(1)+dx/2 xlim(2)-dx/2],[ylim(1)+dy/2 ylim(2)-dy/2],imflag,'Tag','proj_object','HitTest','off');
    389         set(hhh,'AlphaData',(flag)*0.2)
     391        set(hhh,'AlphaData',(flag)*0.2)% set partial transparency to the filling color
    390392        PlotData.SubObject=hhh;   
    391393    end
Note: See TracChangeset for help on using the changeset viewer.