- Ifc: fix projection artifacts during opening generation.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1321 67173fc5-114c-0410-ac8e-9d2fd5bffc1fpull/6/merge
parent
c3adc004bf
commit
d128e3d531
|
@ -1448,6 +1448,12 @@ bool TryAddOpenings_Quadrulate(std::vector<TempOpening>& openings,
|
||||||
}
|
}
|
||||||
|
|
||||||
BoundingBox bb = BoundingBox(vpmin,vpmax);
|
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);
|
std::vector<TempOpening*> joined_openings(1, &opening);
|
||||||
|
|
||||||
// See if this BB intersects any other, in which case we could not use the Quadrify()
|
// 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;
|
break;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
IFCImporter::LogDebug("merging overlapping openings, this should not happen");
|
IFCImporter::LogDebug("merging overlapping openings");
|
||||||
|
|
||||||
contour.clear();
|
contour.clear();
|
||||||
BOOST_FOREACH(const ClipperLib::IntPoint& point, poly[0].outer) {
|
BOOST_FOREACH(const ClipperLib::IntPoint& point, poly[0].outer) {
|
||||||
|
|
Loading…
Reference in New Issue