MUDA
Loading...
Searching...
No Matches
distance_unclassified.h
1#pragma once
2#include <muda/muda_def.h>
3#include <muda/ext/geo/distance/distance_type.h>
4#include <muda/ext/geo/distance/point_triangle.h>
5#include <muda/ext/geo/distance/point_edge.h>
6#include <muda/ext/geo/distance/point_point.h>
7#include <muda/ext/geo/distance/edge_edge.h>
8#include <muda/ext/geo/distance/edge_edge_mollified.h>
9
10namespace muda::distance
11{
12template <class T>
13MUDA_GENERIC void point_point_distance_unclassified(const Eigen::Vector<T, 3>& p0,
14 const Eigen::Vector<T, 3>& p1,
15 T& dist2);
16
17template <class T>
18MUDA_GENERIC void point_triangle_distance_unclassified(const Eigen::Vector<T, 3>& p,
19 const Eigen::Vector<T, 3>& t0,
20 const Eigen::Vector<T, 3>& t1,
21 const Eigen::Vector<T, 3>& t2,
22 T& dist2);
23
24template <class T>
25MUDA_GENERIC void edge_edge_distance_unclassified(const Eigen::Vector<T, 3>& ea0,
26 const Eigen::Vector<T, 3>& ea1,
27 const Eigen::Vector<T, 3>& eb0,
28 const Eigen::Vector<T, 3>& eb1,
29 T& dist2);
30
31// http://geomalgorithms.com/a02-_lines.html
32template <class T>
33MUDA_GENERIC void point_edge_distance_unclassified(const Eigen::Vector<T, 3>& p,
34 const Eigen::Vector<T, 3>& e0,
35 const Eigen::Vector<T, 3>& e1,
36 T& dist2);
37
38} // namespace muda::distance
39
40#include "details/distance_unclassified.inl"