31 #ifndef BGEOT_NODE_TAB_H
32 #define BGEOT_NODE_TAB_H
51 class APIDECL
node_tab :
public dal::dynamic_tas<base_node> {
55 struct component_comp {
56 const dal::dynamic_tas<base_node> *vbn;
59 bool operator()(size_type i1, size_type i2)
const;
60 component_comp(
const dal::dynamic_tas<base_node> &vbn_,
62 component_comp() : vbn(0), c(0) {}
64 typedef std::set<size_type, component_comp> sorter;
66 mutable std::vector<sorter> sorters;
68 scalar_type eps, prec_factor, max_radius;
71 void add_sorter()
const;
81 size_type search_node(
const base_node &pt,
const scalar_type radius=0)
const;
89 size_type add_node(
const base_node &pt,
const scalar_type radius=0,
90 bool remove_duplicated_nodes =
true);
91 size_type add(
const base_node &pt) {
return add_node(pt); }
92 void sup_node(size_type i);
93 void sup(size_type i) { sup_node(i); }
94 void resort() { sorters = std::vector<sorter>(); }
95 dim_type dim()
const {
return dim_type(dim_); }
97 void transformation(
const base_matrix &M);
99 void swap_points(size_type i, size_type j);
100 void swap(size_type i, size_type j) { swap_points(i,j); }
102 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