Windows Fixes (#904)
parent
7dee503739
commit
b47f46a6f5
|
@ -26,7 +26,11 @@ jobs:
|
||||||
windows-2019-cl,
|
windows-2019-cl,
|
||||||
]
|
]
|
||||||
|
|
||||||
build_type: [Debug, Release]
|
build_type: [
|
||||||
|
Debug,
|
||||||
|
#TODO(Varun) The release build takes over 2.5 hours, need to figure out why.
|
||||||
|
# Release
|
||||||
|
]
|
||||||
build_unstable: [ON]
|
build_unstable: [ON]
|
||||||
include:
|
include:
|
||||||
#TODO This build fails, need to understand why.
|
#TODO This build fails, need to understand why.
|
||||||
|
@ -90,13 +94,18 @@ jobs:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Build
|
- name: Configuration
|
||||||
run: |
|
run: |
|
||||||
cmake -E remove_directory build
|
cmake -E remove_directory build
|
||||||
cmake -B build -S . -DGTSAM_BUILD_EXAMPLES_ALWAYS=OFF -DBOOST_ROOT="${env:BOOST_ROOT}" -DBOOST_INCLUDEDIR="${env:BOOST_ROOT}\boost\include" -DBOOST_LIBRARYDIR="${env:BOOST_ROOT}\lib"
|
cmake -B build -S . -DGTSAM_BUILD_EXAMPLES_ALWAYS=OFF -DBOOST_ROOT="${env:BOOST_ROOT}" -DBOOST_INCLUDEDIR="${env:BOOST_ROOT}\boost\include" -DBOOST_LIBRARYDIR="${env:BOOST_ROOT}\lib"
|
||||||
cmake --build build --config ${{ matrix.build_type }} --target gtsam
|
|
||||||
cmake --build build --config ${{ matrix.build_type }} --target gtsam_unstable
|
- name: Build
|
||||||
cmake --build build --config ${{ matrix.build_type }} --target wrap
|
run: |
|
||||||
cmake --build build --config ${{ matrix.build_type }} --target check.base
|
# Since Visual Studio is a multi-generator, we need to use --config
|
||||||
cmake --build build --config ${{ matrix.build_type }} --target check.base_unstable
|
# https://stackoverflow.com/a/24470998/1236990
|
||||||
cmake --build build --config ${{ matrix.build_type }} --target check.linear
|
cmake --build build -j 4 --config ${{ matrix.build_type }} --target gtsam
|
||||||
|
cmake --build build -j 4 --config ${{ matrix.build_type }} --target gtsam_unstable
|
||||||
|
cmake --build build -j 4 --config ${{ matrix.build_type }} --target wrap
|
||||||
|
cmake --build build -j 4 --config ${{ matrix.build_type }} --target check.base
|
||||||
|
cmake --build build -j 4 --config ${{ matrix.build_type }} --target check.base_unstable
|
||||||
|
cmake --build build -j 4 --config ${{ matrix.build_type }} --target check.linear
|
||||||
|
|
|
@ -282,7 +282,7 @@ public:
|
||||||
* which are objects in non-linear manifolds (Lie groups).
|
* which are objects in non-linear manifolds (Lie groups).
|
||||||
*/
|
*/
|
||||||
template<class VALUE>
|
template<class VALUE>
|
||||||
class NoiseModelFactor1: public NoiseModelFactor {
|
class GTSAM_EXPORT NoiseModelFactor1: public NoiseModelFactor {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
@ -366,7 +366,7 @@ private:
|
||||||
/** A convenient base class for creating your own NoiseModelFactor with 2
|
/** A convenient base class for creating your own NoiseModelFactor with 2
|
||||||
* variables. To derive from this class, implement evaluateError(). */
|
* variables. To derive from this class, implement evaluateError(). */
|
||||||
template<class VALUE1, class VALUE2>
|
template<class VALUE1, class VALUE2>
|
||||||
class NoiseModelFactor2: public NoiseModelFactor {
|
class GTSAM_EXPORT NoiseModelFactor2: public NoiseModelFactor {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
@ -441,7 +441,7 @@ private:
|
||||||
/** A convenient base class for creating your own NoiseModelFactor with 3
|
/** A convenient base class for creating your own NoiseModelFactor with 3
|
||||||
* variables. To derive from this class, implement evaluateError(). */
|
* variables. To derive from this class, implement evaluateError(). */
|
||||||
template<class VALUE1, class VALUE2, class VALUE3>
|
template<class VALUE1, class VALUE2, class VALUE3>
|
||||||
class NoiseModelFactor3: public NoiseModelFactor {
|
class GTSAM_EXPORT NoiseModelFactor3: public NoiseModelFactor {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
@ -518,7 +518,7 @@ private:
|
||||||
/** A convenient base class for creating your own NoiseModelFactor with 4
|
/** A convenient base class for creating your own NoiseModelFactor with 4
|
||||||
* variables. To derive from this class, implement evaluateError(). */
|
* variables. To derive from this class, implement evaluateError(). */
|
||||||
template<class VALUE1, class VALUE2, class VALUE3, class VALUE4>
|
template<class VALUE1, class VALUE2, class VALUE3, class VALUE4>
|
||||||
class NoiseModelFactor4: public NoiseModelFactor {
|
class GTSAM_EXPORT NoiseModelFactor4: public NoiseModelFactor {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
@ -599,7 +599,7 @@ private:
|
||||||
/** A convenient base class for creating your own NoiseModelFactor with 5
|
/** A convenient base class for creating your own NoiseModelFactor with 5
|
||||||
* variables. To derive from this class, implement evaluateError(). */
|
* variables. To derive from this class, implement evaluateError(). */
|
||||||
template<class VALUE1, class VALUE2, class VALUE3, class VALUE4, class VALUE5>
|
template<class VALUE1, class VALUE2, class VALUE3, class VALUE4, class VALUE5>
|
||||||
class NoiseModelFactor5: public NoiseModelFactor {
|
class GTSAM_EXPORT NoiseModelFactor5: public NoiseModelFactor {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
@ -684,7 +684,7 @@ private:
|
||||||
/** A convenient base class for creating your own NoiseModelFactor with 6
|
/** A convenient base class for creating your own NoiseModelFactor with 6
|
||||||
* variables. To derive from this class, implement evaluateError(). */
|
* variables. To derive from this class, implement evaluateError(). */
|
||||||
template<class VALUE1, class VALUE2, class VALUE3, class VALUE4, class VALUE5, class VALUE6>
|
template<class VALUE1, class VALUE2, class VALUE3, class VALUE4, class VALUE5, class VALUE6>
|
||||||
class NoiseModelFactor6: public NoiseModelFactor {
|
class GTSAM_EXPORT NoiseModelFactor6: public NoiseModelFactor {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ namespace gtsam {
|
||||||
unit translations in a projection direction.
|
unit translations in a projection direction.
|
||||||
@addtogroup SFM
|
@addtogroup SFM
|
||||||
*/
|
*/
|
||||||
class MFAS {
|
class GTSAM_EXPORT MFAS {
|
||||||
public:
|
public:
|
||||||
// used to represent edges between two nodes in the graph. When used in
|
// used to represent edges between two nodes in the graph. When used in
|
||||||
// translation averaging for global SfM
|
// translation averaging for global SfM
|
||||||
|
|
|
@ -47,7 +47,7 @@ namespace gtsam {
|
||||||
* @tparam CAMERA should behave like a PinholeCamera.
|
* @tparam CAMERA should behave like a PinholeCamera.
|
||||||
*/
|
*/
|
||||||
template<class CAMERA>
|
template<class CAMERA>
|
||||||
class SmartFactorBase: public NonlinearFactor {
|
class GTSAM_EXPORT SmartFactorBase: public NonlinearFactor {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
typedef NonlinearFactor Base;
|
typedef NonlinearFactor Base;
|
||||||
|
|
|
@ -41,11 +41,10 @@ namespace gtsam {
|
||||||
* If the calibration should be optimized, as well, use SmartProjectionFactor instead!
|
* If the calibration should be optimized, as well, use SmartProjectionFactor instead!
|
||||||
* @addtogroup SLAM
|
* @addtogroup SLAM
|
||||||
*/
|
*/
|
||||||
template<class CALIBRATION>
|
template <class CALIBRATION>
|
||||||
class SmartProjectionPoseFactor: public SmartProjectionFactor<
|
class GTSAM_EXPORT SmartProjectionPoseFactor
|
||||||
PinholePose<CALIBRATION> > {
|
: public SmartProjectionFactor<PinholePose<CALIBRATION> > {
|
||||||
|
private:
|
||||||
private:
|
|
||||||
typedef PinholePose<CALIBRATION> Camera;
|
typedef PinholePose<CALIBRATION> Camera;
|
||||||
typedef SmartProjectionFactor<Camera> Base;
|
typedef SmartProjectionFactor<Camera> Base;
|
||||||
typedef SmartProjectionPoseFactor<CALIBRATION> This;
|
typedef SmartProjectionPoseFactor<CALIBRATION> This;
|
||||||
|
@ -156,7 +155,6 @@ public:
|
||||||
ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base);
|
ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base);
|
||||||
ar & BOOST_SERIALIZATION_NVP(K_);
|
ar & BOOST_SERIALIZATION_NVP(K_);
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
// end of class declaration
|
// end of class declaration
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,8 @@
|
||||||
|
|
||||||
#include <gtsam/geometry/OrientedPlane3.h>
|
#include <gtsam/geometry/OrientedPlane3.h>
|
||||||
#include <gtsam/nonlinear/NonlinearFactor.h>
|
#include <gtsam/nonlinear/NonlinearFactor.h>
|
||||||
|
#include <gtsam_unstable/dllexport.h>
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
namespace gtsam {
|
namespace gtsam {
|
||||||
|
@ -32,9 +34,9 @@ namespace gtsam {
|
||||||
* a local linearisation point for the plane. The plane is representated and
|
* a local linearisation point for the plane. The plane is representated and
|
||||||
* optimized in x1 frame in the optimization.
|
* optimized in x1 frame in the optimization.
|
||||||
*/
|
*/
|
||||||
class LocalOrientedPlane3Factor: public NoiseModelFactor3<Pose3, Pose3,
|
class GTSAM_UNSTABLE_EXPORT LocalOrientedPlane3Factor
|
||||||
OrientedPlane3> {
|
: public NoiseModelFactor3<Pose3, Pose3, OrientedPlane3> {
|
||||||
protected:
|
protected:
|
||||||
OrientedPlane3 measured_p_;
|
OrientedPlane3 measured_p_;
|
||||||
typedef NoiseModelFactor3<Pose3, Pose3, OrientedPlane3> Base;
|
typedef NoiseModelFactor3<Pose3, Pose3, OrientedPlane3> Base;
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -18,9 +18,11 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <gtsam/nonlinear/NonlinearFactor.h>
|
|
||||||
#include <gtsam/geometry/PinholeCamera.h>
|
|
||||||
#include <gtsam/geometry/Cal3_S2.h>
|
#include <gtsam/geometry/Cal3_S2.h>
|
||||||
|
#include <gtsam/geometry/PinholeCamera.h>
|
||||||
|
#include <gtsam/nonlinear/NonlinearFactor.h>
|
||||||
|
#include <gtsam_unstable/dllexport.h>
|
||||||
|
|
||||||
#include <boost/optional.hpp>
|
#include <boost/optional.hpp>
|
||||||
|
|
||||||
namespace gtsam {
|
namespace gtsam {
|
||||||
|
@ -30,10 +32,10 @@ namespace gtsam {
|
||||||
* estimates the body pose, body-camera transform, 3D landmark, and calibration.
|
* estimates the body pose, body-camera transform, 3D landmark, and calibration.
|
||||||
* @addtogroup SLAM
|
* @addtogroup SLAM
|
||||||
*/
|
*/
|
||||||
template<class POSE, class LANDMARK, class CALIBRATION = Cal3_S2>
|
template <class POSE, class LANDMARK, class CALIBRATION = Cal3_S2>
|
||||||
class ProjectionFactorPPPC: public NoiseModelFactor4<POSE, POSE, LANDMARK, CALIBRATION> {
|
class GTSAM_UNSTABLE_EXPORT ProjectionFactorPPPC
|
||||||
|
: public NoiseModelFactor4<POSE, POSE, LANDMARK, CALIBRATION> {
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
Point2 measured_; ///< 2D measurement
|
Point2 measured_; ///< 2D measurement
|
||||||
|
|
||||||
// verbosity handling for Cheirality Exceptions
|
// verbosity handling for Cheirality Exceptions
|
||||||
|
@ -41,7 +43,6 @@ namespace gtsam {
|
||||||
bool verboseCheirality_; ///< If true, prints text for Cheirality exceptions (default: false)
|
bool verboseCheirality_; ///< If true, prints text for Cheirality exceptions (default: false)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
/// shorthand for base class type
|
/// shorthand for base class type
|
||||||
typedef NoiseModelFactor4<POSE, POSE, LANDMARK, CALIBRATION> Base;
|
typedef NoiseModelFactor4<POSE, POSE, LANDMARK, CALIBRATION> Base;
|
||||||
|
|
||||||
|
@ -168,7 +169,7 @@ namespace gtsam {
|
||||||
ar & BOOST_SERIALIZATION_NVP(throwCheirality_);
|
ar & BOOST_SERIALIZATION_NVP(throwCheirality_);
|
||||||
ar & BOOST_SERIALIZATION_NVP(verboseCheirality_);
|
ar & BOOST_SERIALIZATION_NVP(verboseCheirality_);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/// traits
|
/// traits
|
||||||
template<class POSE, class LANDMARK, class CALIBRATION>
|
template<class POSE, class LANDMARK, class CALIBRATION>
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#include <gtsam/geometry/CalibratedCamera.h>
|
#include <gtsam/geometry/CalibratedCamera.h>
|
||||||
#include <gtsam/geometry/PinholeCamera.h>
|
#include <gtsam/geometry/PinholeCamera.h>
|
||||||
#include <gtsam/nonlinear/NonlinearFactor.h>
|
#include <gtsam/nonlinear/NonlinearFactor.h>
|
||||||
|
#include <gtsam_unstable/dllexport.h>
|
||||||
|
|
||||||
#include <boost/optional.hpp>
|
#include <boost/optional.hpp>
|
||||||
|
|
||||||
|
@ -40,7 +41,7 @@ namespace gtsam {
|
||||||
* @addtogroup SLAM
|
* @addtogroup SLAM
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class ProjectionFactorRollingShutter
|
class GTSAM_UNSTABLE_EXPORT ProjectionFactorRollingShutter
|
||||||
: public NoiseModelFactor3<Pose3, Pose3, Point3> {
|
: public NoiseModelFactor3<Pose3, Pose3, Point3> {
|
||||||
protected:
|
protected:
|
||||||
// Keep a copy of measurement and calibration for I/O
|
// Keep a copy of measurement and calibration for I/O
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
|
|
||||||
#include <gtsam/geometry/CameraSet.h>
|
#include <gtsam/geometry/CameraSet.h>
|
||||||
#include <gtsam/slam/SmartProjectionFactor.h>
|
#include <gtsam/slam/SmartProjectionFactor.h>
|
||||||
|
#include <gtsam_unstable/dllexport.h>
|
||||||
|
|
||||||
namespace gtsam {
|
namespace gtsam {
|
||||||
/**
|
/**
|
||||||
|
@ -41,7 +42,7 @@ namespace gtsam {
|
||||||
* @addtogroup SLAM
|
* @addtogroup SLAM
|
||||||
*/
|
*/
|
||||||
template <class CAMERA>
|
template <class CAMERA>
|
||||||
class SmartProjectionPoseFactorRollingShutter
|
class GTSAM_UNSTABLE_EXPORT SmartProjectionPoseFactorRollingShutter
|
||||||
: public SmartProjectionFactor<CAMERA> {
|
: public SmartProjectionFactor<CAMERA> {
|
||||||
private:
|
private:
|
||||||
typedef SmartProjectionFactor<CAMERA> Base;
|
typedef SmartProjectionFactor<CAMERA> Base;
|
||||||
|
|
|
@ -20,18 +20,18 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <gtsam/slam/SmartFactorBase.h>
|
|
||||||
#include <gtsam/slam/SmartFactorParams.h>
|
|
||||||
|
|
||||||
#include <gtsam/geometry/triangulation.h>
|
|
||||||
#include <gtsam/geometry/Pose3.h>
|
#include <gtsam/geometry/Pose3.h>
|
||||||
#include <gtsam/geometry/StereoCamera.h>
|
#include <gtsam/geometry/StereoCamera.h>
|
||||||
#include <gtsam/slam/StereoFactor.h>
|
#include <gtsam/geometry/triangulation.h>
|
||||||
#include <gtsam/inference/Symbol.h>
|
#include <gtsam/inference/Symbol.h>
|
||||||
|
#include <gtsam/slam/SmartFactorBase.h>
|
||||||
|
#include <gtsam/slam/SmartFactorParams.h>
|
||||||
|
#include <gtsam/slam/StereoFactor.h>
|
||||||
#include <gtsam/slam/dataset.h>
|
#include <gtsam/slam/dataset.h>
|
||||||
|
#include <gtsam_unstable/dllexport.h>
|
||||||
|
|
||||||
#include <boost/optional.hpp>
|
|
||||||
#include <boost/make_shared.hpp>
|
#include <boost/make_shared.hpp>
|
||||||
|
#include <boost/optional.hpp>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
namespace gtsam {
|
namespace gtsam {
|
||||||
|
@ -49,8 +49,9 @@ typedef SmartProjectionParams SmartStereoProjectionParams;
|
||||||
* If you'd like to store poses in values instead of cameras, use
|
* If you'd like to store poses in values instead of cameras, use
|
||||||
* SmartStereoProjectionPoseFactor instead
|
* SmartStereoProjectionPoseFactor instead
|
||||||
*/
|
*/
|
||||||
class SmartStereoProjectionFactor: public SmartFactorBase<StereoCamera> {
|
class GTSAM_UNSTABLE_EXPORT SmartStereoProjectionFactor
|
||||||
private:
|
: public SmartFactorBase<StereoCamera> {
|
||||||
|
private:
|
||||||
|
|
||||||
typedef SmartFactorBase<StereoCamera> Base;
|
typedef SmartFactorBase<StereoCamera> Base;
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,8 @@ namespace gtsam {
|
||||||
* are Pose3 variables).
|
* are Pose3 variables).
|
||||||
* @addtogroup SLAM
|
* @addtogroup SLAM
|
||||||
*/
|
*/
|
||||||
class SmartStereoProjectionFactorPP : public SmartStereoProjectionFactor {
|
class GTSAM_UNSTABLE_EXPORT SmartStereoProjectionFactorPP
|
||||||
|
: public SmartStereoProjectionFactor {
|
||||||
protected:
|
protected:
|
||||||
/// shared pointer to calibration object (one for each camera)
|
/// shared pointer to calibration object (one for each camera)
|
||||||
std::vector<boost::shared_ptr<Cal3_S2Stereo>> K_all_;
|
std::vector<boost::shared_ptr<Cal3_S2Stereo>> K_all_;
|
||||||
|
@ -294,7 +295,6 @@ class SmartStereoProjectionFactorPP : public SmartStereoProjectionFactor {
|
||||||
ar& BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base);
|
ar& BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base);
|
||||||
ar & BOOST_SERIALIZATION_NVP(K_all_);
|
ar & BOOST_SERIALIZATION_NVP(K_all_);
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
// end of class declaration
|
// end of class declaration
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,8 @@ namespace gtsam {
|
||||||
* This factor requires that values contains the involved poses (Pose3).
|
* This factor requires that values contains the involved poses (Pose3).
|
||||||
* @addtogroup SLAM
|
* @addtogroup SLAM
|
||||||
*/
|
*/
|
||||||
class SmartStereoProjectionPoseFactor : public SmartStereoProjectionFactor {
|
class GTSAM_UNSTABLE_EXPORT SmartStereoProjectionPoseFactor
|
||||||
|
: public SmartStereoProjectionFactor {
|
||||||
protected:
|
protected:
|
||||||
/// shared pointer to calibration object (one for each camera)
|
/// shared pointer to calibration object (one for each camera)
|
||||||
std::vector<boost::shared_ptr<Cal3_S2Stereo>> K_all_;
|
std::vector<boost::shared_ptr<Cal3_S2Stereo>> K_all_;
|
||||||
|
|
Loading…
Reference in New Issue