aBuilder.UpdateFace(aFace, aNullTriangulation);
}
+
+ // Iterate over all edges seeking for 3d polygons
+ Handle (Poly_Polygon3D) aNullPoly3d;
+ TopExp_Explorer aEdgeIt (theShape, TopAbs_EDGE);
+ for (; aEdgeIt.More (); aEdgeIt.Next ())
+ {
+ const TopoDS_Edge& aEdge = TopoDS::Edge (aEdgeIt.Current ());
+
+ TopLoc_Location aLoc;
+ Handle (Poly_Polygon3D) aPoly3d = BRep_Tool::Polygon3D (aEdge, aLoc);
+ if (aPoly3d.IsNull ())
+ continue;
+
+ aBuilder.UpdateEdge (aEdge, aNullPoly3d);
+ }
}
//=======================================================================
--- /dev/null
+puts "# ============================================================="
+puts "# 0027356: BRepTools::Clean() does not clean free edges from Poly_Polygon3D"
+puts "# ============================================================="
+puts ""
+
+puts "Create simple straight edge and tessellate it"
+vertex v1 0 0 0
+vertex v2 1 0 0
+edge e v1 v2
+incmesh e 0.01
+
+puts "Clean triangulation and check that there are no Polygon3Ds remained"
+tclean e
+if { ! [regexp {Dump of ([0-9]+) Polygon3Ds} [dump e] res count] } {
+ puts "Error: Cannot find number of Polygon3Ds in output of trinfo command"
+} elseif { $count != 0 } {
+ puts "Error: $count Polygon3Ds are found (zero expected)!"
+}
\ No newline at end of file