source: issm/trunk/src/m/utils/Geometry/FlagElements.m@ 7304

Last change on this file since 7304 was 7304, checked in by Eric.Larour, 14 years ago

Bunch of nice routines for exp and kml files.
Plus, modelextract can now rely on a basin name

File size: 1.5 KB
RevLine 
[5024]1function flag=FlagElements(md,region),
2%FLAGELEMENTS - flag the elements in an region
[2967]3%
[5024]4% The region can be given with an exp file, a list of elements.
[2967]5%
6% Usage:
[5024]7% flag=FlagElements(md,region);
[2967]8%
9% Example:
10% flag=FlagElements(md,'all');
11% flag=FlagElements(md,'');
12% flag=FlagElements(md,'Domain.exp');
13% flag=FlagElements(md,'~Domain.exp');
14% flag=FlagElements(md,md.elementonicesheet);
15
[5024]16 if ischar(region),
17 if isempty(region),
[2967]18 flag=zeros(md.numberofelements,1);
19 invert=0;
[5024]20 elseif strcmpi(region,'all')
[2967]21 flag=ones(md.numberofelements,1);
22 invert=0;
23 else
24 %make sure that we actually don't want the elements outside the domain outline!
[5024]25 if strcmpi(region(1),'~'),
26 region=region(2:length(region));
[2967]27 invert=1;
28 else
29 invert=0;
30 end
[2990]31
[5024]32 %does the region domain outline exist or do we have to look for xlim,ylim in basinzoom?
33 if ~exist(region,'file'),
[7304]34 [xlim,ylim]=basinzoom('basin',region);
[2990]35 flag_nodes=double(md.x<xlim(2) & md.x>xlim(1) & md.y<ylim(2) & md.y>ylim(1));
36 flag=prod(flag_nodes(md.elements),2);
37 else
38 %ok, flag elements
[5024]39 flag=ContourToMesh(md.elements(:,1:3),md.x,md.y,region,'element',1);
[2990]40 end
[2967]41 end
42 if invert,
43 flag=~flag;
44 end
[5024]45 elseif isfloat(region),
46 if size(region,1)~=md.numberofelements,
[3346]47 help FlagElements
[5024]48 error('Flaglist for region must be of same size as number of elements in model');
[2967]49 end
[5024]50 flag=region;
[2967]51 else
[6818]52 error('Invalid region option');
[2967]53 end
54end
Note: See TracBrowser for help on using the repository browser.