diff --git a/CMakeLists.txt b/CMakeLists.txt index 4529c6153..4257b2eb5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,7 +57,7 @@ option(GTSAM_USE_QUATERNIONS "Enable/Disable using an internal Quate if(NOT MSVC) option(GTSAM_BUILD_CONVENIENCE_LIBRARIES "Enable/Disable use of convenience libraries for faster development rebuilds, but slower install" OFF) endif() - +option(GTSAM_POSE3_EXPMAP "Enable/Disable using Pose3::EXPMAP as the default mode. If disabled, Pose3::FIRST_ORDER will be used." OFF) # Options relating to MATLAB wrapper # TODO: Check for matlab mex binary before handling building of binaries diff --git a/gtsam/config.h.in b/gtsam/config.h.in index 1205bcf31..9ecfcb3d7 100644 --- a/gtsam/config.h.in +++ b/gtsam/config.h.in @@ -23,3 +23,6 @@ // Whether GTSAM is compiled to use quaternions for Rot3 (otherwise uses rotation matrices) #cmakedefine GTSAM_USE_QUATERNIONS + +// Whether GTSAM is compiled to use Pose3::EXPMAP as the default coordinates mode for Pose3's retract and localCoordinates (otherwise, Pose3::FIRST_ORDER will be used) +#cmakedefine GTSAM_POSE3_EXPMAP \ No newline at end of file diff --git a/gtsam/geometry/Pose3.h b/gtsam/geometry/Pose3.h index 208f25e77..9d7444233 100644 --- a/gtsam/geometry/Pose3.h +++ b/gtsam/geometry/Pose3.h @@ -18,7 +18,11 @@ #pragma once -#ifndef POSE3_DEFAULT_COORDINATES_MODE +#include + +#ifndef GTSAM_POSE3_EXPMAP +#define POSE3_DEFAULT_COORDINATES_MODE Pose3::FIRST_ORDER +#else #define POSE3_DEFAULT_COORDINATES_MODE Pose3::EXPMAP #endif