G+Smo  24.08.0
Geometry + Simulation Modules
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gsGenericGeometry.h
Go to the documentation of this file.
1 
14 #pragma once
15 
26 #include <gsCore/gsGeometry.h>
27 
28 namespace gismo
29 {
30 
31 template<short_t d, class T>
32 class gsGenericGeometry : public gsGeoTraits<d,T>::GeometryBase
33 {
34 public:
35  typedef gsBasis<T> Basis;
36 
37  typedef typename gsGeoTraits<d,T>::GeometryBase Base;
38 
40  typedef memory::shared_ptr< gsGenericGeometry > Ptr;
41 
43  typedef memory::unique_ptr< gsGenericGeometry > uPtr;
44 
45 public:
46  gsGenericGeometry(const gsBasis<T> & basis,
47  gsMatrix<T> coefs)
48  : Base (basis, give(coefs))
49  {
50  GISMO_ASSERT( this->m_basis->dim() == static_cast<int>(d),
51  "Incoherent basis dimension in gsGenericGeometry");
52  }
53 
54  GISMO_CLONE_FUNCTION(gsGenericGeometry)
55 
56  GISMO_BASIS_ACCESSORS
57 
58 };
59 
60 } // namespace gismo
61 
gsBasis< T > * m_basis
Pointer to the basis of this geometry.
Definition: gsGeometry.h:627
S give(S &x)
Definition: gsMemory.h:266
Provides declaration of Geometry abstract interface.
#define GISMO_ASSERT(cond, message)
Definition: gsDebug.h:89