Skip to content

Commit a70e50a

Browse files
authored
Merge pull request #1306 from Geode-solutions/fix/perf-distance
fix(geometry): add fast returns in triangle triangle distance
2 parents 2c45420 + c49d09f commit a70e50a

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

src/geode/geometry/distance.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1211,6 +1211,10 @@ namespace geode
12111211
point0 = vertices0[non_colocated_points0[0]].get();
12121212
point1 = cur_pt;
12131213
}
1214+
if( min_distance <= GLOBAL_EPSILON )
1215+
{
1216+
return std::tuple{ min_distance, point0, point1 };
1217+
}
12141218
}
12151219
if( non_colocated_points1.size() == 1 )
12161220
{
@@ -1222,6 +1226,10 @@ namespace geode
12221226
point0 = cur_pt;
12231227
point1 = vertices1[non_colocated_points1[0]].get();
12241228
}
1229+
if( min_distance <= GLOBAL_EPSILON )
1230+
{
1231+
return std::tuple{ min_distance, point0, point1 };
1232+
}
12251233
}
12261234
if( non_colocated_points0.size() == 1
12271235
&& non_colocated_points1.size() == 1 )
@@ -1235,6 +1243,10 @@ namespace geode
12351243
point0 = cur_pt0;
12361244
point1 = cur_pt1;
12371245
}
1246+
if( min_distance <= GLOBAL_EPSILON )
1247+
{
1248+
return std::tuple{ min_distance, point0, point1 };
1249+
}
12381250
}
12391251
if( non_colocated_points0.size() > 1 )
12401252
{
@@ -1246,6 +1258,10 @@ namespace geode
12461258
point0 = cur_pt0;
12471259
point1 = cur_pt1;
12481260
}
1261+
if( min_distance <= GLOBAL_EPSILON )
1262+
{
1263+
return std::tuple{ min_distance, point0, point1 };
1264+
}
12491265
}
12501266
if( non_colocated_points1.size() > 1 )
12511267
{
@@ -1257,6 +1273,10 @@ namespace geode
12571273
point0 = cur_pt0;
12581274
point1 = cur_pt1;
12591275
}
1276+
if( min_distance <= GLOBAL_EPSILON )
1277+
{
1278+
return std::tuple{ min_distance, point0, point1 };
1279+
}
12601280
}
12611281
return std::tuple{ min_distance, point0, point1 };
12621282
}

0 commit comments

Comments
 (0)