source: issm/trunk-jpl/src/c/modules/MeshProfileIntersectionx/MeshSegmentsIntersection.cpp@ 13220

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

CHG: adjustments to compile the Matlab and Python modules when ADOLC is on.
Had to template MeshPartitionx, because it's used in both modules and the core code.
Had to template Contour too, same reason.
Had to default to ISSMPDouble type for modules such as InterpFromMesh2d* InterpFromGridToMeshx*, etc ..., which
only show up in the Matlab modules.

File size: 1.4 KB
Line 
1/*! \file MeshSegmentsIntersectionx.c
2 */
3
4#include "./MeshProfileIntersectionx.h"
5
6void MeshSegmentsIntersection(double** psegments, int* pnumsegs,int* index, double* x, double* y, int nel, int nods, double* xc, double* yc, int numnodes){
7
8 int i,j;
9
10 /*output: */
11 double* segments=NULL;
12 Segment<double>* segment=NULL;
13 int numsegs;
14
15 /*intermediary: */
16 DataSet* segments_dataset=NULL;
17 double xnodes[3];
18 double ynodes[3];
19
20 /*We don't know how many segments we are going to get, so have a dynamic container: */
21 segments_dataset=new DataSet();
22
23 /*Go through elements, and call ElementSegmentsIntersection routine: */
24 for(i=0;i<nel;i++){
25 for(j=0;j<3;j++){
26 xnodes[j]=x[*(index+3*i+j)];
27 ynodes[j]=y[*(index+3*i+j)];
28 }
29 ElementSegmentsIntersection(segments_dataset,i,xnodes,ynodes,xc,yc,numnodes);
30 }
31
32 /*Using the segments_dataset dataset, create segments: */
33 numsegs=segments_dataset->Size();
34 segments=xNew<double>(5*numsegs);
35 for(i=0;i<numsegs;i++){
36 Segment<double>* segment=(Segment<double>*)segments_dataset->GetObjectByOffset(i);
37
38 /*x1,y1,x2,y2 then element_id: */
39 *(segments+5*i+0)=segment->x1;
40 *(segments+5*i+1)=segment->y1;
41 *(segments+5*i+2)=segment->x2;
42 *(segments+5*i+3)=segment->y2;
43 *(segments+5*i+4)=(double)segment->eid;
44 }
45
46 /*Free ressources:*/
47 delete segments_dataset;
48
49 /*Assign output pointers:*/
50 *psegments=segments;
51 *pnumsegs=numsegs;
52}
Note: See TracBrowser for help on using the repository browser.