- Ifc: fine-tune some epsilons.
parent
6e7722c92f
commit
d20126f7a1
|
@ -1957,7 +1957,7 @@ bool GenerateOpenings(std::vector<TempOpening>& openings,
|
|||
|
||||
|
||||
// TODO: This epsilon may be too large
|
||||
const IfcFloat epsilon = fabs(dmax-dmin) * 0.01;
|
||||
const IfcFloat epsilon = fabs(dmax-dmin) * 0.001;
|
||||
if (check_intersection && (base_d < dmin-epsilon || base_d > dmax+epsilon)) {
|
||||
continue;
|
||||
}
|
||||
|
@ -1966,7 +1966,7 @@ bool GenerateOpenings(std::vector<TempOpening>& openings,
|
|||
|
||||
// Skip over very small openings - these are likely projection errors
|
||||
// (i.e. they don't belong to this side of the wall)
|
||||
if(fabs(vpmax.x - vpmin.x) * fabs(vpmax.y - vpmin.y) < static_cast<IfcFloat>(1e-5)) {
|
||||
if(fabs(vpmax.x - vpmin.x) * fabs(vpmax.y - vpmin.y) < static_cast<IfcFloat>(1e-10)) {
|
||||
continue;
|
||||
}
|
||||
std::vector<TempOpening*> joined_openings(1, &opening);
|
||||
|
@ -2003,6 +2003,7 @@ bool GenerateOpenings(std::vector<TempOpening>& openings,
|
|||
|
||||
if (poly.size() > 1) {
|
||||
return TryAddOpenings_Poly2Tri(openings, nors, curmesh);
|
||||
break;
|
||||
}
|
||||
else if (poly.size() == 0) {
|
||||
IFCImporter::LogWarn("ignoring duplicate opening");
|
||||
|
|
Loading…
Reference in New Issue