Commit 489bbfe8 by Pierre Kraemer

### update squaredDistancePoint2Face and add closestPointInTriangle

parent 099d7609
 ... ... @@ -57,6 +57,19 @@ typename PFP::REAL squaredDistancePoint2FacePlane(typename PFP::MAP& map, Face f template typename PFP::REAL squaredDistancePoint2Face(typename PFP::MAP& map, Face f, const VertexAttribute& position, const typename PFP::VEC3& P) ; /** * compute the barycentric coordinates of the point in the triangle f that is closest to point P * @param map the map * @param f a triangle face * @param position the vertex attribute storing positions * @param P the point * @param u barycentric coordinate 1 of closest point * @param v barycentric coordinate 2 of closest point * @param w barycentric coordinate 3 of closest point */ template void closestPointInTriangle(typename PFP::MAP& map, Face f, const VertexAttribute& position, const typename PFP::VEC3& P, double& u, double& v, double& w) ; /** * compute squared distance from point to an edge * @param map the map ... ...
 ... ... @@ -71,6 +71,15 @@ typename PFP::REAL squaredDistancePoint2Face(typename PFP::MAP& map, Face f, con return dist2; } template void closestPointInTriangle(typename PFP::MAP& map, Face f, const VertexAttribute& position, const typename PFP::VEC3& P, double& u, double& v, double& w) { Dart d = map.phi1(f.dart); Dart e = map.phi1(d); Geom::closestPointInTriangle(P, position[f.dart], position[d], position[e], u, v, w); } template typename PFP::REAL squaredDistancePoint2Edge(typename PFP::MAP& map, Edge e, const VertexAttribute& position, const typename PFP::VEC3& P) { ... ...
 ... ... @@ -56,7 +56,7 @@ template typename VEC3::DATA_TYPE distancePoint2TrianglePlane(const VEC3& P, const VEC3& A, const VEC3& B, const VEC3& C) ; /** * compute squared distance from point to triangle * compute squared distance from point P to triangle ABC * @param P the point * @param A triangle point 1 * @param B triangle point 2 ... ... @@ -66,6 +66,19 @@ typename VEC3::DATA_TYPE distancePoint2TrianglePlane(const VEC3& P, const VEC3& template typename VEC3::DATA_TYPE squaredDistancePoint2Triangle(const VEC3& P, const VEC3& A, const VEC3& B, const VEC3& C) ; /** * compute the barycentric coordinates of the point in the triangle ABC that is closest to point P * @param P the point * @param A triangle point 1 * @param B triangle point 2 * @param C triangle point 3 * @param u barycentric coordinate 1 of closest point * @param v barycentric coordinate 2 of closest point * @param w barycentric coordinate 3 of closest point */ template void closestPointInTriangle(const VEC3& P, const VEC3& A, const VEC3& B, const VEC3& C, double& u, double& v, double& w) ; /** * compute squared distance from point to line * @param P the point ... ...
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment