1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0023203: STEP import produces wrong surface of revolution on ellipse

Checking of XAsis for ellipses was added.
Adding test case for this fix
This commit is contained in:
bugmaster
2012-12-21 16:01:04 +04:00
parent f5a6ee3c32
commit 41b3001c72
2 changed files with 63 additions and 1 deletions

View File

@@ -57,7 +57,9 @@ Standard_Boolean StepToGeom_MakeSurfaceOfRevolution::Convert (const Handle(StepG
if (rl.Distance(pc) < Precision::Confusion()) { //pc lies on A2
const gp_Dir dirline = A.Direction();
const gp_Dir norm = conic->Axis().Direction();
if( dirline.IsNormal(norm,Precision::Angular()) ) { //A2 lies on plane of circle
const gp_Dir xAxis = conic->XAxis().Direction();
//checking A2 lies on plane of circle
if( dirline.IsNormal(norm,Precision::Angular()) && (dirline.IsParallel(xAxis,Precision::Angular()) || C->IsKind(STANDARD_TYPE(Geom_Circle)))) {
//change parametrization for trimming
gp_Ax2 axnew(pc,norm,dirline.Reversed());
conic->SetPosition(axnew);