Changeset 7331
- Timestamp:
- 02/04/11 08:49:56 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/mex/InternalFront/InternalFront.cpp
r7305 r7331 13 13 int* front=NULL; 14 14 double* front2=NULL; 15 int numberofelements; 15 bool found; 16 int numberofelements,numberofsegments; 16 17 int N,M; 17 int numberofsegments; 18 int id,node1,node2,temp_node; 19 int i,j,ii,jj; 20 int i0,i1; 18 int i,j,ii,jj,id; 21 19 22 20 /*Boot module: */ … … 55 53 56 54 /*We have an ice front to add here, let's go!*/ 57 node1=node2=0;58 55 for(ii=0;ii<3;ii++){ 56 57 found=false; 59 58 for(jj=0;jj<3;jj++){ 60 59 if(elements[(id-1)*3+ii]==elements[i*3+jj]){ 61 if(node1==0){ 62 node1=elements[(id-1)*3+ii]; 63 i0=jj; 64 } 65 else{ 66 node2=elements[(id-1)*3+ii]; 67 i1=jj; 68 69 /*Now, we have node1 and node2. Make sure they are in the trigonometric 70 * orientation, so that the normals points to the right direction: */ 71 if (!((i0==0 && i1==2) || (i0==1 && i1==0) || (i0==2 && i1==1))){ 72 /*swap: */ 73 temp_node=node2; 74 node2=node1; 75 node1=temp_node; 76 } 77 break; 78 } 60 found=true; 61 break; 79 62 } 80 63 } 64 65 /*OK, we just found the node of id, which is not in i. We have the segment*/ 66 if(!found){ 67 front[numberofsegments*4+0]=elements[(id-1)*3+(ii+1)%3]; 68 front[numberofsegments*4+1]=elements[(id-1)*3+(ii+2)%3]; 69 front[numberofsegments*4+2]=id; 70 front[numberofsegments*4+3]=IceEnum; 71 numberofsegments+=1; 72 break; 73 } 81 74 } 82 _assert_(node1 && node2); 83 front[numberofsegments*4+0]=node1; 84 front[numberofsegments*4+1]=node2; 85 front[numberofsegments*4+2]=id; 86 front[numberofsegments*4+3]=IceEnum; 87 numberofsegments+=1; 75 76 /*In debugging mode, check that the segment has been found*/ 77 _assert_(!found); 88 78 } 89 79 }
Note:
See TracChangeset
for help on using the changeset viewer.