MUDA
Loading...
Searching...
No Matches
point_edge.h
1#pragma once
2#include <muda/muda_def.h>
3#include <muda/ext/eigen/eigen_core_cxx20.h>
4
5namespace muda::distance
6{
7template <class T, int dim>
8MUDA_GENERIC void point_edge_distance(const Eigen::Vector<T, dim>& p,
9 const Eigen::Vector<T, dim>& e0,
10 const Eigen::Vector<T, dim>& e1,
11 T& dist2);
12
13template <class T, int dim>
14MUDA_GENERIC void point_edge_distance_gradient(const Eigen::Vector<T, dim>& p,
15 const Eigen::Vector<T, dim>& e0,
16 const Eigen::Vector<T, dim>& e1,
17 Eigen::Vector<T, dim * 3>& grad);
18
19template <class T, int dim>
20MUDA_GENERIC void point_edge_distance_hessian(const Eigen::Vector<T, dim>& p,
21 const Eigen::Vector<T, dim>& e0,
22 const Eigen::Vector<T, dim>& e1,
23 Eigen::Matrix<T, dim * 3, dim * 3>& Hessian);
24
25} // namespace muda::distance
26
27#include "details/point_edge.inl"