Skip to content

Commit

Permalink
Merge pull request #26455 from hpvb/fix-21141
Browse files Browse the repository at this point in the history
Scale quickhull tolerance with mesh size
  • Loading branch information
akien-mga authored Mar 1, 2019
2 parents 834a984 + 33c6b0e commit 78fcbb8
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 3 deletions.
4 changes: 2 additions & 2 deletions core/math/quick_hull.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,6 @@ uint32_t QuickHull::debug_stop_after = 0xFFFFFFFF;

Error QuickHull::build(const Vector<Vector3> &p_points, Geometry::MeshData &r_mesh) {

static const real_t over_tolerance = 0.0001;

/* CREATE AABB VOLUME */

AABB aabb;
Expand Down Expand Up @@ -180,6 +178,8 @@ Error QuickHull::build(const Vector<Vector3> &p_points, Geometry::MeshData &r_me
faces.push_back(f);
}

real_t over_tolerance = 3 * UNIT_EPSILON * (aabb.size.x + aabb.size.y + aabb.size.z);

/* COMPUTE AVAILABLE VERTICES */

for (int i = 0; i < p_points.size(); i++) {
Expand Down
2 changes: 1 addition & 1 deletion core/math/quick_hull.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ class QuickHull {
struct Face {

Plane plane;
int vertices[3];
uint32_t vertices[3];
Vector<int> points_over;

bool operator<(const Face &p_face) const {
Expand Down

0 comments on commit 78fcbb8

Please sign in to comment.