Ignore:
Timestamp:
Aug 27, 2012, 4:38:41 PM (11 years ago)
Author:
sommeria
Message:

new conventions for find_field_cells .

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/mouse_motion.m

    r512 r530  
    9999                Field=FigData.(tagaxes);
    100100                if isfield(Field,'ListVarName')
    101                     [CellVarIndex,NbDim,VarType]=find_field_cells(Field);%analyse the physical fields contained in Field
     101                    [CellInfo,NbDimArray]=find_field_cells(Field);%analyse the physical fields contained in Field
    102102                    text_displ_1='';
    103103                    text_displ_2='';
     
    107107                    xName='';
    108108                    z=[];
    109                     for icell=1:numel(CellVarIndex)%look for all physical fields
    110                         if NbDim(icell)>=2 % select 2D field
    111                             if  isfield(Field,'Mesh') && ~isempty(Field.Mesh)&& ~isempty(VarType{icell}.coord_x) && ~isempty(VarType{icell}.coord_y)%case of unstructured data
    112                                 eval(['X=Field.' Field.ListVarName{VarType{icell}.coord_x} ';'])
    113                                 eval(['Y=Field.' Field.ListVarName{VarType{icell}.coord_y} ';'])
     109                    for icell=1:numel(CellInfo)%look for all physical fields
     110                        if NbDimArray(icell)>=2 % select 2D field
     111                            if  isfield(Field,'Mesh') && ~isempty(Field.Mesh)&& strcmp(CellInfo{icell}.CoordType,'scattered')%case of unstructured data
     112                                X=Field.(Field.ListVarName{CellInfo{icell}.CoordIndex(end)});
     113                                Y=Field.(Field.ListVarName{CellInfo{icell}.CoordIndex(end-1)});
    114114                                flag_vec=(X<(xy(1,1)+Field.Mesh/3) & X>(xy(1,1)-Field.Mesh/3)) & ...%flagx=1 for the vectors with x position selected by the mouse
    115115                                    (Y<(xy(1,2)+Field.Mesh/3) & Y>(xy(1,2)-Field.Mesh/3));%f
     
    132132                                    end
    133133                                    %display the field values
    134                                     for ivar=1:numel(CellVarIndex{icell})
    135                                         VarName=Field.ListVarName{CellVarIndex{icell}(ivar)};
    136                                         eval(['VarVal=Field.' VarName '(ivec);'])
     134                                    for ivar=1:numel(CellInfo{icell}.VarIndex)
     135                                        VarName=Field.ListVarName{CellInfo{icell}.VarIndex(ivar)};
     136                                        VarVal=Field.(VarName)(ivec);
    137137                                        var_text=[VarName '=' num2str(VarVal,3) ','];
    138                                         if isequal(ivar,VarType{icell}.coord_x)||isequal(ivar,VarType{icell}.coord_y)||isequal(ivar,VarType{icell}.coord_z)
     138                                        if isequal(ivar,CellInfo{icell}.CoordIndex(end))||isequal(ivar,CellInfo{icell}.CoordIndex(end-1))||isequal(ivar,CellInfo{icell}.CoordIndex(1))
    139139                                            text_displ_1=[text_displ_1 var_text];
    140                                         elseif isequal(ivar,VarType{icell}.vector_x)||isequal(ivar,VarType{icell}.vector_y)||isequal(ivar,VarType{icell}.vector_z)
     140                                        elseif (isfield(CellInfo{icell},'VarIndex_vector_x') && isequal(ivar,CellInfo{icell}.VarIndex_vector_x))||isequal(ivar,CellInfo{icell}.VarIndex_vector_y)||...
     141                                                (isfield(CellInfo{icell},'VarIndex_vector_z') && isequal(ivar,CellInfo{icell}.VarIndex_vector_z))
    141142                                            text_displ_3=[text_displ_3 var_text];
    142143                                        else
     
    149150                                    end
    150151                                end
    151                             elseif numel(VarType{icell}.coord) >=2 & VarType{icell}.coord > 0 %structured coordinates
    152                                 yName=Field.ListVarName{VarType{icell}.coord(1)};
    153                                 xName=Field.ListVarName{VarType{icell}.coord(2)};
    154                                  eval(['y=Field.' yName ';'])
    155                                  eval(['x=Field.' xName ';'])
    156                                 VarName=Field.ListVarName{CellVarIndex{icell}(1)};
    157                                 eval(['nxy=size(Field.' VarName ');']);
     152                            elseif strcmp(CellInfo{icell}.CoordType,'grid') %structured coordinates
     153                                yName=Field.ListVarName{CellInfo{icell}.CoordIndex(1)};
     154                                xName=Field.ListVarName{CellInfo{icell}.CoordIndex(2)};
     155                                y=Field.(yName);
     156                                x=Field.(xName);
     157                                VarName=Field.ListVarName{CellInfo{icell}.VarIndex(1)};
     158                                nxy=size(Field.(VarName));
    158159                                MaxAY=max(y(1),y(end)); %#ok<COLND>
    159160                                MinAY=min(y(1),y(end)); %#ok<COLND>
     
    163164                                    if indx0>=1 & indx0<=nxy(2) & indy0>=1 & indy0<=nxy(1)
    164165                                        text_displ_2=['i='  num2str(indx0) ',j=' num2str(indy0) ','];
    165                                         for ivar=1:numel(CellVarIndex{icell})
    166                                             VarName=Field.ListVarName{CellVarIndex{icell}(ivar)};
    167                                             eval(['VarVal=Field.' VarName '(indy0,indx0,:);'])
     166                                        for ivar=1:numel(CellInfo{icell}.VarIndex)
     167                                            VarName=Field.ListVarName{CellInfo{icell}.VarIndex(ivar)};
     168                                            VarVal=Field.(VarName)(indy0,indx0,:);
    168169                                            var_text=[VarName '=' num2str(VarVal) ','];
    169170                                            text_displ_2=[text_displ_2 var_text];
Note: See TracChangeset for help on using the changeset viewer.