case GeomAbs_SurfaceOfRevolution:
{
if (myIso == GeomAbs_IsoV) {
- gp_Ax1 Ax1 = mySurface->AxeOfRevolution();
- gp_Vec DX(Ax1.Location(), Value(0));
- if(DX.IsParallel(Ax1.Direction(),Precision::Angular())) {
- return gp_Circ(gp_Ax2(Value(0), Ax1.Direction()),0);
+ const gp_Pnt aVal0 = Value (0.0);
+ gp_Ax1 Ax1 = mySurface->AxeOfRevolution();
+ if (gp_Lin (Ax1).Contains (aVal0, Precision::Confusion())) {
+ return gp_Circ(gp_Ax2(aVal0, Ax1.Direction()),0);
}
else {
+ gp_Vec DX(Ax1.Location(), aVal0);
axes = gp_Ax3(Ax1.Location(), Ax1.Direction(), DX);
- computeHR(axes,Value(0),h,radius);
+ computeHR(axes,aVal0,h,radius);
gp_Vec VT = axes.Direction();
axes.Translate(VT * h);
return gp_Circ(axes.Ax2(),radius);
--- /dev/null
+puts "============"
+puts "CR26359"
+puts "============"
+puts ""
+###################################################################################
+# Revolution shape of Parabola Curve has no triangles
+###################################################################################
+
+vinit View1
+vclear
+vaxo
+vsetdispmode 1
+
+restore [locate_data_file bug26359_parabola.brep] p
+
+vdisplay p
+vfit
+
+set trinfo_s [trinfo p]
+regexp {([0-9]+) triangles} ${trinfo_s} str nbtri_s
+regexp {([0-9]+) nodes} ${trinfo_s} str nbnod_s
+regexp {deflection ([0-9.+e-]+)} ${trinfo_s} str defl_s
+
+if { ${nbtri_s} == 0 } {
+ puts "Error: shape contains 0 triangles"
+}
+
+if { ${nbnod_s} == 0 } {
+ puts "Error: shape contains 0 nodes"
+}
+
+if { ${defl_s} == 0 } {
+ puts "Error: deflection is 0"
+}
+
+vdump ${imagedir}/${casename}.png