ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/acismesh/eval_fdn2b.cpp
Revision: 1
Committed: Mon Jun 11 22:53:07 2007 UTC (17 years, 11 months ago)
File size: 2531 byte(s)
Log Message:

File Contents

# Content
1 /*****************************************************************
2
3 eval_fdn2b.c Type:Func
4
5 Calcul de la densite en un point d une surface non plane
6
7 Date de creation : Wed May 14 17:53:55 1997
8
9 Derniere version : Tue Jul 29 11:20:33 1997
10
11
12
13
14
15
16
17
18 Vincent FRANCOIS
19
20 *****************************************************************/
21
22
23
24
25
26 /**************************/
27 /* include */
28 #include <stdio.h>
29 #include <string.h>
30 #include <math.h>
31 #include <stdlib.h>
32 #include "const.h"
33 #include "memoire.h"
34 #include "struct.h"
35 #include "prototype.h"
36
37
38 /**************************/
39 /* variables globales */
40 extern struct environnement env;
41 extern struct s_mesh *mesh;
42 extern struct s_acis *acis;
43
44
45
46 /**************************/
47 /* programme principal */
48
49 float eval_fdn2b(struct s_face *face,float u,float v,int type)
50 {
51 struct s_face *face_tmp;
52 float coord[3];
53 float dens,dens1,dis,par[4];
54 int i;
55
56 dens=eval_fdn2_eps(face,u,v);
57 eval_face(face,&u,&v,FONCTION,&coord[0],&coord[1],&coord[2],0.,0.);
58
59 for (i=0;i<acis->nb_face;i++)
60 {
61 if (face->rap_face[i]==0)
62 {
63 face_tmp=ADRESSE(i,face,acis->);
64 eval_mindis_face_face(face,face_tmp,&dis,par);
65 if ((dis<4.*dens)&&(face!=face_tmp))
66 {
67 face->rap_face[i]=1;
68 face_tmp->rap_face[face->num_face]=1;
69 }
70 else
71 {
72 face->rap_face[i]=-1;
73 face_tmp->rap_face[face->num_face]=-1;
74 }
75
76 }
77 if (face->rap_face[i]==1)
78 {
79 face_tmp=ADRESSE(i,face,acis->);
80 eval_mindis_face(face_tmp,coord,&dis,par);
81 dens1=eval_fdn2_eps(face_tmp,par[0],par[1]);
82 MINI(dens,dens,dens1+dis/4.);
83 }
84 }
85
86 if ((dens>env.dens)&&(type==TOTAL))
87 dens=eval_fdn2a(face,u,v);
88 if ((dens>env.dens)&&(type==LIMITE))
89 dens=env.dens;
90 return(dens);
91 }