 |
MAGiC
V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
|
Aller à la documentation de ce fichier.
48 for (
int i=0;i<nb;i++)
59 nb=liste_triangle.
get_nb();
60 for (
int i=0;i<nb;i++)
65 nb=liste_triangle.
get_nb();
81 int nb_liste_avant=liste_triangle.
get_nb();
84 int nb_liste_apres=liste_triangle.
get_nb();
85 for (
int i=nb_liste_avant-1;i<nb_liste_apres;i++)
99 double t=-(ax*param[0]+by*param[1]+cz*param[2]+d);
100 double xtmp=param[0]+t*ax;
101 double ytmp=param[1]+t*by;
102 double ztmp=param[2]+t*cz;
106 dist=fabs(ax*param[0]+by*param[1]+cz*param[2]+d);
113 dist=0.333333333*(d1+d2+d3);
121 distance[terme]=dist;
127 if (distance[0]<distance[1]) num=1;
128 if (distance[1]<distance[2]) num=2;
129 if (distance[2]<distance[3]) num=3;
130 if (dist<distance[num])
139 if (sortie==1) sortie=2;
142 if (nb_tour>4) sortie=1;
143 if ((nb_tour>1) && (terme>3) ) sortie=1;
151 double dismin=distance[0];
152 for (
int i=1;i<terme;i++) dismin=std::min(dismin,distance[i]);
155 for (
int i=0;i<terme;i++)
181 xyz[num_param]=xyz[num_param]+1e-6;
182 double res1[9],res2[9];
185 resultat[0]=(res2[0]-res1[0])/1e-6;
186 resultat[1]=(res2[1]-res1[1])/1e-6;
187 resultat[2]=(res2[2]-res1[2])/1e-6;
188 resultat[3]=(res2[3]-res1[3])/1e-6;
189 resultat[4]=(res2[4]-res1[4])/1e-6;
190 resultat[5]=(res2[5]-res1[5])/1e-6;
191 resultat[6]=(res2[6]-res1[6])/1e-6;
192 resultat[7]=(res2[7]-res1[7])/1e-6;
193 resultat[8]=(res2[8]-res1[8])/1e-6;
211 int nb=liste_triangle.
get_nb();
213 for (
int i=0;i<nb;i++)
269 double eps=n1n2*n1n2;
270 eps=eps*eps*4*0.0001;
279 double ps3=(-1)*(pv3*n);
280 if (ps3>(-eps))
return true;
virtual void supprimer(X x)
class CTVOL_NOEUD * get_noeud3(void)
virtual MG_SEGMENT * get_segment1(void)
void creer_frontiere_plus(void)
virtual void evaluer(double *param, double *resultat)
int noeud_est_triangle(CTVOL_NOEUD *noeud1, CTVOL_NOEUD *noeud2, CTVOL_NOEUD *noeud3, double x, double y, double z)
virtual double get_valeur_maximale(int num)
TPL_OCTREE< class MG_TRIANGLE *, class MG_NOEUD * > * octree_de_frontiere
virtual void evaluer_decompose(double *metrique_depart, double *metrique_decompose)
class CTVOL_NOEUD * get_noeud2(void)
virtual double get_z(void)
void incremente_nb_segment(int nb=1)
virtual int valide_parametre(double *param)
virtual MG_SEGMENT * get_segment2(void)
virtual ~FCT_TAILLE_VOLUME()
virtual void deriver(double *param, double *resultat, int num_param=0)
virtual double get_x(void) const
virtual MG_SEGMENT * get_segment3(void)
void change_densite(double dens)
virtual void inserer(BOITE_3D &boite, A a, TPL_CELLULE_OCTREE< A, CONDITION > *cellule)
class CTVOL_NOEUD * get_noeud1(void)
virtual void rechercher(BOITE_3D &boite, TPL_MAP_ENTITE< A > &liste_entite_trouve, TPL_CELLULE_OCTREE< A, CONDITION > *cellule)
FCT_TAILLE_VOLUME(double dist, TPL_OCTREE< class MG_TRIANGLE *, class MG_NOEUD * > *frontiere)
virtual MG_NOEUD * get_noeud2(void)
class MG_NOEUD * get_noeud(void)
virtual double get_y(void) const
virtual double get_x(void)
virtual void ajouter(X x)
virtual X getid(unsigned long num)
virtual MG_NOEUD * get_noeud1(void)
double2 sqrt(double2 &val)
virtual BOITE_3D get_boite_de_base(void)
virtual MG_NOEUD * get_noeud3(void)
virtual double get_z(void) const
virtual double get_longueur(void)
virtual void initialiser(TPL_LISTE_ENTITE< CONDITION > *lst_entite, int nombre, double xmin, double ymin, double zmin, double xmax, double ymax, double zmax)
TPL_OCTREE< class CTVOL_TRIANGLE *, class MG_NOEUD * > * octree_plus_de_frontiere
virtual double get_y(void)
TPL_MAP_ENTITE< class CTVOL_NOEUD * > * liste_noeud