namespace mrpt::gtsam_wrappers

namespace gtsam_wrappers {

// global functions

static gtsam::Point3 toPoint3(const mrpt::math::TPoint3D& p);
static mrpt::math::TPoint3D toTPoint3(const gtsam::Point3& p);
static mrpt::math::TTwist3D toTTwist3D(const gtsam::Velocity3& v);
static std::array<double, 3> toVelArray(const gtsam::Velocity3& v);
static mrpt::math::CMatrixDouble66 to_mrpt_se3_cov6(const gtsam::Matrix6& se3_cov);
static gtsam::Matrix6 to_gtsam_se3_cov6_reordering(const mrpt::math::CMatrixDouble66& se3_cov);
static gtsam::Matrix6 to_gtsam_se3_cov6_isotropic(const mrpt::math::CMatrixDouble66& se3_cov);
static gtsam::Pose3 toPose3(const mrpt::poses::CPose3D& p);
static mrpt::math::TPose3D toTPose3D(const gtsam::Rot3& p);
static gtsam::Pose3 toPose3(const mrpt::math::TPose3D& p);
static mrpt::math::TPose3D toTPose3D(const gtsam::Pose3& p);

static void to_gtsam_se3_cov6(
    const mrpt::poses::CPose3DPDFGaussian& in,
    gtsam::Pose3& pose_out,
    gtsam::Matrix6& cov_out
    );

} // namespace gtsam_wrappers