void TPose3DQuat::fromString(const std::string& s) { CMatrixDouble m; if (!m.fromMatlabStringFormat(s)) THROW_EXCEPTION("Malformed expression in ::fromString"); ASSERTMSG_( m.rows() == 1 && m.cols() == 7, "Wrong size of vector in ::fromString"); for (int i = 0; i < m.cols(); i++) (*this)[i] = m.get_unsafe(0, i); }
void TPose2D::fromString(const std::string& s) { CMatrixDouble m; if (!m.fromMatlabStringFormat(s)) THROW_EXCEPTION("Malformed expression in ::fromString"); ASSERTMSG_( m.rows() == 1 && m.cols() == 3, "Wrong size of vector in ::fromString"); x = m.get_unsafe(0, 0); y = m.get_unsafe(0, 1); phi = DEG2RAD(m.get_unsafe(0, 2)); }
void TTwist3D::fromString(const std::string& s) { CMatrixDouble m; if (!m.fromMatlabStringFormat(s)) THROW_EXCEPTION("Malformed expression in ::fromString"); ASSERTMSG_( m.rows() == 1 && m.cols() == 6, "Wrong size of vector in ::fromString"); for (int i = 0; i < 3; i++) (*this)[i] = m.get_unsafe(0, i); for (int i = 0; i < 3; i++) (*this)[3 + i] = DEG2RAD(m.get_unsafe(0, 3 + i)); }
TEST(Matrices,loadFromTextFile) { { const std::string s1 = "1 2 3\n" "4 5 6"; std::stringstream s(s1); CMatrixDouble M; bool retval = false; try { M.loadFromTextFile(s); retval=true; } catch(std::exception &e) { std::cerr << e.what() << std::endl; } EXPECT_TRUE(retval) << "string:\n" << s1 << endl; EXPECT_EQ(M.rows(),2); EXPECT_EQ(M.cols(),3); } { const std::string s1 = "1 \t 2\n" " 4 \t\t 1 "; std::stringstream s(s1); CMatrixDouble M; bool retval = false; try { M.loadFromTextFile(s); retval=true; } catch(std::exception &e) { std::cerr << e.what() << std::endl; } EXPECT_TRUE(retval) << "string:\n" << s1 << endl; EXPECT_EQ(M.rows(),2); EXPECT_EQ(M.cols(),2); } { const std::string s1 = "1 2"; std::stringstream s(s1); CMatrixDouble M; bool retval = false; try { M.loadFromTextFile(s); retval=true; } catch(std::exception &e) { std::cerr << e.what() << std::endl; } EXPECT_TRUE(retval) << "string:\n" << s1 << endl; EXPECT_EQ(M.rows(),1); EXPECT_EQ(M.cols(),2); } { const std::string s1 = "1 2 3\n" "4 5 6\n"; std::stringstream s(s1); CMatrixFixedNumeric<double,2,3> M; bool retval = false; try { M.loadFromTextFile(s); retval=true; } catch(std::exception &e) { std::cerr << e.what() << std::endl; } EXPECT_TRUE(retval) << "string:\n" << s1 << endl; EXPECT_EQ(M.rows(),2); EXPECT_EQ(M.cols(),3); } { const std::string s1 = "1 2 3\n" "4 5\n"; std::stringstream s(s1); CMatrixFixedNumeric<double,2,3> M; bool retval = false; try { M.loadFromTextFile(s); retval=true; } catch(std::exception &) { } EXPECT_FALSE(retval) << "string:\n" << s1 << endl; } { const std::string s1 = "1 2 3\n" "4 5\n"; std::stringstream s(s1); CMatrixDouble M; bool retval = false; try { M.loadFromTextFile(s); retval=true; } catch(std::exception &) { } EXPECT_FALSE(retval) << "string:\n" << s1 << endl; } { const std::string s1 = " \n"; std::stringstream s(s1); CMatrixFixedNumeric<double,2,3> M; bool retval = false; try { M.loadFromTextFile(s); retval=true; } catch(std::exception &) { } EXPECT_FALSE(retval) << "string:\n" << s1 << endl; } { const std::string s1 = "1 2 3\n" "1 2 3\n" "1 2 3"; std::stringstream s(s1); CMatrixFixedNumeric<double,2,3> M; bool retval = false; try { M.loadFromTextFile(s); retval=true; } catch(std::exception &) { } EXPECT_FALSE(retval) << "string:\n" << s1 << endl; } }