34 typedef memory::shared_ptr< gsGeometryTransform >
Ptr;
37 typedef memory::unique_ptr< gsGeometryTransform >
uPtr;
50 : m_geo(geo), m_af(mat,trans) { }
64 gsMatrix<T> support()
const {
return m_geo->support(); }
66 virtual void eval_into(
const gsMatrix<T>& u, gsMatrix<T>& result)
const;
68 virtual void deriv_into(
const gsMatrix<T>& u, gsMatrix<T>& result)
const;
74 template<
class T>
void
77 m_geo->eval_into(u, result);
78 result = ( m_af.matrix() * result ).colwise() + m_af.translation();
81 template<
class T>
void
84 m_geo->deriv_into(u, result);
85 auto Jt = result.reshaped( u.rows(), result.size()/u.rows() );
88 for(
index_t i = 0; i!=u.cols(); ++i)
90 tmp = Jt.middleCols(n*i,n);
91 Jt.middleCols(n*i,n).noalias() = tmp * m_af.matrix().transpose();
Abstract base class representing a geometry map.
Definition: gsGeometry.h:92
#define GISMO_NO_IMPLEMENTATION
Definition: gsDebug.h:129
#define short_t
Definition: gsConfig.h:35
Implements an affine function.
#define index_t
Definition: gsConfig.h:32
A function from a n-dimensional domain to an m-dimensional image.
Definition: gsFunction.h:59
A matrix with arbitrary coefficient type and fixed or dynamic size.
Definition: gsMatrix.h:38
memory::unique_ptr< gsFunction > uPtr
Unique pointer for gsFunction.
Definition: gsFunction.h:68
A vector with arbitrary coefficient type and fixed or dynamic size.
Definition: gsVector.h:35
Representation of an affine function.
Definition: gsAffineFunction.h:29