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;
87 size_type add_node(
const base_node &pt,
const scalar_type radius=0,
88 bool remove_duplicated_nodes =
true);
89 size_type add(
const base_node &pt) {
return add_node(pt); }
90 void sup_node(size_type i);
91 void sup(size_type i) { sup_node(i); }
92 void resort(
void) { sorters = std::vector<sorter>(); }
93 dim_type dim(
void)
const {
return dim_type(dim_); }
95 void transformation(
const base_matrix &M);
97 void swap_points(size_type i, size_type j);
98 void swap(size_type i, size_type j) { swap_points(i,j); }
100 node_tab(scalar_type prec_loose = scalar_type(10000));
a balanced tree stored in a dal::dynamic_array
Store a set of points, identifying points that are nearer than a certain very small distance...