Changeset 206 for trunk/src/uvmat.m


Ignore:
Timestamp:
Feb 27, 2011, 10:40:29 PM (14 years ago)
Author:
sommeria
Message:

bug fixes to deal with volumes, storage of ACTION menu in series fixed

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/uvmat.m

    r199 r206  
    23892389    return
    23902390end
    2391 [CellVarIndex,NbDim,VarType,errormsg]=find_field_indices(UvData.Field);
     2391'testUVMAT'
     2392UvData.Field
     2393[CellVarIndex,NbDim,VarType,errormsg]=find_field_indices(UvData.Field)
    23922394if ~isempty(errormsg)
    23932395    errormsg=['error in uvmat/refresh_field/find_field_indices: ' errormsg];
     
    23952397end
    23962398[NbDim,imax]=max(NbDim);
     2399VarType{imax}
    23972400if ~isempty(VarType{imax}.coord_x)  && ~isempty(VarType{imax}.coord_y)    %unstructured coordinates
    23982401    XName=UvData.Field.ListVarName{VarType{imax}.coord_x};
     
    24002403    eval(['nbvec=length(UvData.Field.' XName ');'])%nbre of measurement points (e.g. vectors)
    24012404    test_x=1;%test for unstructured coordinates
     2405    if ~isempty(VarType{imax}.coord_z)
     2406        ZName=UvData.Field.ListVarName{VarType{imax}.coord_z};
     2407    else
     2408       NbDim=2;
     2409    end
    24022410elseif VarType{imax}.coord(NbDim)>0 %structured coordinate 
    24032411    XName=UvData.Field.ListVarName{VarType{imax}.coord(NbDim)};
     
    24072415end
    24082416if NbDim==3
    2409     ZName=UvData.Field.ListVarName{VarType{imax}.coord(1)};%structured coordinates in 3D
     2417    if ~test_x
     2418        ZName=UvData.Field.ListVarName{VarType{imax}.coord(1)};%structured coordinates in 3D
     2419    end
    24102420    eval(['ZMax=max(UvData.Field.' ZName ');'])
    24112421    eval(['ZMin=min(UvData.Field.' ZName ');'])
     2422    UvData.Field.ZMax=ZMax;
     2423    UvData.Field.ZMin=ZMin;
    24122424    test_z=1;
    24132425    if isequal(ZMin,ZMax)%no z dependency
     
    24172429end
    24182430if exist('XName','var')
    2419 eval(['XMax=max(UvData.Field.' XName ');'])
    2420 eval(['XMin=min(UvData.Field.' XName ');'])
    2421 UvData.Field.NbDim=NbDim;
    2422 UvData.Field.XMax=XMax;
    2423 UvData.Field.XMin=XMin;
    2424 if NbDim >1
    2425     eval(['YMax=max(UvData.Field.' YName ');'])
    2426     eval(['YMin=min(UvData.Field.' YName ');'])
    2427     UvData.Field.YMax=YMax;
    2428     UvData.Field.YMin=YMin;
    2429 end
    2430 eval(['nbvec=length(UvData.Field.' XName ');'])
    2431 if test_x %unstructured coordinates
    2432     if test_z
    2433         UvData.Field.Mesh=((XMax-XMin)*(YMax-YMin)*(ZMax-ZMin))/nbvec;% volume per vector
    2434         UvData.Field.Mesh=(UvData.Field.Mesh)^(1/3);
     2431    eval(['XMax=max(UvData.Field.' XName ');'])
     2432    eval(['XMin=min(UvData.Field.' XName ');'])
     2433    UvData.Field.NbDim=NbDim;
     2434    UvData.Field.XMax=XMax;
     2435    UvData.Field.XMin=XMin;
     2436    if NbDim >1
     2437        eval(['YMax=max(UvData.Field.' YName ');'])
     2438        eval(['YMin=min(UvData.Field.' YName ');'])
     2439        UvData.Field.YMax=YMax;
     2440        UvData.Field.YMin=YMin;
     2441    end
     2442    eval(['nbvec=length(UvData.Field.' XName ');'])
     2443    if test_x %unstructured coordinates
     2444        if test_z
     2445            UvData.Field.Mesh=((XMax-XMin)*(YMax-YMin)*(ZMax-ZMin))/nbvec;% volume per vector
     2446            UvData.Field.Mesh=(UvData.Field.Mesh)^(1/3);
     2447        else
     2448            UvData.Field.Mesh=sqrt((XMax-XMin)*(YMax-YMin)/nbvec);%2D
     2449        end
    24352450    else
    2436         UvData.Field.Mesh=sqrt((XMax-XMin)*(YMax-YMin)/nbvec);%2D
    2437     end
    2438 else
    2439     VarIndex=CellVarIndex{imax}; % list of variable indices
    2440     DimIndex=UvData.Field.VarDimIndex{VarIndex(1)}; %list of dim indices for the variable
    2441     nbpoints_x=UvData.Field.DimValue(DimIndex(NbDim));
    2442     DX=(XMax-XMin)/(nbpoints_x-1);
    2443     if NbDim >1
    2444         nbpoints_y=UvData.Field.DimValue(DimIndex(NbDim-1));
    2445         DY=(YMax-YMin)/(nbpoints_y-1);
    2446     end
    2447     if NbDim==3
    2448         nbpoints_z=UvData.Field.DimValue(DimIndex(1));
    2449         DZ=(ZMax-ZMin)/(nbpoints_z-1);
    2450         UvData.Field.Mesh=sqrt(DX*DY*DZ);
    2451         UvData.Field.ZMax=ZMax;
    2452         UvData.Field.ZMin=ZMin;
    2453     else
    2454         UvData.Field.Mesh=sqrt(DX*DY);
    2455     end
    2456 end
     2451        VarIndex=CellVarIndex{imax}; % list of variable indices
     2452        DimIndex=UvData.Field.VarDimIndex{VarIndex(1)}; %list of dim indices for the variable
     2453        nbpoints_x=UvData.Field.DimValue(DimIndex(NbDim));
     2454        DX=(XMax-XMin)/(nbpoints_x-1);
     2455        if NbDim >1
     2456            nbpoints_y=UvData.Field.DimValue(DimIndex(NbDim-1));
     2457            DY=(YMax-YMin)/(nbpoints_y-1);
     2458        end
     2459        if NbDim==3
     2460            nbpoints_z=UvData.Field.DimValue(DimIndex(1));
     2461            DZ=(ZMax-ZMin)/(nbpoints_z-1);
     2462            UvData.Field.Mesh=sqrt(DX*DY*DZ);
     2463            UvData.Field.ZMax=ZMax;
     2464            UvData.Field.ZMin=ZMin;
     2465        else
     2466            UvData.Field.Mesh=sqrt(DX*DY);
     2467        end
     2468    end
    24572469end
    24582470
     
    24812493        UvData.Object{1}.RangeZ=UvData.Field.Mesh;%main plotting plane
    24822494        UvData.Object{1}.Coord(1,3)=(UvData.Field.ZMin+UvData.Field.ZMax)/2;%section at a middle plane chosen
    2483         UvData.Object{1}.Phi=0;
    2484         UvData.Object{1}.Theta=0;
    2485         UvData.Object{1}.Psi=0;
     2495        UvData.Object{1}.Angle=[0 0 0];
     2496%         UvData.Object{1}.Theta=0;
     2497%         UvData.Object{1}.Psi=0;
    24862498        UvData.Object{1}.HandlesDisplay=plot(0,0,'Tag','proj_object');% A REVOIR
    2487         PlotHandles=get_plot_handles(handles);
     2499%         PlotHandles=get_plot_handles(handles);
    24882500        UvData.Object{1}.Name='1-PLANE';
    24892501        UvData.Object{1}.enable_plot=1;
    2490         set_object(UvData.Object{1},PlotHandles,ZBounds);
     2502        set_object(UvData.Object{1},handles,ZBounds);
    24912503        set(handles.list_object_1,'Value',1);
    24922504        set(handles.list_object_1,'String',{'1-PLANE'});
     
    25042516            siz=size(XmlData.PlaneAngle);
    25052517            indangle=min(siz(1),UvData.ZIndex);%take first angle if a single angle is defined (translating scanning)
    2506             UvData.Object{1}.Phi=XmlData.PlaneAngle(indangle,1);
    2507             UvData.Object{1}.Theta=XmlData.PlaneAngle(indangle,2);
    2508             UvData.Object{1}.Psi=XmlData.PlaneAngle(indangle,3);
     2518            UvData.Object{1}.PlaneAngle=XmlData.PlaneAngle(indangle,:);
    25092519        end
    25102520    elseif isfield(UvData,'ZIndex')
     
    25622572%loop on the projection objects: one or two
    25632573for imap=1:numel(IndexObj)
    2564     iobj=IndexObj(imap);   
     2574    iobj=IndexObj(imap);
    25652575    [ObjectData,errormsg]=proj_field(UvData.Field,UvData.Object{iobj});% project field on the object
    25662576    if testnewseries && isfield(ObjectData,'CoordUnit')
Note: See TracChangeset for help on using the changeset viewer.