source: issm/trunk-jpl/src/wrappers/TriMesh/TriMesh.cpp@ 19711

Last change on this file since 19711 was 19711, checked in by Eric.Larour, 9 years ago

CHG: implemented NodeConnectivity module in javascript.

File size: 1.9 KB
RevLine 
[1]1/*
[11932]2 * TriMesh: mesh a domain using an .exp file
[1]3 */
4
5#include "./TriMesh.h"
6
[13236]7void TriMeshUsage(void){/*{{{*/
[15105]8 _printf_("\n");
9 _printf_(" usage: [index,x,y,segments,segmentmarkers]=TriMesh(domainoutlinefilename,rifts,area) \n");
10 _printf_(" where: index,x,y defines a triangulation, segments is an array made \n");
11 _printf_(" of exterior segments to the mesh domain outline, segmentmarkers is an array flagging each segment, \n");
12 _printf_(" outlinefilename an Argus domain outline file, \n");
13 _printf_(" area is the maximum area desired for any element of the resulting mesh, \n");
14 _printf_("\n");
[13236]15}/*}}}*/
[19711]16WRAPPER(TriMesh,double** pindex, double** px, double** py, int* pnel, int* pnods, double** psegments, double** psegmentmarkers, int* pnsegs, double* domainx, double* domainy, int domainnods, double areain){
[19702]17
[15106]18
[13355]19 /*intermediary: */
[15335]20 double area;
21 Contours *domain = NULL;
22 Contours *rifts = NULL;
[1]23
[11932]24 /* output: */
[14673]25 int *index = NULL;
26 double *x = NULL;
27 double *y = NULL;
28 int *segments = NULL;
29 int *segmentmarkerlist = NULL;
[19702]30 int nel,nods,nsegs;
[1]31
[11932]32 /*Boot module: */
33 MODULEBOOT();
[1]34
[12112]35 /*checks on arguments: */
[11932]36 CHECKARGUMENTS(NLHS,NRHS,&TriMeshUsage);
[15106]37
[11932]38 /*Fetch data needed for meshing: */
[13355]39 FetchData(&domain,DOMAINOUTLINE);
40 FetchData(&rifts,RIFTSOUTLINE);
[11932]41 FetchData(&area,AREA);
[1]42
[11932]43 /*call x core: */
[19702]44 TriMeshx(&index,&x,&y,&segments,&segmentmarkerlist,&nel,&nods,&nsegs,domain,rifts,area);
[12093]45
[11932]46 /*write outputs: */
[19702]47 WriteData(INDEX,index,nel,3);
[14673]48 WriteData(X,x,nods);
49 WriteData(Y,y,nods);
50 WriteData(SEGMENTS,segments,nsegs,3);
51 WriteData(SEGMENTMARKERLIST,segmentmarkerlist,nsegs);
[11882]52
[11932]53 /*free ressources: */
54 delete domain;
[12093]55 delete rifts;
[14956]56 xDelete<int>(index);
57 xDelete<double>(x);
58 xDelete<double>(y);
59 xDelete<int>(segments);
60 xDelete<int>(segmentmarkerlist);
[11882]61
[11932]62 /*end module: */
63 MODULEEND();
[1]64}
Note: See TracBrowser for help on using the repository browser.