38 FCT_GENERATEUR_FRONTIERE::FCT_GENERATEUR_FRONTIERE(
MG_GESTIONNAIRE& mggest,
double dn,
double eps,
int ind1,
double ind2,
double *lst_pt_ctrl,
int nbpt):
FCT_GENERATEUR_ECHANTILLONAGE_ESTIMATION(dn,ind1,ind2),gest(mggest),
epsilon(eps),point_controle(lst_pt_ctrl),nb_pt_ctrl(nbpt)
52 std::map<MG_ELEMENT_TOPOLOGIQUE*,MG_ELEMENT_TOPOLOGIQUE*>::iterator it;
56 ele->get_topologie_sousjacente(&lst);
62 for (
int i=0;i<nb_geo;i++)
67 for (
int j=0;j<nb_face;j++)
78 for (
int j=0;j<nb_arete;j++)
82 if (lst.
existe(arete)==0)
continue;
86 double tdemi=0.5*(tmax+tmin);
87 double xyz1[3],xyz2[3];
93 for (
int k=0;k<nbfac;k++)
107 double courbure=arete->
get_M(t);
108 for (
int l=0;l<nbfac;l++)
120 if (cmax>courbure) courbure=cmax;
126 if (densdep<dn) dn=densdep;
130 BOITE_3D boite(xyz[0]-dist,xyz[1]-dist,xyz[2]-dist,xyz[0]+dist,xyz[1]+dist,xyz[2]+dist);
150 double courbure=arete->
get_M(t);
151 for (
int l=0;l<nbfac;l++)
163 if (cmax>courbure) courbure=cmax;
171 if (densdep<dn) dn=densdep;
175 BOITE_3D boite(xyz[0]-dist,xyz[1]-dist,xyz[2]-dist,xyz[0]+dist,xyz[1]+dist,xyz[2]+dist);
182 t=t+dntmp/
sqrt(dxyz[0]*dxyz[0]+dxyz[1]*dxyz[1]+dxyz[2]*dxyz[2]);
194 for (
int j=0;j<nb_face;j++)
198 if (lst.
existe(face)==0)
continue;
230 BOITE_3D boite(xyz[0]-dist,xyz[1]-dist,xyz[2]-dist,xyz[0]+dist,xyz[1]+dist,xyz[2]+dist);
268 BOITE_3D boite(xyz[0]-dist,xyz[1]-dist,xyz[2]-dist,xyz[0]+dist,xyz[1]+dist,xyz[2]+dist);
275 face->
deriver(uv,dxyzdu,dxyzdv);
279 udepnou=uv[0]+dntmp/
sqrt(dxyzdu[0]*dxyzdu[0]+dxyzdu[1]*dxyzdu[1]+dxyzdu[2]*dxyzdu[2]);
280 vdepnou=uv[1]+dntmp/
sqrt(dxyzdv[0]*dxyzdv[0]+dxyzdv[1]*dxyzdv[1]+dxyzdv[2]*dxyzdv[2]);
281 if (udepnou>umax) udepnou=umax;
282 if (vdepnou>vmax) vdepnou=vmax;
287 uv[0]=uv[0]+dntmp/
sqrt(dxyzdu[0]*dxyzdu[0]+dxyzdu[1]*dxyzdu[1]+dxyzdu[2]*dxyzdu[2]);
299 if (uv[1]+1e-10>vmax) ok=4;
303 uv[1]=uv[1]+dntmp/
sqrt(dxyzdv[0]*dxyzdv[0]+dxyzdv[1]*dxyzdv[1]+dxyzdv[2]*dxyzdv[2]);
316 if ((udep+1e-10>umax) && (vdep+1e-10>vmax))
336 BOITE_3D boite(xyz[0]-dist,xyz[1]-dist,xyz[2]-dist,xyz[0]+dist,xyz[1]+dist,xyz[2]+dist);
355 #pragma package(smart_init)