1. BOPAlgo_MakerVolume - Taking into account the possibility of Same Domain faces
while collecting the faces for building the solids;
2. BOPDS_DS - Making the check on coincidence of edges consistent with the intersection
algorithm which also adds the Precision::Confusion() to the intersection tolerance;
3. Test case for the issue.
4. Adjusting test cases (improvements) to their new behavior.
//
Standard_Integer i, aNbShapes;
BOPCol_ListIteratorOfListOfShape aIt;
+ BOPCol_MapOfShape aMFence;
//
aNbShapes = myDS->NbSourceShapes();
for (i = 0; i < aNbShapes; ++i) {
aIt.Initialize(aLFIm);
for (; aIt.More(); aIt.Next()) {
const TopoDS_Shape& aFIm = aIt.Value();
- AddFace(aFIm, myFaces);
+ if (aMFence.Add(aFIm)) {
+ AddFace(aFIm, myFaces);
+ }
}
}
else {
aD=aPPC.LowerDistance();
//
aTol=BRep_Tool::Tolerance(aE1);
- aTol=aTol+BRep_Tool::Tolerance(aE2);
+ aTol=aTol+BRep_Tool::Tolerance(aE2) + Precision::Confusion();
if (aD<aTol) {
aT2x=aPPC.LowerDistanceParameter();
if (aT2x>aT21 && aT2x<aT22) {
# test script on make volume operation
# plane unstable
-puts "TODO OCC26020 ALL: Error: bopcheck failed"
-puts "TODO ?OCC26020 ALL: Faulty shapes in variables faulty_1"
-puts "TODO OCC26020 ALL: Error : The area of result shape is"
-
# planar face
plane pln_f1 0 -870 -1.3877787807814457e-014 0 1 1.1102230246251565e-016
erase pln_f1
# make volume operation
mkvolume result f1 f2 f3 f4 f5 f6
-checkprops result -s 1183220.
+checkprops result -s 1.00062e+006
# test script on make volume operation
# plane unstable
-puts "TODO OCC26020 ALL: Error: bopcheck failed"
-puts "TODO OCC26020 ALL: Faulty shapes in variables faulty_1 to"
-
# planar face
plane pln_f1 -1863.18155559 1250 -1538.57262704 1.110223024625157e-016 1 1.1102230246251563e-016
erase pln_f1
-puts "TODO OCC26020 ALL: Faulty shapes in variables faulty_1 to faulty_"
-puts "TODO OCC26020 ALL: Error: bopcheck failed"
-
# test script on make volume operation
# plane
# test script on make volume operation
# plane
-puts "TODO ?OCC26020 ALL: Faulty shapes in variables faulty_1 to faulty_"
-puts "TODO OCC26020 ALL: Error: bopcheck failed"
-
# planar face
plane pln_f1 0 840 1.2212453270876722e-014 0 -1 -1.1102230246251565e-016
erase pln_f1
--- /dev/null
+puts "============"
+puts "OCC27222"
+puts "============"
+puts ""
+######################################################
+# Empty result of making volume operation
+######################################################
+
+restore [locate_data_file bug27222.brep] cf
+mkvolume result cf -c
+
+checkprops result -s 838000 -v 3.5068e+007
+checknbshapes result -solid 1
\ No newline at end of file