Home > vbmeg > external > iso2mesh > mergesurf.m

mergesurf

PURPOSE ^

SYNOPSIS ^

function [newnode,newelem]=mergesurf(node,elem,varargin)

DESCRIPTION ^

 [newnode,newelem]=mergesurf(node1,elem1,node2,elem2,...)

 merge two or more triangular meshes and split intersecting elements
 
 author: Qianqian Fang <fangq at nmr.mgh.harvard.edu>

 input:
      node: node coordinates, dimension (nn,3)
      elem: tetrahedral element or triangle surface (nn,3)

 output:
      newnode: the node coordinates after merging, dimension (nn,3)
      newelem: tetrahedral element or surfaces after merging (nn,4) or (nhn,5)

 note: you can call meshcheckrepair for the output newnode and
 newelem to remove the duplicated nodes or elements

 example:

   [node1,face1,elem1]=meshabox([0 0 0],[10 10 10],1,1);
   [node2,face2,elem2]=meshasphere([5 5 10],3,0.3,3);
   [newnode,newface]=mergemesh(node1,face1,node2,face2);
   plotmesh(newnode,newface,'x>5');

 -- this function is part of iso2mesh toolbox (http://iso2mesh.sf.net)

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [newnode,newelem]=mergesurf(node,elem,varargin)
0002 %
0003 % [newnode,newelem]=mergesurf(node1,elem1,node2,elem2,...)
0004 %
0005 % merge two or more triangular meshes and split intersecting elements
0006 %
0007 % author: Qianqian Fang <fangq at nmr.mgh.harvard.edu>
0008 %
0009 % input:
0010 %      node: node coordinates, dimension (nn,3)
0011 %      elem: tetrahedral element or triangle surface (nn,3)
0012 %
0013 % output:
0014 %      newnode: the node coordinates after merging, dimension (nn,3)
0015 %      newelem: tetrahedral element or surfaces after merging (nn,4) or (nhn,5)
0016 %
0017 % note: you can call meshcheckrepair for the output newnode and
0018 % newelem to remove the duplicated nodes or elements
0019 %
0020 % example:
0021 %
0022 %   [node1,face1,elem1]=meshabox([0 0 0],[10 10 10],1,1);
0023 %   [node2,face2,elem2]=meshasphere([5 5 10],3,0.3,3);
0024 %   [newnode,newface]=mergemesh(node1,face1,node2,face2);
0025 %   plotmesh(newnode,newface,'x>5');
0026 %
0027 % -- this function is part of iso2mesh toolbox (http://iso2mesh.sf.net)
0028 %
0029 
0030 len=length(varargin);
0031 newnode=node;
0032 newelem=elem;
0033 if(len>0 & mod(len,2)~=0)
0034    error('you must give node and element in pairs');
0035 end
0036 for i=1:2:len
0037    no=varargin{i};
0038    el=varargin{i+1};
0039    [newnode,newelem]=surfboolean(newnode,newelem,'all',no,el);
0040 end

Generated on Mon 22-May-2023 06:53:56 by m2html © 2005