12345678910111213141516171819202122232425262728293031323334 |
- namespace Eigen {
- /** \page TopicCustomizing_InheritingMatrix Inheriting from Matrix
- Before inheriting from Matrix, be really, I mean REALLY, sure that using
- EIGEN_MATRIX_PLUGIN is not what you really want (see previous section).
- If you just need to add few members to Matrix, this is the way to go.
- An example of when you actually need to inherit Matrix, is when you
- have several layers of heritage such as
- MyVerySpecificVector1, MyVerySpecificVector2 -> MyVector1 -> Matrix and
- MyVerySpecificVector3, MyVerySpecificVector4 -> MyVector2 -> Matrix.
- In order for your object to work within the %Eigen framework, you need to
- define a few members in your inherited class.
- Here is a minimalistic example:
- \include CustomizingEigen_Inheritance.cpp
- Output: \verbinclude CustomizingEigen_Inheritance.out
- This is the kind of error you can get if you don't provide those methods
- \verbatim
- error: no match for ‘operator=’ in ‘v = Eigen::operator*(
- const Eigen::MatrixBase<Eigen::Matrix<double, -0x000000001, 1, 0, -0x000000001, 1> >::Scalar&,
- const Eigen::MatrixBase<Eigen::Matrix<double, -0x000000001, 1> >::StorageBaseType&)
- (((const Eigen::MatrixBase<Eigen::Matrix<double, -0x000000001, 1> >::StorageBaseType&)
- ((const Eigen::MatrixBase<Eigen::Matrix<double, -0x000000001, 1> >::StorageBaseType*)(& v))))’
- \endverbatim
- */
- }
|