diff --git a/gtsam_unstable/geometry/Similarity3.cpp b/gtsam_unstable/geometry/Similarity3.cpp index 819c51fee..8e3e97067 100644 --- a/gtsam_unstable/geometry/Similarity3.cpp +++ b/gtsam_unstable/geometry/Similarity3.cpp @@ -24,7 +24,7 @@ namespace gtsam { using std::vector; -using PointPairs = vector; +typedef PointPairs = vector; namespace { /// Subtract centroids from point pairs. diff --git a/gtsam_unstable/gtsam_unstable.i b/gtsam_unstable/gtsam_unstable.i index b5d9133cd..1ca73bbe6 100644 --- a/gtsam_unstable/gtsam_unstable.i +++ b/gtsam_unstable/gtsam_unstable.i @@ -164,12 +164,23 @@ class BearingS2 { }; #include +class PointPairs +{ + PointPairs(); + size_t size() const; + bool empty() const; + gtsam::Point3Pair at(size_t n) const; + void push_back(const gtsam::Point3Pair& point_pair); +}; + class Similarity3 { Similarity3(); Similarity3(double s); Similarity3(const gtsam::Rot3& R, const gtsam::Point3& t, double s); Similarity3(const Matrix& R, const Vector& t, double s); Similarity3(const Matrix& T); + + static Similarity3 Align(const gtsam::PointPairs & abPointPairs); }; #include diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index b50701464..3d6bf1702 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -41,6 +41,7 @@ set(ignore gtsam::BetweenFactorPose2s gtsam::BetweenFactorPose3s gtsam::Point2Vector + gtsam::PointPairs gtsam::Pose3Vector gtsam::KeyVector gtsam::BinaryMeasurementsUnit3 diff --git a/python/gtsam/specializations.h b/python/gtsam/specializations.h index 431697aac..04c1aa82c 100644 --- a/python/gtsam/specializations.h +++ b/python/gtsam/specializations.h @@ -6,6 +6,7 @@ py::bind_vector > >(m_, " py::bind_vector >(m_, "KeyVector"); #endif py::bind_vector > >(m_, "Point2Vector"); +py::bind_vector >(m_, "PointPairs"); py::bind_vector >(m_, "Pose3Vector"); py::bind_vector > > >(m_, "BetweenFactorPose3s"); py::bind_vector > > >(m_, "BetweenFactorPose2s");