.. _program_listing_file_sophus_interpolate.hpp: Program Listing for File interpolate.hpp ======================================== |exhale_lsh| :ref:`Return to documentation for file ` (``sophus/interpolate.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include #include "interpolate_details.hpp" namespace Sophus { template enable_if_t::supported, G> interpolate( G const& foo_T_bar, G const& foo_T_baz, Scalar2 p = Scalar2(0.5f)) { using Scalar = typename G::Scalar; Scalar inter_p(p); SOPHUS_ENSURE(inter_p >= Scalar(0) && inter_p <= Scalar(1), "p ({}) must in [0, 1].", SOPHUS_FMT_ARG(inter_p)); return foo_T_bar * G::exp(inter_p * (foo_T_bar.inverse() * foo_T_baz).log()); } } // namespace Sophus