diff --git a/gtsam_unstable/nonlinear/Expression-inl.h b/gtsam_unstable/nonlinear/Expression-inl.h index cd4bc68a7..308f03297 100644 --- a/gtsam_unstable/nonlinear/Expression-inl.h +++ b/gtsam_unstable/nonlinear/Expression-inl.h @@ -20,6 +20,7 @@ #pragma once #include +#include #include namespace gtsam { diff --git a/gtsam_unstable/nonlinear/tests/testBADFactor.cpp b/gtsam_unstable/nonlinear/tests/testBADFactor.cpp index b4960afcd..6cadc4f63 100644 --- a/gtsam_unstable/nonlinear/tests/testBADFactor.cpp +++ b/gtsam_unstable/nonlinear/tests/testBADFactor.cpp @@ -17,10 +17,11 @@ * @brief unit tests for Block Automatic Differentiation */ +#include +#include #include #include #include -#include #include #include @@ -28,31 +29,6 @@ using namespace std; using namespace gtsam; -/* ************************************************************************* */ -// Proposed naming convention -/* ************************************************************************* */ -typedef Expression Point2_; -typedef Expression Point3_; -typedef Expression Rot3_; -typedef Expression Pose3_; -typedef Expression Cal3_S2_; - -/* ************************************************************************* */ -// Functions that allow creating concise expressions -/* ************************************************************************* */ -Point3_ transform_to(const Pose3_& x, const Point3_& p) { - return Point3_(x, &Pose3::transform_to, p); -} - -Point2_ project(const Point3_& p_cam) { - return Point2_(PinholeCamera::project_to_camera, p_cam); -} - -template -Point2_ uncalibrate(const Expression& K, const Point2_& xy_hat) { - return Point2_(K, &CAL::uncalibrate, xy_hat); -} - /* ************************************************************************* */ TEST(BADFactor, test) { diff --git a/gtsam_unstable/slam/expressions.h b/gtsam_unstable/slam/expressions.h new file mode 100644 index 000000000..406456f50 --- /dev/null +++ b/gtsam_unstable/slam/expressions.h @@ -0,0 +1,36 @@ +/** + * @file expressions.h + * @brief Common expressions for solving geometry/slam/sfm problems + * @date Oct 1, 2014 + * @author Frank Dellaert + */ + +#pragma once + +#include +#include +#include + +namespace gtsam { + +typedef Expression Point2_; +typedef Expression Point3_; +typedef Expression Rot3_; +typedef Expression Pose3_; +typedef Expression Cal3_S2_; + +Point3_ transform_to(const Pose3_& x, const Point3_& p) { + return Point3_(x, &Pose3::transform_to, p); +} + +Point2_ project(const Point3_& p_cam) { + return Point2_(PinholeCamera::project_to_camera, p_cam); +} + +template +Point2_ uncalibrate(const Expression& K, const Point2_& xy_hat) { + return Point2_(K, &CAL::uncalibrate, xy_hat); +} + +} // \namespace gtsam +