G+Smo  24.08.0
Geometry + Simulation Modules
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gsMPBESSpline.h
Go to the documentation of this file.
1 
14 #pragma once
15 
16 #include <gsCore/gsMultiPatch.h>
17 
21 
22 namespace gismo
23 {
24 template<short_t d,class T>
25 class gsMPBESSpline : public gsMappedSpline<d,T>
26 {
27 
28 private:
29  typedef gsMappedSingleBasis<d,T> Basis;
30  typedef gsMappedSpline<d,T> Base;
31 public:
33  gsMPBESSpline() : Base() { }
34 
36  gsMPBESSpline( const gsMPBESBasis<d,T> & basis, const gsMatrix<T> & coefs );
37 
38  gsMPBESSpline( gsMultiPatch<T> const & mp,index_t incrSmoothness = -1,index_t minEVDistance = -1 );
39 
40  gsMPBESSpline( gsMultiPatch<T> const & mp,std::vector<patchCorner> C0List,index_t incrSmoothness = -1,index_t minEVDistance = -1 );
41 
42  ~gsMPBESSpline() { } //destructor
43 
44  using Base::m_mbases;
45  using Base::m_global;
46 
47  void setCornerC0(patchCorner const & pc);
48 
49  void smoothCornerEdge(const patchCorner& pc,const patchSide& ps,bool updateBasis=true);
50 
51  void smoothEverything();
52 
53  virtual void uniformRefine(index_t numKnots=1, index_t mul=1);
54 
55  void refine(const index_t patch, const gsMatrix<T> &boxes);
56 
57  void refineElements(const index_t patch, std::vector<index_t> const & boxes);
58 
59  void refineElements(std::vector<std::vector<index_t> > const & boxes);
60 
61  void uniformRefineAndSmooth(index_t numKnots=1);
62 
63  void refineAndSmooth(const index_t patch, const gsMatrix<T> &boxes);
64 
65  void refineElementsAndSmooth(const index_t patch, std::vector<index_t> const & boxes);
66 
67 }; // class gsMPBESSpline
68 
69 } // namespace gismo
Provides declaration of Basis abstract interface.
#define index_t
Definition: gsConfig.h:32
Provides declaration of the MultiPatch class.
Implementation of a piece of the gsMappedBasis.
Provides declaration of Basis abstract interface.