- Ifc: fix projection artifacts during opening generation.

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1321 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
pull/6/merge
aramis_acg 2012-10-21 21:50:30 +00:00
parent c3adc004bf
commit d128e3d531
1 changed files with 7 additions and 1 deletions

View File

@ -1448,6 +1448,12 @@ bool TryAddOpenings_Quadrulate(std::vector<TempOpening>& openings,
}
BoundingBox bb = BoundingBox(vpmin,vpmax);
// 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)) {
continue;
}
std::vector<TempOpening*> joined_openings(1, &opening);
// See if this BB intersects any other, in which case we could not use the Quadrify()
@ -1477,7 +1483,7 @@ bool TryAddOpenings_Quadrulate(std::vector<TempOpening>& openings,
break;
}
else {
IFCImporter::LogDebug("merging overlapping openings, this should not happen");
IFCImporter::LogDebug("merging overlapping openings");
contour.clear();
BOOST_FOREACH(const ClipperLib::IntPoint& point, poly[0].outer) {