32 #ifndef BGEOT_NODE_TAB_H
33 #define BGEOT_NODE_TAB_H
52 class APIDECL
node_tab :
public dal::dynamic_tas<base_node> {
56 struct component_comp {
57 const dal::dynamic_tas<base_node> *vbn;
60 bool operator()(size_type i1, size_type i2)
const;
61 component_comp(
const dal::dynamic_tas<base_node> &vbn_,
63 component_comp() : vbn(0), c(0) {}
65 typedef std::set<size_type, component_comp> sorter;
67 mutable std::vector<sorter> sorters;
69 scalar_type eps, prec_factor, max_radius;
72 void add_sorter(
void)
const;
82 size_type search_node(
const base_node &pt,
const scalar_type radius=0)
const;
90 size_type add_node(
const base_node &pt,
const scalar_type radius=0,
91 bool remove_duplicated_nodes =
true);
92 size_type add(
const base_node &pt) {
return add_node(pt); }
93 void sup_node(size_type i);
94 void sup(size_type i) { sup_node(i); }
95 void resort(
void) { sorters = std::vector<sorter>(); }
96 dim_type dim(
void)
const {
return dim_type(dim_); }
98 void transformation(
const base_matrix &M);
100 void swap_points(size_type i, size_type j);
101 void swap(size_type i, size_type j) { swap_points(i,j); }
103 node_tab(scalar_type prec_loose = scalar_type(10000));
Store a set of points, identifying points that are nearer than a certain very small distance.
a balanced tree stored in a dal::dynamic_array