38 #ifndef BGEOT_CONVEX_REF_H__ 39 #define BGEOT_CONVEX_REF_H__ 50 public std::vector<base_node> {
52 {
return std::vector<base_node>::operator [](i); }
54 : std::vector<base_node>(it, ite)
55 { DAL_STORED_OBJECT_DEBUG_CREATED(
this,
"Stored point tab"); }
57 { DAL_STORED_OBJECT_DEBUG_DESTROYED(
this,
"Stored point tab"); }
60 typedef std::shared_ptr<const stored_point_tab> pstored_point_tab;
65 template<
class CONT> pstored_point_tab store_point_tab(
const CONT &TAB)
71 typedef std::shared_ptr<const convex_of_reference> pconvex_ref;
94 std::vector<base_small_vector> normals_;
95 pstored_point_tab ppoints;
96 std::shared_ptr<mesh_structure> psimplexified_convex;
97 pconvex_ref basic_convex_ref_;
98 const bool auto_basic;
103 virtual scalar_type is_in(
const base_node &)
const = 0;
111 bool is_basic()
const;
113 const std::vector<base_small_vector> &
normals()
const 118 pstored_point_tab pspt()
const {
return ppoints; }
120 { DAL_STORED_OBJECT_DEBUG_DESTROYED(
this,
"Convex of reference"); }
132 {
return cvr->auto_basic ? cvr : cvr->basic_convex_ref_; }
135 void qhull_delaunay(
const std::vector<base_node> &pts,
136 gmm::dense_matrix<size_type>& simplexes);
155 IS_DEPRECATED pconvex_ref
inline pconvex_ref equilateral_simplex_of_reference(dim_type nc)
equilateral simplex (degree 1).
pconvex_ref basic_convex_ref(pconvex_ref cvr)
return the associated order 1 reference convex.
pconvex_ref pyramid_QK_of_reference(dim_type k)
pyramidal element of reference of degree k (k = 1 or 2 only)
base class for static stored objects
const std::vector< base_small_vector > & normals() const
return the normal vector for each face.
generic definition of a convex ( bgeot::convex_structure + vertices coordinates ) ...
pconvex_ref prism_of_reference(dim_type nc)
prism of reference of dimension nc (and degree 1)
pconvex_ref Q2_incomplete_of_reference(dim_type nc)
incomplete Q2 quadrilateral/hexahedral of reference of dimension d = 2 or 3
const stored_point_tab & points() const
return the vertices of the reference convex.
pconvex_ref convex_ref_product(pconvex_ref a, pconvex_ref b)
tensorial product of two convex ref.
std::shared_ptr< const convex_structure > pconvex_structure
Pointer on a convex structure description.
size_t size_type
used as the common size type in the library
pconvex_ref prism_incomplete_P2_of_reference()
incomplete quadratic prism element of reference (15-node)
Base class for reference convexes.
gmm::uint16_type short_type
used as the common short type integer in the library
pconvex_ref pyramid_Q2_incomplete_of_reference()
incomplete quadratic pyramidal element of reference (13-node)
pconvex_ref parallelepiped_of_reference(dim_type nc, dim_type k)
parallelepiped of reference of dimension nc (and degree 1)
Mesh structure definition.
pconvex_ref generic_dummy_convex_ref(dim_type nc, size_type n, short_type nf)
generic convex with n global nodes
pconvex_ref simplex_of_reference(dim_type nc, short_type K)
returns a simplex of reference of dimension nc and degree k
Convex objects (structure + vertices)