diff --git a/.cproject b/.cproject
index 050d377b8..19fa7e086 100644
--- a/.cproject
+++ b/.cproject
@@ -468,7 +468,6 @@
make
-
testBayesTree.run
true
false
@@ -476,6 +475,7 @@
make
+
testSymbolicBayesNet.run
true
false
@@ -483,7 +483,6 @@
make
-
testSymbolicFactorGraph.run
true
false
@@ -585,14 +584,6 @@
true
true
-
-make
--j2
-testPose2Constraint.run
-true
-true
-true
-
make
-j2
@@ -689,10 +680,10 @@
true
true
-
+
make
-j2
-testPose2Graph.run
+testPose2SLAM.run
true
true
true
@@ -723,7 +714,6 @@
make
-
testGraph.run
true
false
diff --git a/cpp/Makefile.am b/cpp/Makefile.am
index 886538b81..2ea2b9d37 100644
--- a/cpp/Makefile.am
+++ b/cpp/Makefile.am
@@ -188,20 +188,21 @@ testSimulated3D_LDADD = libgtsam.la
check_PROGRAMS += testSimulated3D
# Pose SLAM headers
-headers += BetweenFactor.h LieConfig.h LieConfig-inl.h TupleConfig.h TupleConfig-inl.h
+headers += BetweenFactor.h PriorFactor.h
+headers += LieConfig.h LieConfig-inl.h TupleConfig.h TupleConfig-inl.h
-# 2D Pose constraints
-headers += Pose2Prior.h
-sources += Pose2Graph.cpp
-check_PROGRAMS += testPose2Factor testPose2Config testPose2Graph testPose2Prior
+# 2D Pose SLAM
+headers +=
+sources += pose2SLAM.cpp
+check_PROGRAMS += testPose2Factor testPose2Config testPose2SLAM testPose2Prior
+testPose2Prior_SOURCES = $(example) testPose2Prior.cpp
+testPose2Prior_LDADD = libgtsam.la
testPose2Factor_SOURCES = $(example) testPose2Factor.cpp
testPose2Factor_LDADD = libgtsam.la
testPose2Config_SOURCES = $(example) testPose2Config.cpp
testPose2Config_LDADD = libgtsam.la
-testPose2Graph_SOURCES = $(example) testPose2Graph.cpp
-testPose2Graph_LDADD = libgtsam.la
-testPose2Prior_SOURCES = $(example) testPose2Prior.cpp
-testPose2Prior_LDADD = libgtsam.la
+testPose2SLAM_SOURCES = $(example) testPose2SLAM.cpp
+testPose2SLAM_LDADD = libgtsam.la
# 2D SLAM using Bearing and Range
headers +=
diff --git a/cpp/Pose2Config.cpp b/cpp/Pose2Config.cpp
deleted file mode 100644
index be1ba1133..000000000
--- a/cpp/Pose2Config.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- * @file Pose2Config.cpp
- * @brief Configuration of 2D poses
- * @author Frank Dellaert
- */
-
-#include "Pose2Config.h"
-#include "LieConfig-inl.h"
-
-using namespace std;
-
-namespace gtsam {
-
- /** Explicit instantiation of templated methods and functions */
- template class LieConfig,Pose2>;
- template size_t dim(const Pose2Config& c);
- template Pose2Config expmap(const Pose2Config& c, const Vector& delta);
- template Pose2Config expmap(const Pose2Config& c, const VectorConfig& delta);
-
- /* ************************************************************************* */
- Pose2Config pose2Circle(size_t n, double R) {
- Pose2Config x;
- double theta = 0, dtheta = 2*M_PI/n;
- for(size_t i=0;i,Pose2> Pose2Config;
-
- /**
- * Create a circle of n 2D poses tangent to circle of radius R, first pose at (R,0)
- * @param n number of poses
- * @param R radius of circle
- * @param c character to use for keys
- * @return circle of n 2D poses
- */
- Pose2Config pose2Circle(size_t n, double R);
-
-} // namespace
diff --git a/cpp/Pose2Factor.h b/cpp/Pose2Factor.h
deleted file mode 100644
index 71aa707d8..000000000
--- a/cpp/Pose2Factor.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- * @file Pose2Factor.H
- * @authors Frank Dellaert, Viorela Ila
- **/
-
-#pragma once
-
-#include "BetweenFactor.h"
-#include "Pose2.h"
-#include "Pose2Config.h"
-
-namespace gtsam {
-
- /** This is just a typedef now */
- typedef BetweenFactor Pose2Factor;
-
-} /// namespace gtsam
diff --git a/cpp/Pose2Graph.cpp b/cpp/Pose2Graph.cpp
deleted file mode 100644
index 1ea49856c..000000000
--- a/cpp/Pose2Graph.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * @file Pose2Graph.cpp
- * @brief A factor graph for the 2D PoseSLAM problem
- * @authors Frank Dellaert, Viorela Ila
- */
-
-#include "Pose2Graph.h"
-#include "FactorGraph-inl.h"
-#include "NonlinearFactorGraph-inl.h"
-#include "NonlinearOptimizer-inl.h"
-#include "NonlinearEquality.h"
-#include "graph-inl.h"
-#include "LieConfig-inl.h"
-
-using namespace std;
-using namespace gtsam;
-
-namespace gtsam {
-
- /** Explicit instantiation of templated methods and functions */
- template class LieConfig,Pose2>;
- template size_t dim(const Pose2Config& c);
- template Pose2Config expmap(const Pose2Config& c, const Vector& delta);
- template Pose2Config expmap(const Pose2Config& c, const VectorConfig& delta);
-
- // explicit instantiation so all the code is there and we can link with it
- template class FactorGraph > ;
- template class NonlinearFactorGraph ;
- template class NonlinearEquality ;
- template class NonlinearOptimizer;
-
- /* ************************************************************************* */
- Pose2Config pose2Circle(size_t n, double R) {
- Pose2Config x;
- double theta = 0, dtheta = 2*M_PI/n;
- for(size_t i=0;i (key, pose)));
- }
-
- /* ************************************************************************* */
- bool Pose2Graph::equals(const Pose2Graph& p, double tol) const {
- return false;
- }
-
-} // namespace gtsam
diff --git a/cpp/Pose2Graph.h b/cpp/Pose2Graph.h
deleted file mode 100644
index 986e07666..000000000
--- a/cpp/Pose2Graph.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- * @file Pose2Graph.h
- * @brief A factor graph for the 2D PoseSLAM problem
- * @author Frank Dellaert
- * @author Viorela Ila
- */
-
-#pragma once
-
-#include "NonlinearFactorGraph.h"
-#include "Pose2.h"
-#include "LieConfig.h"
-#include "BetweenFactor.h"
-#include "Key.h"
-
-namespace gtsam {
-
- /**
- * Pose2Config is now simply a typedef
- */
- typedef LieConfig,Pose2> Pose2Config;
-
- typedef BetweenFactor Pose2Factor;
-
- /**
- * Create a circle of n 2D poses tangent to circle of radius R, first pose at (R,0)
- * @param n number of poses
- * @param R radius of circle
- * @param c character to use for keys
- * @return circle of n 2D poses
- */
- Pose2Config pose2Circle(size_t n, double R);
-
-
- /**
- * Non-linear factor graph for visual SLAM
- */
- class Pose2Graph: public gtsam::NonlinearFactorGraph {
-
- public:
-
- /** default constructor is empty graph */
- Pose2Graph() {
- }
-
- /**
- * equals
- */
- bool equals(const Pose2Graph& p, double tol = 1e-9) const;
-
- /**
- * Add a factor without having to do shared factor dance
- */
- inline void add(const Pose2Config::Key& key1, const Pose2Config::Key& key2,
- const Pose2& measured, const Matrix& covariance) {
- push_back(sharedFactor(new Pose2Factor(key1, key2, measured, covariance)));
- }
-
- /**
- * Add an equality constraint on a pose
- * @param key of pose
- * @param pose which pose to constrain it to
- */
- void addConstraint(const Pose2Config::Key& key, const Pose2& pose = Pose2());
-
- private:
- /** Serialization function */
- friend class boost::serialization::access;
- template
- void serialize(Archive & ar, const unsigned int version) {
- }
- };
-
-} // namespace gtsam
diff --git a/cpp/Pose2Prior.h b/cpp/PriorFactor.h
similarity index 85%
rename from cpp/Pose2Prior.h
rename to cpp/PriorFactor.h
index 293e4f6cf..3eb381dc3 100644
--- a/cpp/Pose2Prior.h
+++ b/cpp/PriorFactor.h
@@ -1,17 +1,12 @@
/**
- * @file Pose2Prior.h
- * @authors Michael Kaess
+ * @file PriorFactor.h
+ * @authors Frank Dellaert
**/
#pragma once
-#include