Changeset 12061


Ignore:
Timestamp:
04/19/12 16:20:00 (13 years ago)
Author:
Mathieu Morlighem
Message:

Added TriMeshRifts (not working yet)

Location:
issm/trunk-jpl/src/c
Files:
2 edited
1 copied
2 moved

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/Makefile.am

    r12056 r12061  
    799799                        ./modules/TriMeshx/TriMeshx.h\
    800800                        ./modules/TriMeshx/TriMeshx.cpp\
     801                        ./modules/TriMeshRiftsx/TriMeshRiftsx.h\
     802                        ./modules/TriMeshRiftsx/TriMeshRiftsx.cpp\
    801803                        ./modules/PointCloudFindNeighborsx/PointCloudFindNeighborsx.h\
    802804                        ./modules/PointCloudFindNeighborsx/PointCloudFindNeighborsx.cpp\
     
    929931libISSMModules_a_SOURCES += $(kml_sources)
    930932libISSMModules_a_CXXFLAGS = $(ALLCXXFLAGS)
    931 endif
    932933
    933934if PYTHON
     
    941942libISSMMatlab_a_CXXFLAGS= $(ALLCXXFLAGS)
    942943endif
    943 
     944endif
    944945#}}}
    945946#Overload library, to overload any non-standard symbols. {{{1
  • issm/trunk-jpl/src/c/modules/TriMeshRiftsx/TriMeshRiftsx.cpp

    r12060 r12061  
    1 /*!\file TriMeshx
     1/*!\file TriMeshRiftsx
    22 * \brief: x code for TriMesh mesher
    33 */
    44
    55/*Header files: {{{*/
    6 #include "./TriMeshx.h"
     6#include "./TriMeshRiftsx.h"
    77#include "../../shared/shared.h"
    88#include "../../include/include.h"
     
    2020/*}}}*/
    2121
    22 
    23 void TriMeshx(Matrix** pindex,Vector** px,Vector** py,Matrix** psegments,Vector** psegmentmarkerlist,DataSet* domain,double area,bool order){
     22void TriMeshRiftsx(Matrix** pindex,Vector** px,Vector** py,Matrix** psegments,Vector** psegmentmarkerlist,DataSet* domain,double area,bool order){
    2423
    2524        /*indexing: */
     
    7372        for(i=0;i<in.numberofpoints;i++) in.pointmarkerlist[i] = 0;
    7473
    75 
    7674        /*Build segments. First figure out number of segments: holes and closed outlines have as many segments as vertices: */
    7775        in.numberofsegments=0;
     
    10098                 backcounter=counter;
    10199        }
    102 
    103100       
    104101        /*Build regions: */
     
    116113
    117114        /* Make necessary initializations so that Triangle can return a triangulation in `out': */
    118 
    119         out.pointlist = (REAL *) NULL;           
    120         out.pointattributelist = (REAL *) NULL;
    121         out.pointmarkerlist = (int *) NULL;
    122         out.trianglelist = (int *) NULL;         
    123         out.triangleattributelist = (REAL *) NULL;
    124         out.neighborlist = (int *) NULL;         
    125         out.segmentlist = (int *) NULL;
    126         out.segmentmarkerlist = (int *) NULL;
    127         out.edgelist = (int *) NULL;             
    128         out.edgemarkerlist = (int *) NULL;   
     115        out.pointlist             = (REAL*)NULL;
     116        out.pointattributelist    = (REAL*)NULL;
     117        out.pointmarkerlist       = (int *)NULL;
     118        out.trianglelist          = (int *)NULL;
     119        out.triangleattributelist = (REAL*)NULL;
     120        out.neighborlist          = (int *)NULL;
     121        out.segmentlist           = (int *)NULL;
     122        out.segmentmarkerlist     = (int *)NULL;
     123        out.edgelist              = (int *)NULL;
     124        out.edgemarkerlist        = (int *)NULL;
    129125
    130126        /* Triangulate the points:.  Switches are chosen to read and write a  */
     
    133129        /*   produce an edge list (e), a Voronoi diagram (v), and a triangle */
    134130        /*   neighbor list (n).                                              */
    135 
    136131        sprintf(options,"%s%lf","pQzDq30ia",area); /*replace V by Q to quiet down the logging*/
    137 
    138  
    139132        triangulate(options, &in, &out, NULL);
    140 
    141133        /*report(&out, 0, 1, 1, 1, 1, 0);*/
    142 
    143134
    144135        /*Allocate index, x and y: */
     
    149140        segmentmarkerlist=(double*)xmalloc(out.numberofsegments*sizeof(double));
    150141
    151         for (i = 0; i < out.numberoftriangles; i++) {
     142        for (i = 0; i< out.numberoftriangles; i++) {
    152143                for (j = 0; j < out.numberofcorners; j++) {
    153                         *(index+3*i+j)=(double)out.trianglelist[i * out.numberofcorners + j]+1;
     144                        index[3*i+j]=(double)out.trianglelist[i*out.numberofcorners+j]+1;
    154145                }
    155146        }
    156         for (i = 0; i < out.numberofpoints; i++) {
    157                 x[i]=out.pointlist[i * 2 + 0];
    158                 y[i]=out.pointlist[i * 2 + 1];
     147        for (i = 0; i< out.numberofpoints; i++){
     148                x[i]=out.pointlist[i*2+0];
     149                y[i]=out.pointlist[i*2+1];
    159150        }
    160        
    161         for (i = 0; i < out.numberofsegments; i++) {
     151        for (i = 0; i<out.numberofsegments;i++){
    162152                segments[3*i+0]=(double)out.segmentlist[i*2+0]+1;
    163153                segments[3*i+1]=(double)out.segmentlist[i*2+1]+1;
    164154                segmentmarkerlist[i]=(double)out.segmentmarkerlist[i];
    165155        }
    166 
    167 
    168156
    169157        /*Associate elements with segments: */
     
    174162                OrderSegments(&segments,out.numberofsegments, index,out.numberoftriangles);
    175163        }
    176 
    177164
    178165        /*Output : */
     
    187174        *py=new Vector(y,out.numberofpoints);
    188175        *psegmentmarkerlist=new Vector(segmentmarkerlist,out.numberofsegments);
    189 
    190176}
  • issm/trunk-jpl/src/c/modules/TriMeshRiftsx/TriMeshRiftsx.h

    r12060 r12061  
    1 /*!\file:  TriMeshx.h
    2  * \brief header file for TriMeshx module
     1/*!\file:  TriMeshRiftsx.h
     2 * \brief header file for TriMeshRiftsx module
    33 */
    44
    5 #ifndef _TRIMESHX_H_
    6 #define _TRIMESHX_H_
     5#ifndef _TRIMESHRIFTSX_H_
     6#define _TRIMESHRIFTSX_H_
    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 TriMeshRiftsx(Matrix** pindex,Vector** px,Vector** py,Matrix** psegments,Vector** psegmentmarkerlist,DataSet* domain,double area,bool order);
    1514
    1615#endif  /* _TRIMESHX_H */
  • issm/trunk-jpl/src/c/modules/TriMeshx/TriMeshx.cpp

    r12056 r12061  
    1919#endif
    2020/*}}}*/
    21 
    2221
    2322void TriMeshx(Matrix** pindex,Vector** px,Vector** py,Matrix** psegments,Vector** psegmentmarkerlist,DataSet* domain,double area,bool order){
     
    7372        for(i=0;i<in.numberofpoints;i++) in.pointmarkerlist[i] = 0;
    7473
    75 
    7674        /*Build segments. First figure out number of segments: holes and closed outlines have as many segments as vertices: */
    7775        in.numberofsegments=0;
     
    10098                 backcounter=counter;
    10199        }
    102 
    103100       
    104101        /*Build regions: */
     
    116113
    117114        /* Make necessary initializations so that Triangle can return a triangulation in `out': */
    118 
    119         out.pointlist = (REAL *) NULL;           
    120         out.pointattributelist = (REAL *) NULL;
    121         out.pointmarkerlist = (int *) NULL;
    122         out.trianglelist = (int *) NULL;         
    123         out.triangleattributelist = (REAL *) NULL;
    124         out.neighborlist = (int *) NULL;         
    125         out.segmentlist = (int *) NULL;
    126         out.segmentmarkerlist = (int *) NULL;
    127         out.edgelist = (int *) NULL;             
    128         out.edgemarkerlist = (int *) NULL;   
     115        out.pointlist             = (REAL*)NULL;
     116        out.pointattributelist    = (REAL*)NULL;
     117        out.pointmarkerlist       = (int *)NULL;
     118        out.trianglelist          = (int *)NULL;
     119        out.triangleattributelist = (REAL*)NULL;
     120        out.neighborlist          = (int *)NULL;
     121        out.segmentlist           = (int *)NULL;
     122        out.segmentmarkerlist     = (int *)NULL;
     123        out.edgelist              = (int *)NULL;
     124        out.edgemarkerlist        = (int *)NULL;
    129125
    130126        /* Triangulate the points:.  Switches are chosen to read and write a  */
     
    133129        /*   produce an edge list (e), a Voronoi diagram (v), and a triangle */
    134130        /*   neighbor list (n).                                              */
    135 
    136131        sprintf(options,"%s%lf","pQzDq30ia",area); /*replace V by Q to quiet down the logging*/
    137 
    138  
    139132        triangulate(options, &in, &out, NULL);
    140 
    141133        /*report(&out, 0, 1, 1, 1, 1, 0);*/
    142 
    143134
    144135        /*Allocate index, x and y: */
     
    149140        segmentmarkerlist=(double*)xmalloc(out.numberofsegments*sizeof(double));
    150141
    151         for (i = 0; i < out.numberoftriangles; i++) {
     142        for (i = 0; i< out.numberoftriangles; i++) {
    152143                for (j = 0; j < out.numberofcorners; j++) {
    153                         *(index+3*i+j)=(double)out.trianglelist[i * out.numberofcorners + j]+1;
     144                        index[3*i+j]=(double)out.trianglelist[i*out.numberofcorners+j]+1;
    154145                }
    155146        }
    156         for (i = 0; i < out.numberofpoints; i++) {
    157                 x[i]=out.pointlist[i * 2 + 0];
    158                 y[i]=out.pointlist[i * 2 + 1];
     147        for (i = 0; i< out.numberofpoints; i++){
     148                x[i]=out.pointlist[i*2+0];
     149                y[i]=out.pointlist[i*2+1];
    159150        }
    160        
    161         for (i = 0; i < out.numberofsegments; i++) {
     151        for (i = 0; i<out.numberofsegments;i++){
    162152                segments[3*i+0]=(double)out.segmentlist[i*2+0]+1;
    163153                segments[3*i+1]=(double)out.segmentlist[i*2+1]+1;
    164154                segmentmarkerlist[i]=(double)out.segmentmarkerlist[i];
    165155        }
    166 
    167 
    168156
    169157        /*Associate elements with segments: */
     
    174162                OrderSegments(&segments,out.numberofsegments, index,out.numberoftriangles);
    175163        }
    176 
    177164
    178165        /*Output : */
     
    187174        *py=new Vector(y,out.numberofpoints);
    188175        *psegmentmarkerlist=new Vector(segmentmarkerlist,out.numberofsegments);
    189 
    190176}
Note: See TracChangeset for help on using the changeset viewer.