Ignore:
Timestamp:
04/20/12 15:02:46 (13 years ago)
Author:
Mathieu Morlighem
Message:

Merging TriMesh and TriMeshRifts

Location:
issm/trunk-jpl/src/c/modules
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/modules/TriMeshRiftsx/TriMeshRiftsx.cpp

    r12063 r12093  
    2020/*}}}*/
    2121
    22 void TriMeshRiftsx(Matrix** pindex,Vector** px,Vector** py,Matrix** psegments,Vector** psegmentmarkerlist,DataSet* domain,DataSet* rifts,double area,bool order){
     22void TriMeshRiftsx(Matrix** pindex,Vector** px,Vector** py,Matrix** psegments,Vector** psegmentmarkerlist,DataSet* domain,DataSet* rifts,double area){
    2323
    2424        /*indexing: */
     
    4848                in.numberofpoints+=contour->nods;
    4949        }
    50         if (rifts){
    51                 for (i=0;i<rifts->Size();i++){
    52                         contour=(Contour*)rifts->GetObjectByOffset(i);
    53                         in.numberofpoints+=contour->nods;
    54                 }
    55         }
     50        for (i=0;i<rifts->Size();i++){
     51                contour=(Contour*)rifts->GetObjectByOffset(i);
     52                in.numberofpoints+=contour->nods;
     53        }
     54
    5655        /*number of point attributes: */
    5756        in.numberofpointattributes=1;
     
    6968                }
    7069        }
    71         if(rifts){
    72                 for (i=0;i<rifts->Size();i++){
    73                         contour=(Contour*)rifts->GetObjectByOffset(i);
    74                         for (j=0;j<contour->nods;j++){
    75                                 in.pointlist[2*counter+0]=contour->x[j];
    76                                 in.pointlist[2*counter+1]=contour->y[j];
    77                                 counter++;
    78                         }
     70        for (i=0;i<rifts->Size();i++){
     71                contour=(Contour*)rifts->GetObjectByOffset(i);
     72                for (j=0;j<contour->nods;j++){
     73                        in.pointlist[2*counter+0]=contour->x[j];
     74                        in.pointlist[2*counter+1]=contour->y[j];
     75                        counter++;
    7976                }
    8077        }
     
    9491                in.numberofsegments+=contour->nods;
    9592        }
    96         if(rifts){
    97                 for(i=0;i<rifts->Size();i++){
    98                         contour=(Contour*)rifts->GetObjectByOffset(i);
    99                         /*for rifts, we have one less segment as we have vertices*/
    100                         in.numberofsegments+=contour->nods-1;
    101                 }
     93        for(i=0;i<rifts->Size();i++){
     94                contour=(Contour*)rifts->GetObjectByOffset(i);
     95                /*for rifts, we have one less segment as we have vertices*/
     96                in.numberofsegments+=contour->nods-1;
    10297        }
    10398       
     
    122117        }
    123118        counter2=counter;
    124         if(rifts){
    125                 for (i=0;i<rifts->Size();i++){
    126                         contour=(Contour*)rifts->GetObjectByOffset(i);
    127                         for (j=0;j<(contour->nods-1);j++){
    128                                 in.segmentlist[2*counter2+0]=counter;
    129                                 in.segmentlist[2*counter2+1]=counter+1;
    130                                 in.segmentmarkerlist[counter2]=2+i;
    131                                 counter2++;
    132                                 counter++;
    133                         }
    134                         counter++;
    135                 }
     119        for (i=0;i<rifts->Size();i++){
     120                contour=(Contour*)rifts->GetObjectByOffset(i);
     121                for (j=0;j<(contour->nods-1);j++){
     122                        in.segmentlist[2*counter2+0]=counter;
     123                        in.segmentlist[2*counter2+1]=counter+1;
     124                        in.segmentmarkerlist[counter2]=2+i;
     125                        counter2++;
     126                        counter++;
     127                }
     128                counter++;
    136129        }
    137130       
     
    196189
    197190        /*Order segments so that their normals point outside the domain: */
    198         if(order){
    199                 OrderSegments(&segments,out.numberofsegments, index,out.numberoftriangles);
    200         }
     191        OrderSegments(&segments,out.numberofsegments, index,out.numberoftriangles);
    201192
    202193        /*Output : */
  • issm/trunk-jpl/src/c/modules/TriMeshRiftsx/TriMeshRiftsx.h

    r12063 r12093  
    1111
    1212/* local prototypes: */
    13 void TriMeshRiftsx(Matrix** pindex,Vector** px,Vector** py,Matrix** psegments,Vector** psegmentmarkerlist,DataSet* domain,DataSet* rifts,double area,bool order);
     13void TriMeshRiftsx(Matrix** pindex,Vector** px,Vector** py,Matrix** psegments,Vector** psegmentmarkerlist,DataSet* domain,DataSet* rifts,double area);
    1414
    1515#endif  /* _TRIMESHX_H */
  • issm/trunk-jpl/src/c/modules/TriMeshx/TriMeshx.cpp

    r12061 r12093  
    2020/*}}}*/
    2121
    22 void TriMeshx(Matrix** pindex,Vector** px,Vector** py,Matrix** psegments,Vector** psegmentmarkerlist,DataSet* domain,double area,bool order){
     22void TriMeshx(Matrix** pindex,Vector** px,Vector** py,Matrix** psegments,Vector** psegmentmarkerlist,DataSet* domain,DataSet* rifts,double area){
    2323
    2424        /*indexing: */
     
    3535
    3636        /*intermediary: */
    37         int      counter,backcounter;
     37        int      counter,counter2,backcounter;
    3838        Contour* contour=NULL;
    3939
     
    4848                in.numberofpoints+=contour->nods;
    4949        }
     50        for (i=0;i<rifts->Size();i++){
     51                contour=(Contour*)rifts->GetObjectByOffset(i);
     52                in.numberofpoints+=contour->nods;
     53        }
     54
    5055        /*number of point attributes: */
    5156        in.numberofpointattributes=1;
     
    6368                }
    6469        }
     70        for (i=0;i<rifts->Size();i++){
     71                contour=(Contour*)rifts->GetObjectByOffset(i);
     72                for (j=0;j<contour->nods;j++){
     73                        in.pointlist[2*counter+0]=contour->x[j];
     74                        in.pointlist[2*counter+1]=contour->y[j];
     75                        counter++;
     76                }
     77        }
    6578       
    6679        /*fill in the point attribute list: */
    67         in.pointattributelist = (REAL *) xmalloc(in.numberofpoints * in.numberofpointattributes * sizeof(REAL));
     80        in.pointattributelist = (REAL*)xmalloc(in.numberofpoints*in.numberofpointattributes*sizeof(REAL));
    6881        for (i=0;i<in.numberofpoints;i++) in.pointattributelist[i] = 0.0;
    6982       
     
    7790                contour=(Contour*)domain->GetObjectByOffset(i);
    7891                in.numberofsegments+=contour->nods;
     92        }
     93        for(i=0;i<rifts->Size();i++){
     94                contour=(Contour*)rifts->GetObjectByOffset(i);
     95                /*for rifts, we have one less segment as we have vertices*/
     96                in.numberofsegments+=contour->nods-1;
    7997        }
    8098       
     
    97115                 counter++;
    98116                 backcounter=counter;
     117        }
     118        counter2=counter;
     119        for (i=0;i<rifts->Size();i++){
     120                contour=(Contour*)rifts->GetObjectByOffset(i);
     121                for (j=0;j<(contour->nods-1);j++){
     122                        in.segmentlist[2*counter2+0]=counter;
     123                        in.segmentlist[2*counter2+1]=counter+1;
     124                        in.segmentmarkerlist[counter2]=2+i;
     125                        counter2++;
     126                        counter++;
     127                }
     128                counter++;
    99129        }
    100130       
     
    159189
    160190        /*Order segments so that their normals point outside the domain: */
    161         if(order){
    162                 OrderSegments(&segments,out.numberofsegments, index,out.numberoftriangles);
    163         }
     191        OrderSegments(&segments,out.numberofsegments, index,out.numberoftriangles);
    164192
    165193        /*Output : */
  • issm/trunk-jpl/src/c/modules/TriMeshx/TriMeshx.h

    r12056 r12093  
    77
    88#include "string.h"
    9 
    109#include "../../Container/Container.h"
    1110#include "../../objects/objects.h"
    1211
    1312/* local prototypes: */
    14 void TriMeshx(Matrix** pindex,Vector** px,Vector** py,Matrix** psegments,Vector** psegmentmarkerlist,DataSet* domain,double area,bool order);
     13void TriMeshx(Matrix** pindex,Vector** px,Vector** py,Matrix** psegments,Vector** psegmentmarkerlist,DataSet* domain,DataSet* rifts,double area);
    1514
    1615#endif  /* _TRIMESHX_H */
Note: See TracChangeset for help on using the changeset viewer.