- Ifc: avoid duplicate points in opening contour lines, this sometimes screws up the clipping algorithm.

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1325 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
This commit is contained in:
aramis_acg
2012-11-01 21:36:39 +00:00
parent 11b2219b1a
commit 612f67da0a

View File

@@ -1461,7 +1461,17 @@ bool TryAddOpenings_Quadrulate(std::vector<TempOpening>& openings,
vpmin = std::min(vpmin,vv);
vpmax = std::max(vpmax,vv);
contour.push_back(vv);
// usually there won't be too many elements so the linear time check is ok
bool found = false;
for (std::vector<IfcVector2>::const_iterator it = contour.begin(); it != contour.end(); ++it) {
if (((*it)-vv).SquareLength() < 1e-5f) {
found = true;
break;
}
}
if(!found) {
contour.push_back(vv);
}
}
}