From 1e778cf77b2621f84cd830abd0a29e74d25201b3 Mon Sep 17 00:00:00 2001 From: Andrew Melim Date: Tue, 9 Dec 2014 11:53:35 -0500 Subject: [PATCH] No longer need to cast function pointers for expressions on Windows, with Optional Jacobian --- gtsam_unstable/nonlinear/expressions.h | 14 -------------- gtsam_unstable/slam/expressions.h | 17 +++-------------- 2 files changed, 3 insertions(+), 28 deletions(-) diff --git a/gtsam_unstable/nonlinear/expressions.h b/gtsam_unstable/nonlinear/expressions.h index 960371ed2..18d0d5d8f 100644 --- a/gtsam_unstable/nonlinear/expressions.h +++ b/gtsam_unstable/nonlinear/expressions.h @@ -8,25 +8,11 @@ #pragma once #include -#include -#include #include namespace gtsam { -// 2D Geometry - typedef Expression Pose2_; - - Pose2_ between(const Pose2_& x, const Pose2_& p) { - Pose2(Pose2::*transform)(const Pose2& p, - OptionalJacobian<3, 3> H1, - OptionalJacobian<3, 3> H2) const = &Pose2::between; - - return Pose2_(x, transform, p); - } - // Generics - template Expression between(const Expression& t1, const Expression& t2) { return Expression(t1, &T::between, t2); diff --git a/gtsam_unstable/slam/expressions.h b/gtsam_unstable/slam/expressions.h index a45e8f1b4..7badc9dd7 100644 --- a/gtsam_unstable/slam/expressions.h +++ b/gtsam_unstable/slam/expressions.h @@ -20,10 +20,7 @@ typedef Expression Rot2_; typedef Expression Pose2_; Point2_ transform_to(const Pose2_& x, const Point2_& p) { - Point2 (Pose2::*transform)(const Point2& p, OptionalJacobian<2, 3> H1, - OptionalJacobian<2, 2> H2) const = &Pose2::transform_to; - - return Point2_(x, transform, p); + return Point2_(x, &Pose2::transform_to, p); } // 3D Geometry @@ -33,11 +30,7 @@ typedef Expression Rot3_; typedef Expression Pose3_; Point3_ transform_to(const Pose3_& x, const Point3_& p) { - - Point3 (Pose3::*transform)(const Point3& p, OptionalJacobian<3, 6> Dpose, - OptionalJacobian<3, 3> Dpoint) const = &Pose3::transform_to; - - return Point3_(x, transform, p); + return Point3_(x, &Pose3::transform_to, p); } // Projection @@ -59,11 +52,7 @@ Point2_ project3(const Pose3_& x, const Point3_& p, const Cal3_S2_& K) { template Point2_ uncalibrate(const Expression& K, const Point2_& xy_hat) { - Point2(CAL::*uncal)(const Point2& p, - OptionalJacobian<2, 5> Dpose, - OptionalJacobian<2, 2> Dpoint) const = &CAL::uncalibrate; - - return Point2_(K, uncal, xy_hat); + return Point2_(K, &CAL::uncalibrate, xy_hat); } } // \namespace gtsam