3 #include <SpaceVecAlg/SpaceVecAlg>
18 template<
typename T,
typename Enable =
void>
21 static_assert(!std::is_same_v<T, T>,
"Must be specialized");
25 struct Default<T,
std::enable_if_t<std::is_arithmetic_v<T>>>
27 inline static constexpr T value = 0;
30 template<
typename Scalar,
int N,
int Options,
int MaxRows,
int MaxCols>
31 struct Default<Eigen::Matrix<Scalar, N, 1, Options, MaxRows, MaxCols>, std::enable_if_t<(N > 0)>>
33 inline static const Eigen::Matrix<Scalar, N, 1, Options, MaxRows, MaxCols> value =
34 Eigen::Matrix<Scalar, N, 1, Options, MaxRows, MaxCols>::Zero();
37 template<
typename Scalar,
int N,
int Options,
int MaxRows,
int MaxCols>
38 struct Default<Eigen::Matrix<Scalar, N, N, Options, MaxRows, MaxCols>, std::enable_if_t<(N > 1)>>
40 inline static const Eigen::Matrix<Scalar, N, N, Options, MaxRows, MaxCols> value =
41 Eigen::Matrix<Scalar, N, N, Options, MaxRows, MaxCols>::Identity();
47 inline static const sva::PTransformd value = sva::PTransformd::Identity();
53 inline static const sva::MotionVecd value = sva::MotionVecd::Zero();
59 inline static const sva::ForceVecd value = sva::ForceVecd::Zero();
65 inline static const sva::ImpedanceVecd value = sva::ImpedanceVecd::Zero();
71 inline static const sva::AdmittanceVecd value = sva::AdmittanceVecd::Zero();
77 inline static const std::string
value;
80 template<
typename T,
typename... Others>