#include <BOPTools_Set.hxx>
//
#include <BOPAlgo_BuilderSolid.hxx>
+#include <NCollection_Array1.hxx>
static
aNbFP=aBBTree.Select(aSelector);
//
const BOPCol_ListOfInteger& aLIFP=aSelector.Indices();
+ //sort indices
+ NCollection_Array1<Standard_Integer> aIVec(1, aNbFP);
+ aItLI.Initialize(aLIFP);
+ for (k = 1; aItLI.More(); aItLI.Next(), ++k) {
+ nFP=aItLI.Value();
+ aIVec(k) = nFP;
+ }
+ std::sort(aIVec.begin(), aIVec.end());
//
// 2.5. Collect faces that are IN aSolid [ aLFIN ]
BOPCol_ListOfShape aLFP(aAlr1);
//
BOPTools::MapShapes(aSD, TopAbs_EDGE, aME);
//
- aItLI.Initialize(aLIFP);
- for (; aItLI.More(); aItLI.Next()) {
- nFP=aItLI.Value();
+ for (k = 1; k <= aNbFP; ++k) {
+ nFP = aIVec(k);
const BOPAlgo_ShapeBox& aSBF=aDMISB.Find(nFP);
const TopoDS_Face& aFP=(*(TopoDS_Face*)&aSBF.Shape());
if (aMF.Contains(aFP)) {
--- /dev/null
+puts "TODO OCC25319 ALL: Faulty shapes in variables faulty_1 to faulty_"
+
+puts "================"
+puts "OCC25319"
+puts "================"
+puts ""
+########################################################################
+# Bop Common produces strange results with same shapes.
+########################################################################
+
+restore [locate_data_file bug25319_S1.brep] b1
+restore [locate_data_file bug25319_S2.brep] b2
+
+bcommon result b1 b2
+
+set square 1690.81
+
+set nb_v_good 20
+set nb_e_good 31
+set nb_w_good 13
+set nb_f_good 13
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 80
+
+set 2dviewer 1
--- /dev/null
+puts "TODO OCC25319 ALL: Faulty shapes in variables faulty_1 to faulty_"
+
+puts "================"
+puts "OCC25319"
+puts "================"
+puts ""
+########################################################################
+# Bop Common produces strange results with same shapes.
+########################################################################
+
+restore [locate_data_file bug25319_S1.brep] b1
+restore [locate_data_file bug25319_S2.brep] b2
+
+explode b1 so; copy b1_1 b1
+explode b2 so; copy b2_3 b2
+
+bcommon result b1 b2
+
+set square 1690.81
+
+set nb_v_good 20
+set nb_e_good 31
+set nb_w_good 13
+set nb_f_good 13
+set nb_sh_good 1
+set nb_sol_good 1
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 80
+
+set 2dviewer 1