38 #ifndef BGEOT_MESH_H__
39 #define BGEOT_MESH_H__
55 typedef bgeot::mesh_structure::ind_cv_ct ind_cv_ct;
56 typedef bgeot::mesh_structure::ind_set ind_set;
61 <PT_TAB::const_iterator, ind_cv_ct::const_iterator> ref_mesh_pt_ct;
63 <PT_TAB::const_iterator, ind_pt_face_ct::const_iterator>
72 dal::bit_vector trans_exists;
76 dim_type dim()
const {
return pts.dim(); }
82 GMM_ASSERT1(trans_exists[ic],
83 "No geometric transformation or nonexisting element");
87 const PT_TAB &points()
const {
return pts; }
90 ref_mesh_pt_ct points_of_convex(
size_type ic)
const {
92 return ref_mesh_pt_ct(pts.begin(), rct.begin(), rct.end());
95 inline void points_of_convex(
size_type ic, base_matrix &G)
const {
100 for (
size_type i = 0; i < Np; ++i, it += N) {
101 const base_node &P = pts[rct[i]];
102 std::copy(P.begin(), P.end(), it);
119 const scalar_type tol=scalar_type(0),
120 bool remove_duplicated_nodes =
true) {
121 return pts.add_node(pt, remove_duplicated_nodes ? tol : -1.);
129 gtab[i] = pgt; trans_exists[i] =
true;
134 size_type ipt[2]; ipt[0] = a; ipt[1] = b;
135 return add_convex(simplex_geotrans(1, 1), &(ipt[0]));
139 size_type ipt[3]; ipt[0] = a; ipt[1] = b; ipt[2] = c;
140 return add_convex(simplex_geotrans(2, 1), &(ipt[0]));
145 size_type ipt[4]; ipt[0] = a; ipt[1] = b; ipt[2] = c; ipt[3] = d;
146 return add_convex(simplex_geotrans(3, 1), &(ipt[0]));
150 typedef basic_mesh *pbasic_mesh;