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

File Contents

# User Rev Content
1 francois 283
2    
3     #include <stdio.h>
4     #include "m3d_struct.h"
5     #include "m3d_const.h"
6     #include "m3d_hotes.h"
7     #include "prototype.h"
8     extern GEST_MEM *gest ;
9     extern int debug ;
10     struct st_face *m3d_recface2(float *coord,NOEUD *n1,NOEUD *n2,NOEUD *n3)
11     {
12     FACE *courant, *tab_face[4] ;
13     OBJET *obj ;
14     OCT *oct ;
15     CONNEC *connec ;
16     int i ;
17     /* rechercher l'octree d'appartenance : on pourrait lier noeud et octree */
18     oct = n1->oct ;
19     if (oct == NULL)
20     {
21     // if (debug) aff_text("erreur lien noeud octree M3D_RECFACE2 \n") ;
22     return(NULL) ;
23     }
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->n1==n1)&&(courant->n2==n2)&&(courant->n3==n3)) ||
36     ((courant->n1==n1)&&(courant->n2==n3)&&(courant->n3==n2)) )
37     {
38     return(courant) ;
39     }
40     obj = obj->suivant ;/* passer au suivant dans la liste */
41     }
42     }
43     /* recherche parmi les tetraedres connectes au noeud */
44     connec = n1->lis_con ;
45     while (connec != NULL)
46     {
47     if ((connec->tetra)->mark != KILLED)
48     {
49     tab_face[0] = (connec->tetra)->face1 ;
50     tab_face[1] = (connec->tetra)->face2 ;
51     tab_face[2] = (connec->tetra)->face3 ;
52     tab_face[3] = (connec->tetra)->face4 ;
53     for (i=0;i<4;i++)
54     {
55     courant = tab_face[i] ;
56     if (((courant->n1==n1)&&(courant->n2==n2)&&(courant->n3==n3)) ||
57     ((courant->n1==n1)&&(courant->n2==n3)&&(courant->n3==n2)) )
58     {
59     return(courant) ;
60     }
61     }
62     }
63     connec = connec->suivant ;
64     }
65     return(NULL) ;/* la face n'a pas ete trouve */
66     }