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)
 
   70   class convex_of_reference;
 
   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;
 
  114      GMM_ASSERT1(!auto_basic, 
"This method has to be overloaded in every " 
  116      basic_convex_ref_->project_into(pt);
 
  118     bool is_basic()
 const { 
return auto_basic; }
 
  120     const std::vector<base_small_vector> &
normals()
 const 
  125     pstored_point_tab pspt()
 const { 
return ppoints; }
 
  126     virtual ~convex_of_reference()
 
  127     { DAL_STORED_OBJECT_DEBUG_DESTROYED(
this, 
"Convex of reference"); }
 
  139   { 
return cvr->auto_basic ? cvr : cvr->basic_convex_ref_; }
 
  142   void qhull_delaunay(
const std::vector<base_node> &pts,
 
  143                       gmm::dense_matrix<size_type>& simplexes);
 
  162   IS_DEPRECATED pconvex_ref 
inline 
Convex objects (structure + vertices)
 
Base class for reference convexes.
 
const stored_point_tab & points() const
return the vertices of the reference convex.
 
friend pconvex_ref basic_convex_ref(pconvex_ref cvr)
return the associated order 1 reference convex.
 
const mesh_structure * simplexified_convex() const
return a mesh structure composed of simplexes whose union is the reference convex.
 
virtual void project_into(base_node &pt) const
will project any given point lying outside the convex onto the convex outer surface
 
virtual scalar_type is_in(const base_node &) const =0
return a negative or null number if the base_node is in the convex.
 
const std::vector< base_small_vector > & normals() const
return the normal vector for each face.
 
virtual scalar_type is_in_face(short_type, const base_node &) const =0
return a null (or almost zero) if pt is in the face of the convex.
 
generic definition of a convex ( bgeot::convex_structure + vertices coordinates )
 
base class for static stored objects
 
pconvex_ref convex_ref_product(pconvex_ref a, pconvex_ref b)
tensorial product of two convex ref.
 
gmm::uint16_type short_type
used as the common short type integer in the library
 
pconvex_ref equilateral_simplex_of_reference(dim_type nc)
equilateral simplex (degree 1).
 
pconvex_ref pyramid_QK_of_reference(dim_type k)
pyramidal element of reference of degree k (k = 1 or 2 only)
 
pconvex_ref simplex_of_reference(dim_type nc, short_type K)
returns a simplex of reference of dimension nc and degree k
 
std::shared_ptr< const convex_structure > pconvex_structure
Pointer on a convex structure description.
 
pconvex_ref pyramid_Q2_incomplete_of_reference()
incomplete quadratic pyramidal element of reference (13-node)
 
pconvex_ref prism_incomplete_P2_of_reference()
incomplete quadratic prism element of reference (15-node)
 
pconvex_ref parallelepiped_of_reference(dim_type nc, dim_type k)
parallelepiped of reference of dimension nc (and degree 1)
 
pconvex_ref generic_dummy_convex_ref(dim_type nc, size_type n, short_type nf)
generic convex with n global nodes
 
size_t size_type
used as the common size type in the library
 
pconvex_ref Q2_incomplete_of_reference(dim_type nc)
incomplete Q2 quadrilateral/hexahedral of reference of dimension d = 2 or 3
 
pconvex_ref basic_convex_ref(pconvex_ref cvr)
return the associated order 1 reference convex.
 
pconvex_ref prism_of_reference(dim_type nc)
prism of reference of dimension nc (and degree 1)