MUDA
Loading...
Searching...
No Matches
point_triangle.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>
8MUDA_GENERIC void point_triangle_distance(const Eigen::Vector<T, 3>& p,
9 const Eigen::Vector<T, 3>& t0,
10 const Eigen::Vector<T, 3>& t1,
11 const Eigen::Vector<T, 3>& t2,
12 T& dist2);
13
14template <class T>
15MUDA_GENERIC void point_triangle_distance_gradient(const Eigen::Vector<T, 3>& p,
16 const Eigen::Vector<T, 3>& t0,
17 const Eigen::Vector<T, 3>& t1,
18 const Eigen::Vector<T, 3>& t2,
19 Eigen::Vector<T, 12>& grad);
20
21template <class T>
22MUDA_GENERIC void point_triangle_distance_hessian(const Eigen::Vector<T, 3>& p,
23 const Eigen::Vector<T, 3>& t0,
24 const Eigen::Vector<T, 3>& t1,
25 const Eigen::Vector<T, 3>& t2,
26 Eigen::Matrix<T, 12, 12>& Hessian);
27} // namespace muda::distance
28
29#include "details/point_triangle.inl"