
namespace Eigen {
    template<typename, int, int>
    struct Matrix {
        Matrix() {}
        Matrix(float, float, float) {}
        int col(int) {return 0;}
        Matrix operator-() {return *this;}
    };
    void operator<<(int, Matrix<double, 3, 1>) {}
};



int main() {
    
    // axis system
    static Eigen::Matrix<double, 3, 1>    s_xAxis(1.,0.,0.);            //!< global x Axis;
    static Eigen::Matrix<double, 3, 1>    s_yAxis(0.,1.,0.);            //!< global y Axis;
    static Eigen::Matrix<double, 3, 1>    s_zAxis(0.,0.,1.);            //!< global z Axis;
    
    // origin
    static Eigen::Matrix<double, 3, 1>    s_origin(0.,0.,0.);           //!< origin position
    
    static Eigen::Matrix<double, 3,3>     s_idRotationZinverse;
    s_idRotationZinverse.col(0) << s_yAxis;
    s_idRotationZinverse.col(1) << s_xAxis;
    s_idRotationZinverse.col(2) << -s_zAxis;

}