diff --git a/.cproject b/.cproject
index ff425c83f..872909c06 100644
--- a/.cproject
+++ b/.cproject
@@ -309,6 +309,14 @@
true
true
+
+ make
+ -j2
+ testGaussianFactor.run
+ true
+ true
+ true
+
make
-j2
@@ -335,7 +343,6 @@
make
-
tests/testBayesTree.run
true
false
@@ -343,7 +350,6 @@
make
-
testBinaryBayesNet.run
true
false
@@ -391,7 +397,6 @@
make
-
testSymbolicBayesNet.run
true
false
@@ -399,7 +404,6 @@
make
-
tests/testSymbolicFactor.run
true
false
@@ -407,7 +411,6 @@
make
-
testSymbolicFactorGraph.run
true
false
@@ -423,20 +426,11 @@
make
-
tests/testBayesTree
true
false
true
-
- make
- -j2
- testGaussianFactor.run
- true
- true
- true
-
make
-j5
@@ -533,22 +527,6 @@
false
true
-
- make
- -j2
- tests/testPose2.run
- true
- true
- true
-
-
- make
- -j2
- tests/testPose3.run
- true
- true
- true
-
make
-j2
@@ -565,6 +543,22 @@
true
true
+
+ make
+ -j2
+ tests/testPose2.run
+ true
+ true
+ true
+
+
+ make
+ -j2
+ tests/testPose3.run
+ true
+ true
+ true
+
make
-j2
@@ -589,26 +583,34 @@
true
true
-
+
make
- -j2
- all
+ -j5
+ testValues.run
true
true
true
-
+
make
- -j2
- check
+ -j5
+ testOrdering.run
true
true
true
-
+
make
- -j2
- clean
+ -j5
+ testKey.run
+ true
+ true
+ true
+
+
+ make
+ -j5
+ testLinearContainerFactor.run
true
true
true
@@ -693,34 +695,26 @@
true
true
-
+
make
- -j5
- testValues.run
+ -j2
+ all
true
true
true
-
+
make
- -j5
- testOrdering.run
+ -j2
+ check
true
true
true
-
+
make
- -j5
- testKey.run
- true
- true
- true
-
-
- make
- -j5
- testLinearContainerFactor.run
+ -j2
+ clean
true
true
true
@@ -1079,7 +1073,6 @@
make
-
testGraph.run
true
false
@@ -1087,7 +1080,6 @@
make
-
testJunctionTree.run
true
false
@@ -1095,7 +1087,6 @@
make
-
testSymbolicBayesNetB.run
true
false
@@ -1263,7 +1254,6 @@
make
-
testErrors.run
true
false
@@ -1309,6 +1299,14 @@
true
true
+
+ make
+ -j2
+ testGaussianFactor.run
+ true
+ true
+ true
+
make
-j2
@@ -1389,14 +1387,6 @@
true
true
-
- make
- -j2
- testGaussianFactor.run
- true
- true
- true
-
make
-j2
@@ -1621,6 +1611,14 @@
true
true
+
+ make
+ -j5
+ testRot3Q.run
+ true
+ true
+ true
+
make
-j2
@@ -1703,6 +1701,7 @@
make
+
testSimulated2DOriented.run
true
false
@@ -1742,6 +1741,7 @@
make
+
testSimulated2D.run
true
false
@@ -1749,6 +1749,7 @@
make
+
testSimulated3D.run
true
false
@@ -1948,6 +1949,7 @@
make
+
tests/testGaussianISAM2
true
false
@@ -1969,6 +1971,102 @@
true
true
+
+ make
+ -j2
+ testRot3.run
+ true
+ true
+ true
+
+
+ make
+ -j2
+ testRot2.run
+ true
+ true
+ true
+
+
+ make
+ -j2
+ testPose3.run
+ true
+ true
+ true
+
+
+ make
+ -j2
+ timeRot3.run
+ true
+ true
+ true
+
+
+ make
+ -j2
+ testPose2.run
+ true
+ true
+ true
+
+
+ make
+ -j2
+ testCal3_S2.run
+ true
+ true
+ true
+
+
+ make
+ -j2
+ testSimpleCamera.run
+ true
+ true
+ true
+
+
+ make
+ -j2
+ testHomography2.run
+ true
+ true
+ true
+
+
+ make
+ -j2
+ testCalibratedCamera.run
+ true
+ true
+ true
+
+
+ make
+ -j2
+ check
+ true
+ true
+ true
+
+
+ make
+ -j2
+ clean
+ true
+ true
+ true
+
+
+ make
+ -j2
+ testPoint2.run
+ true
+ true
+ true
+
make
-j3
@@ -2170,7 +2268,6 @@
cpack
-
-G DEB
true
false
@@ -2178,7 +2275,6 @@
cpack
-
-G RPM
true
false
@@ -2186,7 +2282,6 @@
cpack
-
-G TGZ
true
false
@@ -2194,7 +2289,6 @@
cpack
-
--config CPackSourceConfig.cmake
true
false
@@ -2336,98 +2430,34 @@
true
true
-
+
make
- -j2
- testRot3.run
+ -j5
+ testSpirit.run
true
true
true
-
+
make
- -j2
- testRot2.run
+ -j5
+ testWrap.run
true
true
true
-
+
make
- -j2
- testPose3.run
+ -j5
+ check.wrap
true
true
true
-
+
make
- -j2
- timeRot3.run
- true
- true
- true
-
-
- make
- -j2
- testPose2.run
- true
- true
- true
-
-
- make
- -j2
- testCal3_S2.run
- true
- true
- true
-
-
- make
- -j2
- testSimpleCamera.run
- true
- true
- true
-
-
- make
- -j2
- testHomography2.run
- true
- true
- true
-
-
- make
- -j2
- testCalibratedCamera.run
- true
- true
- true
-
-
- make
- -j2
- check
- true
- true
- true
-
-
- make
- -j2
- clean
- true
- true
- true
-
-
- make
- -j2
- testPoint2.run
+ -j5
+ wrap
true
true
true
@@ -2471,38 +2501,6 @@
false
true
-
- make
- -j5
- testSpirit.run
- true
- true
- true
-
-
- make
- -j5
- testWrap.run
- true
- true
- true
-
-
- make
- -j5
- check.wrap
- true
- true
- true
-
-
- make
- -j5
- wrap
- true
- true
- true
-
diff --git a/gtsam/geometry/Rot3.h b/gtsam/geometry/Rot3.h
index e9c7c6b64..6adcd8a1b 100644
--- a/gtsam/geometry/Rot3.h
+++ b/gtsam/geometry/Rot3.h
@@ -355,6 +355,9 @@ namespace gtsam {
*/
Vector quaternion() const;
+ /// Output stream operator
+ friend std::ostream &operator<<(std::ostream &os, const Rot3& p);
+
private:
/** Serialization function */
friend class boost::serialization::access;
diff --git a/gtsam/geometry/Rot3M.cpp b/gtsam/geometry/Rot3M.cpp
index b63499d6d..cb6660dae 100644
--- a/gtsam/geometry/Rot3M.cpp
+++ b/gtsam/geometry/Rot3M.cpp
@@ -380,6 +380,15 @@ pair RQ(const Matrix3& A) {
return make_pair(R, xyz);
}
+/* ************************************************************************* */
+ostream &operator<<(ostream &os, const Rot3& R) {
+ os << "\n";
+ os << '|' << R.r1().x() << ", " << R.r2().x() << ", " << R.r3().x() << "|\n";
+ os << '|' << R.r1().y() << ", " << R.r2().y() << ", " << R.r3().y() << "|\n";
+ os << '|' << R.r1().z() << ", " << R.r2().z() << ", " << R.r3().z() << "|\n";
+ return os;
+}
+
/* ************************************************************************* */
} // namespace gtsam
diff --git a/gtsam/geometry/Rot3Q.cpp b/gtsam/geometry/Rot3Q.cpp
index afab3900c..72d50484b 100644
--- a/gtsam/geometry/Rot3Q.cpp
+++ b/gtsam/geometry/Rot3Q.cpp
@@ -237,6 +237,15 @@ namespace gtsam {
return make_pair(R, xyz);
}
+ /* ************************************************************************* */
+ ostream &operator<<(ostream &os, const Rot3& R) {
+ os << "\n";
+ os << '|' << R.r1().x() << ", " << R.r2().x() << ", " << R.r3().x() << "|\n";
+ os << '|' << R.r1().y() << ", " << R.r2().y() << ", " << R.r3().y() << "|\n";
+ os << '|' << R.r1().z() << ", " << R.r2().z() << ", " << R.r3().z() << "|\n";
+ return os;
+ }
+
} // namespace gtsam
#endif
diff --git a/gtsam/geometry/tests/testRot3M.cpp b/gtsam/geometry/tests/testRot3M.cpp
index f59455e2f..b50ad1253 100644
--- a/gtsam/geometry/tests/testRot3M.cpp
+++ b/gtsam/geometry/tests/testRot3M.cpp
@@ -562,6 +562,15 @@ TEST( Rot3, Cayley ) {
EXPECT(assert_equal(A, Cayley(Q)));
}
+/* ************************************************************************* */
+TEST( Rot3, stream)
+{
+ Rot3 R;
+ std::ostringstream os;
+ os << R;
+ EXPECT(os.str() == "\n|1, 0, 0|\n|0, 1, 0|\n|0, 0, 1|\n");
+}
+
#endif
/* ************************************************************************* */
diff --git a/gtsam/geometry/tests/testRot3Q.cpp b/gtsam/geometry/tests/testRot3Q.cpp
index e8733c24d..d44b8f34c 100644
--- a/gtsam/geometry/tests/testRot3Q.cpp
+++ b/gtsam/geometry/tests/testRot3Q.cpp
@@ -475,6 +475,15 @@ TEST(Rot3, quaternion) {
EXPECT(assert_equal(expected2, actual2));
}
+/* ************************************************************************* */
+TEST( Rot3, stream)
+{
+ Rot3 R;
+ std::ostringstream os;
+ os << R;
+ EXPECT(os.str() == "\n|1, 0, 0|\n|0, 1, 0|\n|0, 0, 1|\n");
+}
+
#endif
/* ************************************************************************* */