Patate Lib  0.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
Vitelotte::QuadraticElement< _Scalar > Class Template Reference

Inherits Vitelotte::LinearElement< _Scalar >.

Detailed Description

template<typename _Scalar>
class Vitelotte::QuadraticElement< _Scalar >

Provides method to evaluate quadratic elements and their derivatives.

Public Types

typedef _Scalar Scalar
 
typedef LinearElement< Scalar > Base
 
typedef Eigen::Matrix< Scalar, 2, 1 > Vector
 
typedef Eigen::Matrix< Scalar, 6, 1 > Values
 
typedef Eigen::Matrix< Scalar, 6, 2 > Jacobian
 
typedef Eigen::Matrix< Scalar, 2, 2 > Hessian
 
typedef Eigen::Matrix< Scalar, 3, 1 > BarycentricCoord
 

Public Member Functions

template<typename It >
 QuadraticElement (It pointIt)
 
template<typename Derived0 , typename Derived1 , typename Derived2 >
 QuadraticElement (const Eigen::MatrixBase< Derived0 > &p0, const Eigen::MatrixBase< Derived1 > &p1, const Eigen::MatrixBase< Derived2 > &p2)
 
Values eval (const BarycentricCoord &bc) const
 
Scalar eval (unsigned bi, const BarycentricCoord &bc) const
 
const Jacobian jacobian (const BarycentricCoord &bc) const
 
const Vector gradient (unsigned bi, const BarycentricCoord &bc) const
 

Additional Inherited Members

- Protected Types inherited from Vitelotte::LinearElement< _Scalar >
typedef Eigen::Matrix< Scalar, 3, 1 > Vector3
 
typedef Eigen::Matrix< Scalar, 2, 2 > Matrix2
 
typedef Eigen::Matrix< Scalar, 3, 3 > Matrix3
 
typedef Eigen::Matrix< Scalar, 3, 2 > Matrix3x2
 
typedef Eigen::Matrix< Scalar, 2, 3 > Matrix2x3
 
typedef _Scalar Scalar
 
typedef Eigen::Matrix< Scalar, 2, 1 > Vector
 
typedef Eigen::Matrix< Scalar, 3, 1 > Values
 
typedef Eigen::Matrix< Scalar, 3, 2 > Jacobian
 
typedef Eigen::Matrix< Scalar, 2, 2 > Hessian
 
typedef Eigen::Matrix< Scalar, 3, 1 > BarycentricCoord
 
- Protected Member Functions inherited from Vitelotte::LinearElement< _Scalar >
template<typename Derived0 , typename Derived1 , typename Derived2 >
void computeFromPoints (const Eigen::MatrixBase< Derived0 > &p0, const Eigen::MatrixBase< Derived1 > &p1, const Eigen::MatrixBase< Derived2 > &p2)
 
template<typename It >
 LinearElement (It pointIt)
 
template<typename Derived0 , typename Derived1 , typename Derived2 >
 LinearElement (const Eigen::MatrixBase< Derived0 > &p0, const Eigen::MatrixBase< Derived1 > &p1, const Eigen::MatrixBase< Derived2 > &p2)
 
Vector projPoint (unsigned pi, unsigned offset=0) const
 
Scalar edgeLength (unsigned ei, unsigned offset=0) const
 
Scalar doubleArea () const
 
BarycentricCoord bcProj (const Vector &p) const
 
Values eval (const BarycentricCoord &bc) const
 
Scalar eval (unsigned bi, const BarycentricCoord &bc) const
 
const Eigen::Block< const
Matrix3, 3, 2 > 
jacobian (const BarycentricCoord &=BarycentricCoord()) const
 
const Vector gradient (unsigned bi, const BarycentricCoord &=BarycentricCoord()) const
 
- Protected Attributes inherited from Vitelotte::LinearElement< _Scalar >
Vector m_p2
 
Vector3 m_eLen
 
Scalar m_2delta
 
Matrix3 m_lbf