40 std::runtime_error(
"Error While Executing Path Code: " +
description)
56 {
a -
b } -> std::same_as<T>;
57 {
a * t } -> std::same_as<T>;
58 {
a +
b } -> std::same_as<T>;
59 {
a.t } -> std::convertible_to<RealType>;
70template <Interpolatable T>
89template <Interpolatable T>
97 auto xrp = std::ranges::upper_bound(
coords, t, {}, &T::t);
109 using index_type =
typename std::vector<T>::size_type;
133template <Interpolatable T>
141 auto xrp = std::ranges::upper_bound(
coords, t, {}, &T::t);
153 using index_type =
typename std::vector<T>::size_type;
179template <Interpolatable T>
182 using index_type =
typename std::vector<T>::size_type;
218 dd[i] = (
si - 1.0) /
p;
Exception class for handling path-related errors.
PathException(const std::string &description)
Constructor for PathException.
Concept for types that can be interpolated.
Global configuration file for the project.
double RealType
Type for real numbers.
constexpr RealType EPSILON
Machine epsilon for real numbers.
void getPositionLinear(RealType t, T &coord, const std::vector< T > &coords)
Performs linear interpolation between coordinate points.
void getPositionStatic(T &coord, const std::vector< T > &coords)
Interpolates a static position from a list of coordinates.
void finalizeCubic(const std::vector< T > &coords, std::vector< T > &dd)
Finalizes cubic spline interpolation by calculating second derivatives.
void getPositionCubic(RealType t, T &coord, const std::vector< T > &coords, const std::vector< T > &dd)
Performs cubic spline interpolation between coordinate points.