Protect the static function ConicDefinition from calling sqrt with negative argument.
term2 = -gdet/(cprim*pdet);
if (IsEllip) {
+ if (term1 <= eps || term2 <= eps)
+ return Standard_False;
Xax = cost;
Yax = sint;
Rmin = sqrt ( term1);
}
}
else if (term1 <= eps){
+ if (-term1 <= eps || term2 <= eps)
+ return Standard_False;
Xax = -sint;
Yax = cost;
Rmin = sqrt (-term1);
Rmax = sqrt (term2);
}
else {
+ if (term1 <= eps || -term2 <= eps)
+ return Standard_False;
Xax = cost;
Yax = sint;
Rmin = sqrt (-term2);
--- /dev/null
+puts "==========================================================="
+puts "0033304: Modeling Data - Floating point signal when converting a B-spline curve to analytical form"
+puts "==========================================================="
+
+puts "REQUIRED ALL: Conversion failed"
+
+binrestore [locate_data_file bug33304_bspl_curv.bbrep] a
+mkcurve c a
+tocanon r c