ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/diamesh/src/m3d_recface.cpp
Revision: 283
Committed: Tue Sep 13 21:11:20 2011 UTC (13 years, 8 months ago) by francois
File size: 2330 byte(s)
Log Message:
structure de l'écriture

File Contents

# User Rev Content
1 francois 283
2     #include <stdio.h>
3     #include "m3d_struct.h"
4     #include "m3d_const.h"
5     #include "m3d_hotes.h"
6     #include "prototype.h"
7     extern GEST_MEM *gest ;
8     extern int debug ;
9     struct st_face *m3d_recface(float *coord,NOEUD *n1,NOEUD *n2,NOEUD *n3)
10     {
11     FACE *courant, *tab_face[4] ;
12     OBJET *obj ;
13     OCT *oct ;
14     CONNEC *connec ;
15     int i ;
16    
17    
18     /* rechercher l'octree d'appartenance : on pourrait lier noeud et octree */
19     oct = n1->oct ;
20     /* if (oct == NULL)
21     {
22     if (debug) printf("%s\n"," erreur lien noeud octree M3D_RECFACE ") ;
23     return(NULL) ;
24     }*/
25     /* octree */
26     /* recherche parmi les faces de peau */
27     if (n1->num < gest->nb_init)
28     if (n2->num < gest->nb_init)
29     if (n3->num < gest->nb_init)
30     {
31     obj = oct->lis_obj ;
32     while (obj !=NULL)
33     {
34     courant = obj->ref;/* adresse de l'adresse de la structure face */
35     if (courant->mark!=KILLED)
36     {
37     if (((courant->n1==n1)&&(courant->n2==n2)&&(courant->n3==n3)) ||
38     ((courant->n1==n1)&&(courant->n2==n3)&&(courant->n3==n2)) )
39     {
40     return(courant) ;
41     }
42     }
43     obj = obj->suivant ;/* passer au suivant dans la liste */
44     }
45     }
46     /* recherche parmi les tetraedres connectes au noeud */
47     connec = n1->lis_con ;
48     while (connec != NULL)
49     {
50     if ((connec->tetra)->mark != KILLED)
51     {
52     tab_face[0] = (connec->tetra)->face1 ;
53     tab_face[1] = (connec->tetra)->face2 ;
54     tab_face[2] = (connec->tetra)->face3 ;
55     tab_face[3] = (connec->tetra)->face4 ;
56     for (i=0;i<4;i++)
57     {
58     courant = tab_face[i] ;
59     if (courant->mark!=KILLED)
60     {
61     if (((courant->n1==n1)&&(courant->n2==n2)&&(courant->n3==n3)) ||
62     ((courant->n1==n1)&&(courant->n2==n3)&&(courant->n3==n2)) )
63     {
64     return(courant) ;
65     }
66     }
67     }
68     }
69     connec = connec->suivant ;
70     }
71     return(NULL) ;/* la face n'a pas ete trouvee */
72     }