16#ifndef Octree_included
17#define Octree_included
19#include <TRUSTTabs_forward.h>
23#include <Domaine_forward.h>
26#define GaucheArriereBas 0
27#define DroitArriereBas 1
28#define GaucheAvantBas 2
29#define DroitAvantBas 3
30#define GaucheArriereHaut 4
31#define DroitArriereHaut 5
32#define GaucheAvantHaut 6
33#define DroitAvantHaut 7
44 int direction(
double x,
double y,
double z)
const;
52template <
typename _SIZE_>
100template <
typename _SIZE_>
125 associer_Domaine(oc.domaine());
162template <
typename _SIZE_>
classe Domaine_32_64 un Domaine est un maillage compose d'un ensemble d'elements geometriques de meme...
Class defining operators and methods for all reading operation in an input flow (file,...
Objet_U()
Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_),...
int_t rang_elem_depuis_loc(const OctreeLoc &, int_t prems, double x, double y=0, double z=0) const override
Octree_32_64< _SIZE_ > Octree_t
ArrOfInt_T< _SIZE_ > ArrOfInt_t
OctreeFloor_32_64(Octree_t *mon_pere, const ArrOfInt_t &val, const OctreeLoc &loc)
void construire(Octree_t *, const ArrOfInt_t &, const OctreeLoc &)
int_t taille() const override
Renvoie la taille de l'octree.
Sortie & printOn(Sortie &is) const override
Entree & readOn(Entree &is) override
int_t rang_elem_loc(const OctreeLoc &, double x, double y=0, double z=0) const override
OctreeRoot_32_64(const OctreeRoot_32_64 &oc)
int_t rang_sommet(double x, double y=0, double z=0) const
int_t rang_arete(const DoubleTab &positions, SmallArrOfTID_t &aretes) const
SmallArrOfTID_T< _SIZE_ > SmallArrOfTID_t
int_t rang_elem(double x, double y=0, double z=0) const
int_t rang_elem_depuis(const DoubleTab &positions, const SmallArrOfTID_t &prems, SmallArrOfTID_t &elems) const
int_t rang_elem_depuis(int_t prems, double x, double y=0, double z=0) const
IntTab_T< _SIZE_ > IntTab_t
int_t rang_sommet(const DoubleTab &positions, SmallArrOfTID_t &sommets) const
void construire(int reel=0)
void rang_elems_sommet(SmallArrOfTID_t &, double x, double y=0, double z=0) const
int construit() const
Renvoie vrai si le domaine associe a l'octree est non nulle.
ArrOfInt_T< _SIZE_ > ArrOfInt_t
int_t rang_arete(double x, double y=0, double z=0) const
const Domaine_t & domaine() const override
DoubleTab_T< _SIZE_ > DoubleTab_t
Domaine_32_64< _SIZE_ > Domaine_t
Octree_32_64< _SIZE_ > Octree_t
OctreeRoot_32_64(const Domaine_t &z)
OBS_PTR(Domaine_t) le_dom
int_t rang_elem(const DoubleTab &positions, SmallArrOfTID_t &elem) const
void associer_Domaine(const Domaine_t &d)
Octree_32_64 ** les_octrees
void detruire()
Detruit l'octree.
virtual int_t rang_elem_depuis_loc(const OctreeLoc &, int_t prems, double x, double y=0, double z=0) const
DoubleTab_T< _SIZE_ > DoubleTab_t
virtual int_t taille() const
Renvoie la taille de l'octree.
void ranger_elem_3D(ArrOfInt &oks, int_t elem, int_t idx, int nb_som_elem, const DoubleTab_t &coords_som, const IntTab_t &les_elems, SmallArrOfTID_t &compteur, Vect_IntTab_t &sous_tab, double xmil, double ymil, double zmil)
IntTab_T< _SIZE_ > IntTab_t
virtual int_t rang_elem_loc(const OctreeLoc &, double x, double y=0, double z=0) const
TRUST_Vector< IntTab_t > Vect_IntTab_t
static int nombre_d_octrees()
ArrOfInt_T< _SIZE_ > ArrOfInt_t
void ranger_elem_1D(ArrOfInt &oks, int_t elem, int_t idx, int nb_som_elem, const DoubleTab_t &coords_som, const IntTab_t &les_elems, SmallArrOfTID_t &compteur, Vect_IntTab_t &sous_tab, double xmil)
Octree_32_64(int n, Octree_32_64 *mon_pere, const ArrOfInt_t &val, const OctreeLoc &loc)
SmallArrOfTID_T< _SIZE_ > SmallArrOfTID_t
void construire(int, const ArrOfInt_t &, const OctreeLoc &, Octree_t *p=0)
double get_epsilon() const
virtual Sortie & printOn(Sortie &is) const
void ranger_elem_2D(ArrOfInt &oks, int_t elem, int_t idx, int nb_som_elem, const DoubleTab_t &coords_som, const IntTab_t &les_elems, SmallArrOfTID_t &compteur, Vect_IntTab_t &sous_tab, double xmil, double ymil)
virtual Entree & readOn(Entree &is)
virtual const Domaine_t & domaine() const
Domaine_32_64< _SIZE_ > Domaine_t
Octree_32_64< _SIZE_ > Octree_t
Classe de base des flux de sortie.
void construire(const OctreeLoc &loc, int i)
int direction(double x, double y, double z) const