Octree_Double_32_64#

#include <Octree_Double.h>

: Un octree permettant de chercher dans l’espace des elements ou des points decrits par des coordonnees reeles.

How to cite this class in this doc#

:ref:`Octree\_Double\_32\_64 <class-template-octree-double-32-64>`
[Octree\_Double\_32\_64](#class-template-octree-double-32-64)

Detailed description#

Cet objet est base sur Octree_Int. Astuces: Pour chercher des points a epsilon pres on peut faire: 1) build_nodes(coord, include_virt, 0.) suivi de search_elements_box(center, epsilon, elements); 2) build_nodes(coord, include_virt, epsilon) suivi de search_elements(x,y,z,…) La premiere solution prend plus de temps pour construire l’octree mais la recherche est plus rapide La deuxieme, c’est inverse… et on peut choisir epsilon pour chaque point.

List of Public Methods#

List of Public Static Methods#

List of Protected Methods#

Complete Member Function Documentation#

build_elements
void Octree_Double_32_64<_SIZE_>::build_elements(const _TAB_TYPE_ &coords, const IntTab_t &elements, const double epsilon, const bool include_virtual)
Referenced By
How to cite in this doc:
:ref:`void Octree_Double_32_64<_SIZE_>::build_elements(const _TAB_TYPE_ &coords, const IntTab_t &elements, const double epsilon, const bool include_virtual) <public-void-octree-double-32-64-size-build-elements-const-tab-type-ref-coords-const-inttab-t-ref-elements-const-double-epsilon-const-bool-include-virtual>`
[void Octree_Double_32_64<_SIZE_>::build_elements(const _TAB_TYPE_ &coords, const IntTab_t &elements, const double epsilon, const bool include_virtual)](#public-void-octree-double-32-64-size-build-elements-const-tab-type-ref-coords-const-inttab-t-ref-elements-const-double-epsilon-const-bool-include-virtual)
build_nodes
void Octree_Double_32_64<_SIZE_>::build_nodes(const DoubleTab_t &coords, const bool include_virtual, const double epsilon=0.)

construit un octree contenant les points de coordonnees coords.

Si include_virtual = 1, on stocke coords.dimension_tot(0) elements, sinon on en stocke coords.dimension(0) Si epsilon = 0, on construit un octree de points de taille nulle (chaque point se trouve dans un seul octree_floor) Sinon, on construit un octree d’elements cubiques centres sur les coords, de demie-largeur epsilon. Un point peut alors se trouver dans plusieurs octree_floor.

Referenced By
How to cite in this doc:
:ref:`void Octree_Double_32_64<_SIZE_>::build_nodes(const DoubleTab_t &coords, const bool include_virtual, const double epsilon=0.) <public-void-octree-double-32-64-size-build-nodes-const-doubletab-t-ref-coords-const-bool-include-virtual-const-double-epsilon-equal-0.>`
[void Octree_Double_32_64<_SIZE_>::build_nodes(const DoubleTab_t &coords, const bool include_virtual, const double epsilon=0.)](#public-void-octree-double-32-64-size-build-nodes-const-doubletab-t-ref-coords-const-bool-include-virtual-const-double-epsilon-equal-0.)
dimension
int Octree_Double_32_64<_SIZE_>::dimension() const
References
How to cite in this doc:
:ref:`int Octree_Double_32_64<_SIZE_>::dimension() const <public-int-octree-double-32-64-size-dimension-const>`
[int Octree_Double_32_64<_SIZE_>::dimension() const](#public-int-octree-double-32-64-size-dimension-const)
floor_elements
const ArrOfInt_t & Octree_Double_32_64<_SIZE_>::floor_elements() const
References
How to cite in this doc:
:ref:`const ArrOfInt_t & Octree_Double_32_64<_SIZE_>::floor_elements() const <public-const-arrofint-t-ref-octree-double-32-64-size-floor-elements-const>`
[const ArrOfInt_t & Octree_Double_32_64<_SIZE_>::floor_elements() const](#public-const-arrofint-t-ref-octree-double-32-64-size-floor-elements-const)
reset
void Octree_Double_32_64<_SIZE_>::reset()
How to cite in this doc:
:ref:`void Octree_Double_32_64<_SIZE_>::reset() <public-void-octree-double-32-64-size-reset>`
[void Octree_Double_32_64<_SIZE_>::reset()](#public-void-octree-double-32-64-size-reset)
search_elements
Octree_Double_32_64<_SIZE_>::int_t Octree_Double_32_64<_SIZE_>::search_elements(double x, double y, double z, int_t &index) const

cherche les elements ou les points contenus dans l’octree_floor qui contient le point (x,y,z).

Renvoie le nombre n de ces elements. Les indices des elements sont dans floor_elements() [index + i] pour 0 < = i <n

How to cite in this doc:
:ref:`Octree_Double_32_64<_SIZE_>::int_t Octree_Double_32_64<_SIZE_>::search_elements(double x, double y, double z, int_t &index) const <public-octree-double-32-64-size-int-t-octree-double-32-64-size-search-elements-double-x-double-y-double-z-int-t-ref-index-const>`
[Octree_Double_32_64<_SIZE_>::int_t Octree_Double_32_64<_SIZE_>::search_elements(double x, double y, double z, int_t &index) const](#public-octree-double-32-64-size-int-t-octree-double-32-64-size-search-elements-double-x-double-y-double-z-int-t-ref-index-const)
search_elements_box
Octree_Double_32_64<_SIZE_>::int_t Octree_Double_32_64<_SIZE_>::search_elements_box(const ArrOfDouble &center, const double radius, ArrOfInt_t &elements) const

cherche tous les elements ou points ayant potentiellement une intersection non vide avec la boite donnee (centre + ou - radius dans chaque direction)

References
How to cite in this doc:
:ref:`Octree_Double_32_64<_SIZE_>::int_t Octree_Double_32_64<_SIZE_>::search_elements_box(const ArrOfDouble &center, const double radius, ArrOfInt_t &elements) const <public-octree-double-32-64-size-int-t-octree-double-32-64-size-search-elements-box-const-arrofdouble-ref-center-const-double-radius-arrofint-t-ref-elements-const>`
[Octree_Double_32_64<_SIZE_>::int_t Octree_Double_32_64<_SIZE_>::search_elements_box(const ArrOfDouble &center, const double radius, ArrOfInt_t &elements) const](#public-octree-double-32-64-size-int-t-octree-double-32-64-size-search-elements-box-const-arrofdouble-ref-center-const-double-radius-arrofint-t-ref-elements-const)
search_elements_box
Octree_Double_32_64<_SIZE_>::int_t Octree_Double_32_64<_SIZE_>::search_elements_box(double xmin, double ymin, double zmin, double xmax, double ymax, double zmax, ArrOfInt_t &elements) const

cherche tous les elements ou points ayant potentiellement une intersection non vide avec la boite donnee.

References
Referenced By
How to cite in this doc:
:ref:`Octree_Double_32_64<_SIZE_>::int_t Octree_Double_32_64<_SIZE_>::search_elements_box(double xmin, double ymin, double zmin, double xmax, double ymax, double zmax, ArrOfInt_t &elements) const <public-octree-double-32-64-size-int-t-octree-double-32-64-size-search-elements-box-double-xmin-double-ymin-double-zmin-double-xmax-double-ymax-double-zmax-arrofint-t-ref-elements-const>`
[Octree_Double_32_64<_SIZE_>::int_t Octree_Double_32_64<_SIZE_>::search_elements_box(double xmin, double ymin, double zmin, double xmax, double ymax, double zmax, ArrOfInt_t &elements) const](#public-octree-double-32-64-size-int-t-octree-double-32-64-size-search-elements-box-double-xmin-double-ymin-double-zmin-double-xmax-double-ymax-double-zmax-arrofint-t-ref-elements-const)
search_nodes_close_to
Octree_Double_32_64<_SIZE_>::int_t Octree_Double_32_64<_SIZE_>::search_nodes_close_to(const ArrOfDouble &point, const DoubleTab_t &coords, ArrOfInt_t &node_list, double epsilon)

Idem que search_nodes_close_to(double x, double y, double z, .

..)

References
How to cite in this doc:
:ref:`Octree_Double_32_64<_SIZE_>::int_t Octree_Double_32_64<_SIZE_>::search_nodes_close_to(const ArrOfDouble &point, const DoubleTab_t &coords, ArrOfInt_t &node_list, double epsilon) <public-static-octree-double-32-64-size-int-t-octree-double-32-64-size-search-nodes-close-to-const-arrofdouble-ref-point-const-doubletab-t-ref-coords-arrofint-t-ref-node-list-double-epsilon>`
[Octree_Double_32_64<_SIZE_>::int_t Octree_Double_32_64<_SIZE_>::search_nodes_close_to(const ArrOfDouble &point, const DoubleTab_t &coords, ArrOfInt_t &node_list, double epsilon)](#public-static-octree-double-32-64-size-int-t-octree-double-32-64-size-search-nodes-close-to-const-arrofdouble-ref-point-const-doubletab-t-ref-coords-arrofint-t-ref-node-list-double-epsilon)
search_nodes_close_to
Octree_Double_32_64<_SIZE_>::int_t Octree_Double_32_64<_SIZE_>::search_nodes_close_to(double x, double y, double z, const DoubleTab_t &coords, ArrOfInt_t &node_list, double epsilon)

Methode hors classe Cherche parmi les sommets de la liste node_list ceux qui sont a une.

distance inferieure a epsilon du point (x,y,z). node_list contient des indices de sommets dans le tableau coords. La liste des noeuds verifiant le critere est mise dans node_list. On renvoie l’indice dans le tableau coords du sommet le plus proche.

References
Referenced By
How to cite in this doc:
:ref:`Octree_Double_32_64<_SIZE_>::int_t Octree_Double_32_64<_SIZE_>::search_nodes_close_to(double x, double y, double z, const DoubleTab_t &coords, ArrOfInt_t &node_list, double epsilon) <public-static-octree-double-32-64-size-int-t-octree-double-32-64-size-search-nodes-close-to-double-x-double-y-double-z-const-doubletab-t-ref-coords-arrofint-t-ref-node-list-double-epsilon>`
[Octree_Double_32_64<_SIZE_>::int_t Octree_Double_32_64<_SIZE_>::search_nodes_close_to(double x, double y, double z, const DoubleTab_t &coords, ArrOfInt_t &node_list, double epsilon)](#public-static-octree-double-32-64-size-int-t-octree-double-32-64-size-search-nodes-close-to-double-x-double-y-double-z-const-doubletab-t-ref-coords-arrofint-t-ref-node-list-double-epsilon)
compute_origin_factors
void Octree_Double_32_64<_SIZE_>::compute_origin_factors(const _TAB_TYPE_ &coords, const double epsilon, const int include_virtual)
How to cite in this doc:
:ref:`void Octree_Double_32_64<_SIZE_>::compute_origin_factors(const _TAB_TYPE_ &coords, const double epsilon, const int include_virtual) <protected-void-octree-double-32-64-size-compute-origin-factors-const-tab-type-ref-coords-const-double-epsilon-const-int-include-virtual>`
[void Octree_Double_32_64<_SIZE_>::compute_origin_factors(const _TAB_TYPE_ &coords, const double epsilon, const int include_virtual)](#protected-void-octree-double-32-64-size-compute-origin-factors-const-tab-type-ref-coords-const-double-epsilon-const-int-include-virtual)
integer_position
bool Octree_Double_32_64<_SIZE_>::integer_position(double x, int direction, int &ix) const

Convertit une coordonnee reelle en coordonnee entiere pour l’octree_int.

Valeur de retour: 1 si ok, 0 si coordonnee hors de l’octree

How to cite in this doc:
:ref:`bool Octree_Double_32_64<_SIZE_>::integer_position(double x, int direction, int &ix) const <protected-bool-octree-double-32-64-size-integer-position-double-x-int-direction-int-ref-ix-const>`
[bool Octree_Double_32_64<_SIZE_>::integer_position(double x, int direction, int &ix) const](#protected-bool-octree-double-32-64-size-integer-position-double-x-int-direction-int-ref-ix-const)
integer_position_clip
bool Octree_Double_32_64<_SIZE_>::integer_position_clip(double xmin, double xmax, int &x0, int &x1, int direction) const
How to cite in this doc:
:ref:`bool Octree_Double_32_64<_SIZE_>::integer_position_clip(double xmin, double xmax, int &x0, int &x1, int direction) const <protected-bool-octree-double-32-64-size-integer-position-clip-double-xmin-double-xmax-int-ref-x0-int-ref-x1-int-direction-const>`
[bool Octree_Double_32_64<_SIZE_>::integer_position_clip(double xmin, double xmax, int &x0, int &x1, int direction) const](#protected-bool-octree-double-32-64-size-integer-position-clip-double-xmin-double-xmax-int-ref-x0-int-ref-x1-int-direction-const)

Attributes Documentation#

dim_ (protected)
int Octree_Double_32_64<_SIZE_>::dim_ = 0
factor_ (protected)
ArrOfDouble Octree_Double_32_64<_SIZE_>::factor_
octree_int_ (protected)
Octree_Int_32_64<_SIZE_> Octree_Double_32_64<_SIZE_>::octree_int_
origin_ (protected)
ArrOfDouble Octree_Double_32_64<_SIZE_>::origin_