16#include <Rectangle_axi.h>
21template <
typename _SIZE_>
27template <
typename _SIZE_>
38template <
typename _SIZE_>
41 const IntTab_t& les_Polys = this->mon_dom->les_elems();
42 const Domaine_t& le_dom = this->mon_dom.valeur();
43 int_t nb_elem = mon_dom->nb_elem();
48 for (
int_t num_elem=0; num_elem<nb_elem; num_elem++)
51 d_teta = le_dom.
coord(les_Polys(num_elem,3),1) -
52 le_dom.
coord(les_Polys(num_elem,1),1);
57 for(
int s=0; s<this->
nb_som(); s++)
59 num_som = les_Polys(num_elem,s);
61 xp(num_elem,i) += le_dom.
coord(num_som,i);
62 if(le_dom.
coord(num_som,1) == 0.)
63 xp(num_elem,1) += 2*M_PI;
68 for(
int s=0; s<this->
nb_som(); s++)
70 num_som = les_Polys(num_elem,s);
72 xp(num_elem,i) += le_dom.
coord(num_som,i);
75 double x=1./this->
nb_som();
83template <
typename _SIZE_>
86 static Nom nom=
"VOXEL8";
94template <
typename _SIZE_>
97 const Domaine_t& dom=this->mon_dom.valeur();
102 for (
int_t num_poly=0; num_poly<size_tot; num_poly++)
110 if (d_teta<0) d_teta+=2.*M_PI;
111 volumes[num_poly]= dr*r*d_teta;
124template <
typename _SIZE_>
128 const Domaine_t& dom = this->mon_dom.valeur();
132 r0=dom.
coord(som0,0);
133 r3=dom.
coord(som3,0);
134 t0=dom.
coord(som0,1);
135 t3=dom.
coord(som3,1);
136 if (t3<t0) t3+=2*M_PI;
137 if ( inf_ou_egal(r0,pos[0]) && inf_ou_egal(pos[0],r3)
138 && inf_ou_egal(t0,pos[1]) && inf_ou_egal(pos[1],t3) )
int_t nb_elem_tot() const
double coord(int_t i, int j) const
int_t sommet_elem(int_t i, int j) const
Renvoie le numero (global) du j-ieme sommet du i-ieme element.
Class defining operators and methods for all reading operation in an input flow (file,...
class Nom Une chaine de caractere pour nommer les objets de TRUST
virtual Entree & readOn(Entree &)
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
Classe Rectangle Cette classe represente l'element geometrique Rectangle.
int nb_som() const override
Nb of vertices for the element.
Classe Rectangle_axi Cette classe represente la deformee du rectangle dans.
void calculer_volumes(DoubleVect_t &vols) const override
Calcule les volumes des elements du domaine associe.
Domaine_32_64< _SIZE_ > Domaine_t
IntTab_T< _SIZE_ > IntTab_t
void calculer_centres_gravite(DoubleTab_t &) const override
Calcule les centres de gravites de tous les elements du domaine associe a l'element goemetrique.
DoubleTab_T< _SIZE_ > DoubleTab_t
int contient(const ArrOfDouble &pos, int_t elem) const override
Renvoie 1 si l'element ielem du domaine associe a l'element geometrique contient le point.
DoubleVect_T< _SIZE_ > DoubleVect_t
const Nom & nom_lml() const override
Renvoie le nom LML d'un rectangle_axi = "VOXEL8".
Classe de base des flux de sortie.
_SIZE_ size_array() const
void resize(_SIZE_ n, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)
_SIZE_ size_totale() const