Octree_Int_32_64#
#include <Octree_Int.h>
: Un octree permettant de retrouver des objets ponctuels ou parallelipipediques dans un espace 1D, 2D ou 3D et des coordonnees entieres
How to cite this class in this doc#
:ref:`Octree\_Int\_32\_64 <class-template-octree-int-32-64>`
[Octree\_Int\_32\_64](#class-template-octree-int-32-64)
Detailed description#
List of Public Methods#
List of Protected Methods#
List of Protected Static Methods#
Complete Member Function Documentation#
void Octree_Int_32_64<_SIZE_>::build(const int dimension, const IntTab_t &elements_boxes)
construction de l’octree.
On donne la dimension (1, 2 ou 3) et un tableau d’elements a stocker dans l’octree. Deux possibilites: 1) les elements sont ponctuels si elements_boxes.dimension(1) = = dimension. Dans ce cas, chaque element se trouve dans un et un seul octree_floor 2) les elements sont des parallelipipedes, si elements_boxes.dimension(1) = = dimension*2 Les “dimension” premieres colonnes sont les coordonnees inferieures, les “dimension” suivantes sont les coordonnees superieures. Un parallelipipede peut etre affecte a plusieurs octree_floor. Les coordonnees stockees dans elements_boxes peuvent aller de 0 a coord_max_ inclus. Il vaut mieux utiliser toute la plage des entiers en multipliant par un facteur adequat.
References
How to cite in this doc:
:ref:`void Octree_Int_32_64<_SIZE_>::build(const int dimension, const IntTab_t &elements_boxes) <public-void-octree-int-32-64-size-build-const-int-dimension-const-inttab-t-ref-elements-boxes>`
[void Octree_Int_32_64<_SIZE_>::build(const int dimension, const IntTab_t &elements_boxes)](#public-void-octree-int-32-64-size-build-const-int-dimension-const-inttab-t-ref-elements-boxes)
const ArrOfInt_t & Octree_Int_32_64<_SIZE_>::floor_elements() const
References
How to cite in this doc:
:ref:`const ArrOfInt_t & Octree_Int_32_64<_SIZE_>::floor_elements() const <public-const-arrofint-t-ref-octree-int-32-64-size-floor-elements-const>`
[const ArrOfInt_t & Octree_Int_32_64<_SIZE_>::floor_elements() const](#public-const-arrofint-t-ref-octree-int-32-64-size-floor-elements-const)
void Octree_Int_32_64<_SIZE_>::reset()
How to cite in this doc:
:ref:`void Octree_Int_32_64<_SIZE_>::reset() <public-void-octree-int-32-64-size-reset>`
[void Octree_Int_32_64<_SIZE_>::reset()](#public-void-octree-int-32-64-size-reset)
Octree_Int_32_64<_SIZE_>::int_t Octree_Int_32_64<_SIZE_>::search_elements(int x, int y, int z, int_t &floor_elements_index) const
renvoie la liste des elements contenant potentiellement le point (x,y,z) On renvoie n = nombre d’elements de la liste et les elements sont dans
floor_elements() [index + i] pour 0 < = i <n. En realite on renvoie tous les elements qui ont une intersection non vide avec l’octree_floor contenant le point (x,y,z)
How to cite in this doc:
:ref:`Octree_Int_32_64<_SIZE_>::int_t Octree_Int_32_64<_SIZE_>::search_elements(int x, int y, int z, int_t &floor_elements_index) const <public-octree-int-32-64-size-int-t-octree-int-32-64-size-search-elements-int-x-int-y-int-z-int-t-ref-floor-elements-index-const>`
[Octree_Int_32_64<_SIZE_>::int_t Octree_Int_32_64<_SIZE_>::search_elements(int x, int y, int z, int_t &floor_elements_index) const](#public-octree-int-32-64-size-int-t-octree-int-32-64-size-search-elements-int-x-int-y-int-z-int-t-ref-floor-elements-index-const)
Octree_Int_32_64<_SIZE_>::int_t Octree_Int_32_64<_SIZE_>::search_elements_box(int xmin, int ymin, int zmin, int xmax, int ymax, int zmax, ArrOfInt_t &elements) const
cherche les elements ayant potentiellement une intersection non vide avec la boite xmin..zmax. Les elements peuvent apparaitre plusieurs fois dans le tableau “elements”
How to cite in this doc:
:ref:`Octree_Int_32_64<_SIZE_>::int_t Octree_Int_32_64<_SIZE_>::search_elements_box(int xmin, int ymin, int zmin, int xmax, int ymax, int zmax, ArrOfInt_t &elements) const <public-octree-int-32-64-size-int-t-octree-int-32-64-size-search-elements-box-int-xmin-int-ymin-int-zmin-int-xmax-int-ymax-int-zmax-arrofint-t-ref-elements-const>`
[Octree_Int_32_64<_SIZE_>::int_t Octree_Int_32_64<_SIZE_>::search_elements_box(int xmin, int ymin, int zmin, int xmax, int ymax, int zmax, ArrOfInt_t &elements) const](#public-octree-int-32-64-size-int-t-octree-int-32-64-size-search-elements-box-int-xmin-int-ymin-int-zmin-int-xmax-int-ymax-int-zmax-arrofint-t-ref-elements-const)
Octree_Int_32_64<_SIZE_>::int_t Octree_Int_32_64<_SIZE_>::build_octree_floor(const ArrOfInt_t &elements_list)
construit un octree_floor avec la liste d’elements donnee et renvoie l’octree_id de cet octree_floor
References
How to cite in this doc:
:ref:`Octree_Int_32_64<_SIZE_>::int_t Octree_Int_32_64<_SIZE_>::build_octree_floor(const ArrOfInt_t &elements_list) <protected-octree-int-32-64-size-int-t-octree-int-32-64-size-build-octree-floor-const-arrofint-t-ref-elements-list>`
[Octree_Int_32_64<_SIZE_>::int_t Octree_Int_32_64<_SIZE_>::build_octree_floor(const ArrOfInt_t &elements_list)](#protected-octree-int-32-64-size-int-t-octree-int-32-64-size-build-octree-floor-const-arrofint-t-ref-elements-list)
Octree_Int_32_64<_SIZE_>::int_t Octree_Int_32_64<_SIZE_>::build_octree_recursively(const int octree_center_x, const int octree_center_y, const int octree_center_z, const int octree_half_width, const IntTab_t &elements_boxes, ArrsOfInt_t &vect_elements_list, const int level, AOFlagS_ &tmp_elem_flags)
octree_center_i est le premier int de la moitie superieure de l’octree dans la direction i.
octree_half_width est une puissance de 2 egale a octree_center_i - octree_min_i (octree_min_i est le premier int inclu dans cet octree dans la direction i) Valeur de retour: octree_id de l’octree construit (void octree_structure_)
How to cite in this doc:
:ref:`Octree_Int_32_64<_SIZE_>::int_t Octree_Int_32_64<_SIZE_>::build_octree_recursively(const int octree_center_x, const int octree_center_y, const int octree_center_z, const int octree_half_width, const IntTab_t &elements_boxes, ArrsOfInt_t &vect_elements_list, const int level, AOFlagS_ &tmp_elem_flags) <protected-octree-int-32-64-size-int-t-octree-int-32-64-size-build-octree-recursively-const-int-octree-center-x-const-int-octree-center-y-const-int-octree-center-z-const-int-octree-half-width-const-inttab-t-ref-elements-boxes-arrsofint-t-ref-vect-elements-list-const-int-level-aoflags-ref-tmp-elem-flags>`
[Octree_Int_32_64<_SIZE_>::int_t Octree_Int_32_64<_SIZE_>::build_octree_recursively(const int octree_center_x, const int octree_center_y, const int octree_center_z, const int octree_half_width, const IntTab_t &elements_boxes, ArrsOfInt_t &vect_elements_list, const int level, AOFlagS_ &tmp_elem_flags)](#protected-octree-int-32-64-size-int-t-octree-int-32-64-size-build-octree-recursively-const-int-octree-center-x-const-int-octree-center-y-const-int-octree-center-z-const-int-octree-half-width-const-inttab-t-ref-elements-boxes-arrsofint-t-ref-vect-elements-list-const-int-level-aoflags-ref-tmp-elem-flags)
void Octree_Int_32_64<_SIZE_>::search_elements_box_floor(IntBoxData< _SIZE_ > &boxdata, int_t octree_floor_id) const
ajoute des elements de l’octree_floor a boxdata.
elements_
How to cite in this doc:
:ref:`void Octree_Int_32_64<_SIZE_>::search_elements_box_floor(IntBoxData< _SIZE_ > &boxdata, int_t octree_floor_id) const <protected-void-octree-int-32-64-size-search-elements-box-floor-intboxdata-size-ref-boxdata-int-t-octree-floor-id-const>`
[void Octree_Int_32_64<_SIZE_>::search_elements_box_floor(IntBoxData< _SIZE_ > &boxdata, int_t octree_floor_id) const](#protected-void-octree-int-32-64-size-search-elements-box-floor-intboxdata-size-ref-boxdata-int-t-octree-floor-id-const)
void Octree_Int_32_64<_SIZE_>::search_elements_box_recursively(IntBoxData< _SIZE_ > &boxdata, int_t octree_id, int cx, int cy, int cz, int half_width) const
cherche recursivement les elements inclus dans la boite boxdata pour l’octree_id donne, de centre cx, cy, cz.
How to cite in this doc:
:ref:`void Octree_Int_32_64<_SIZE_>::search_elements_box_recursively(IntBoxData< _SIZE_ > &boxdata, int_t octree_id, int cx, int cy, int cz, int half_width) const <protected-void-octree-int-32-64-size-search-elements-box-recursively-intboxdata-size-ref-boxdata-int-t-octree-id-int-cx-int-cy-int-cz-int-half-width-const>`
[void Octree_Int_32_64<_SIZE_>::search_elements_box_recursively(IntBoxData< _SIZE_ > &boxdata, int_t octree_id, int cx, int cy, int cz, int half_width) const](#protected-void-octree-int-32-64-size-search-elements-box-recursively-intboxdata-size-ref-boxdata-int-t-octree-id-int-cx-int-cy-int-cz-int-half-width-const)
Octree_Int_32_64<_SIZE_>::int_t Octree_Int_32_64<_SIZE_>::search_octree_floor(int x_pos, int y_pos, int z_pos) const
renvoie l’octree_id de l’octree_floor contenant le sommet (x,y,z) (peut renvoyer l’octree EMPTY)
How to cite in this doc:
:ref:`Octree_Int_32_64<_SIZE_>::int_t Octree_Int_32_64<_SIZE_>::search_octree_floor(int x_pos, int y_pos, int z_pos) const <protected-octree-int-32-64-size-int-t-octree-int-32-64-size-search-octree-floor-int-x-pos-int-y-pos-int-z-pos-const>`
[Octree_Int_32_64<_SIZE_>::int_t Octree_Int_32_64<_SIZE_>::search_octree_floor(int x_pos, int y_pos, int z_pos) const](#protected-octree-int-32-64-size-int-t-octree-int-32-64-size-search-octree-floor-int-x-pos-int-y-pos-int-z-pos-const)
Octree_Int_32_64<_SIZE_>::int_t Octree_Int_32_64<_SIZE_>::octree_id(int_t index, Octree_Type type)
construction d’un octree_id (voir octree_structure_)
Si type = = EMPTY, l’octree_id est 0 Si type = = OCTREE, on suppose que index est un indice dans octree_structure_ Si type = = FLOOR, on suppose que index est un indice dans floor_elements_
How to cite in this doc:
:ref:`Octree_Int_32_64<_SIZE_>::int_t Octree_Int_32_64<_SIZE_>::octree_id(int_t index, Octree_Type type) <protected-static-octree-int-32-64-size-int-t-octree-int-32-64-size-octree-id-int-t-index-octree-type-type>`
[Octree_Int_32_64<_SIZE_>::int_t Octree_Int_32_64<_SIZE_>::octree_id(int_t index, Octree_Type type)](#protected-static-octree-int-32-64-size-int-t-octree-int-32-64-size-octree-id-int-t-index-octree-type-type)
Octree_Int_32_64<_SIZE_>::int_t Octree_Int_32_64<_SIZE_>::octree_index(int_t octree_id, Octree_Type type)
calcul de l’index de l’octree dans octree_structure ou floor_elements en fonction du type de l’octree et de son octree_id.
En general on a deja determine le type avant, on le passe en parametre pour optimiser.
How to cite in this doc:
:ref:`Octree_Int_32_64<_SIZE_>::int_t Octree_Int_32_64<_SIZE_>::octree_index(int_t octree_id, Octree_Type type) <protected-static-octree-int-32-64-size-int-t-octree-int-32-64-size-octree-index-int-t-octree-id-octree-type-type>`
[Octree_Int_32_64<_SIZE_>::int_t Octree_Int_32_64<_SIZE_>::octree_index(int_t octree_id, Octree_Type type)](#protected-static-octree-int-32-64-size-int-t-octree-int-32-64-size-octree-index-int-t-octree-id-octree-type-type)
Octree_Int_32_64<_SIZE_>::Octree_Type Octree_Int_32_64<_SIZE_>::octree_type(int_t octree_id)
Renvoie le type d’un octree en fonction de son octree_id.
How to cite in this doc:
:ref:`Octree_Int_32_64<_SIZE_>::Octree_Type Octree_Int_32_64<_SIZE_>::octree_type(int_t octree_id) <protected-static-octree-int-32-64-size-octree-type-octree-int-32-64-size-octree-type-int-t-octree-id>`
[Octree_Int_32_64<_SIZE_>::Octree_Type Octree_Int_32_64<_SIZE_>::octree_type(int_t octree_id)](#protected-static-octree-int-32-64-size-octree-type-octree-int-32-64-size-octree-type-int-t-octree-id)
Attributes Documentation#
const int Octree_Int_32_64<_SIZE_>::coord_max_
const int Octree_Int_32_64<_SIZE_>::root_octree_half_width_
ArrOfInt_t Octree_Int_32_64<_SIZE_>::floor_elements_
int_t Octree_Int_32_64<_SIZE_>::nb_elements_
IntTab_t Octree_Int_32_64<_SIZE_>::octree_structure_
int_t Octree_Int_32_64<_SIZE_>::root_octree_id_
Enums#
Octree_Int_32_64::Octree_Type#
Location: trust-code/src/Kernel/Geometrie/Octree_Int.h:66
How to cite in this doc:
:ref:`Octree\_Int\_32\_64::Octree\_Type <enum-none-octree-int-32-64-octree-type>`
[Octree\_Int\_32\_64::Octree\_Type](#enum-none-octree-int-32-64-octree-type)
EMPTY
OCTREE
FLOOR