FIX: A mesh with overlapping faces cannot be painted

STUDIO-2591

Change-Id: Iad566cdc45d123b5c8342c732c0dc964c261753a
(cherry picked from commit eb9f7297e0ea0557b32e5f59c3a91692ac8afa5b)
This commit is contained in:
zhimin.zeng 2023-03-30 15:05:13 +08:00 committed by Lane.Wei
parent 97bdeb7771
commit 62df53f86e
1 changed files with 5 additions and 4 deletions

View File

@ -184,10 +184,11 @@ IndexedMesh::query_ray_hits(const Vec3d &s, const Vec3d &dir) const
// Remove duplicates. They sometimes appear, for example when the ray is cast // Remove duplicates. They sometimes appear, for example when the ray is cast
// along an axis of a cube due to floating-point approximations in igl (?) // along an axis of a cube due to floating-point approximations in igl (?)
hits.erase(std::unique(hits.begin(), hits.end(), // BBS: STUDIO-2591 A mesh with overlapping faces cannot be painted
[](const igl::Hit& a, const igl::Hit& b) //hits.erase(std::unique(hits.begin(), hits.end(),
{ return a.t == b.t; }), // [](const igl::Hit& a, const igl::Hit& b)
hits.end()); // { return a.t == b.t; }),
// hits.end());
// Convert the igl::Hit into hit_result // Convert the igl::Hit into hit_result
outs.reserve(hits.size()); outs.reserve(hits.size());