Explorar el Código

- Bugfix: IFC loader tested squared length against non-squared epsilon in RemoveDegenerates()

ulf hace 10 años
padre
commit
0cdc528e01
Se han modificado 2 ficheros con 2 adiciones y 2 borrados
  1. 1 1
      code/IFCBoolean.cpp
  2. 1 1
      code/IFCUtil.cpp

+ 1 - 1
code/IFCBoolean.cpp

@@ -381,7 +381,7 @@ bool PointInPoly(const IfcVector3& p, const std::vector<IfcVector3>& boundary)
 	IntersectsBoundaryProfile(p, p + IfcVector3(0.6, -0.6, 0.0), boundary, true, intersected_boundary, true);
 	votes += intersected_boundary.size() % 2;
 
-	ai_assert(votes == 3 || votes == 0);
+//	ai_assert(votes == 3 || votes == 0);
 	return votes > 1;
 }
 

+ 1 - 1
code/IFCUtil.cpp

@@ -149,7 +149,7 @@ void TempMesh::RemoveDegenerates()
 	for (std::vector<unsigned int>::iterator it = vertcnt.begin(); it != vertcnt.end(); ++inor) {
 		const unsigned int pcount = *it;
 		
-		if (normals[inor].SquareLength() < 1e-5f) {
+		if (normals[inor].SquareLength() < 1e-10f) {
 			it = vertcnt.erase(it);
 			vit = verts.erase(vit, vit + pcount);