GeomAbs_CurveType aType1 = aBAC1.GetType();
GeomAbs_CurveType aType2 = aBAC2.GetType();
//
- bAnalytical = (((aType1 == GeomAbs_Line) &&
- (aType2 == GeomAbs_Line ||
- aType2 == GeomAbs_Circle)) ||
- ((aType2 == GeomAbs_Line) &&
- (aType1 == GeomAbs_Line ||
- aType1 == GeomAbs_Circle)));
+ bAnalytical = (aType1 == GeomAbs_Line && aType2 == GeomAbs_Circle) ||
+ (aType1 == GeomAbs_Circle && aType2 == GeomAbs_Line);
}
//
for (i=1; i<=aNbCPrts; ++i) {
Standard_Real aTolVnew = BRep_Tool::Tolerance(aVnew);
if (bAnalytical) {
- // increase tolerance for Line/Line intersection, but do not update
+ // increase tolerance for Line/Circle intersection, but do not update
// the vertex till its intersection with some other shape
Standard_Real aTolMin = (BRepAdaptor_Curve(aE1).GetType() == GeomAbs_Line) ?
(aCR1.Last() - aCR1.First()) / 2. : (aCR2.Last() - aCR2.First()) / 2.;
--- /dev/null
+puts "==================================================="
+puts "0033648: Modeling Algorithms - Bad partition result"
+puts "==================================================="
+puts ""
+
+pload MODELING
+restore [locate_data_file bug33648_1.brep] s1
+restore [locate_data_file bug33648_2.brep] s2
+
+baddobjects s1 s2
+bfillds
+bbuild result
+
+checkprops result -s 87.2813
+checknbshapes result -vertex 58 -edge 97 -wire 44 -face 44 -shell 4 -solid 4 -compsolid 0 -compound 2 -shape 253
+
+set expected_MaxTolerance 0.05
+regexp {Tolerance +MAX=([-0-9.+eE]+)} [tolerance result] full MaxTolerance
+if { $MaxTolerance > $expected_MaxTolerance } {
+ puts "Error : too big tolerance for the shape (should be less than $expected_MaxTolerance, now $MaxTolerance)"
+}
+
+vinit
+vdisplay result
+vfit
+checkview -screenshot -3d -path ${imagedir}/${test_image}.png