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#
void Octree_Double_32_64<_SIZE_>::build_elements(const _TAB_TYPE_ &coords, const IntTab_t &elements, const double epsilon, const bool include_virtual)
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)
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.)
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)
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)
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)
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)
Octree_Double_32_64<_SIZE_>::int_t Octree_Double_32_64<_SIZE_>::search_elements_box(const ArrOfDouble ¢er, 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 ¢er, 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 ¢er, 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(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.
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)
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)
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)
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)
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)
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#
int Octree_Double_32_64<_SIZE_>::dim_ = 0
ArrOfDouble Octree_Double_32_64<_SIZE_>::factor_
Octree_Int_32_64<_SIZE_> Octree_Double_32_64<_SIZE_>::octree_int_
ArrOfDouble Octree_Double_32_64<_SIZE_>::origin_