Eigen is not really needed, #ifdef if and remove from header
normalize include order
NEVER EVER put a static global variable definition in an include. a static const class member is OK
- header cleanup
- use "explicit" Constructors when they can be used with only one argument