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#

build
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)
floor_elements
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)
reset
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)
search_elements
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)
search_elements_box
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”

References
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)
build_octree_floor
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)
build_octree_recursively
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_)

References
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)
search_elements_box_floor
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)
search_elements_box_recursively
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)
search_octree_floor
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_id
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_index
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_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#

coord_max_ (public)
const int Octree_Int_32_64<_SIZE_>::coord_max_
root_octree_half_width_ (public)
const int Octree_Int_32_64<_SIZE_>::root_octree_half_width_
floor_elements_ (protected)
ArrOfInt_t Octree_Int_32_64<_SIZE_>::floor_elements_
nb_elements_ (protected)
int_t Octree_Int_32_64<_SIZE_>::nb_elements_
octree_structure_ (protected)
IntTab_t Octree_Int_32_64<_SIZE_>::octree_structure_
root_octree_id_ (protected)
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