Changeset 24318
- Timestamp:
- 11/05/19 14:41:19 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/parameterization/reinitializelevelset.m
r22452 r24318 5 5 % levelsetnew = reinitializelevelset(md,levelset) 6 6 7 % if md is 3d, levelset should be projected on a 2d mesh 8 9 if isempty(levelset), error('levelset provided is empty'); end 10 if dimension(md.mesh)==3, 11 if length(levelset)~=md.mesh.numberofvertices2d, error('levelset provided should be specified at the 2d vertices of the mesh'); end 12 else 13 if length(levelset)~=md.mesh.numberofvertices, error('levelset provided should be specified at the vertices of the mesh'); end 14 end 7 15 8 16 %First: extract segments … … 10 18 11 19 %Now, make this a distance field (might not be closed) 12 levelsetnew=abs(ExpToLevelSet(md.mesh.x,md.mesh.y,contours)); 20 levelsetnew=abs(ExpToLevelSet(md.mesh.x,md.mesh.y,contours)); % levelsetnew comes on the 3d vertices, if mesh is 3d 13 21 14 22 %Finally, change sign 15 pos = find(levelset<0); 16 levelsetnew(pos) = -levelsetnew(pos); 23 pos=find(levelset<0); % if mesh is 3d, it refers to the vertices on the base 24 if dimension(md.mesh)==3 25 for i=1:md.mesh.numberoflayers 26 pos3d=pos+(i-1)*md.mesh.numberofvertices2d; 27 levelsetnew(pos3d)=-levelsetnew(pos3d); 28 end 29 else 30 levelsetnew(pos)=-levelsetnew(pos); 31 end
Note:
See TracChangeset
for help on using the changeset viewer.