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

0026026: XtControl_Reader hangs when processing specific data

Small fix for a specific case (was missing).
This commit is contained in:
anv
2016-12-08 16:24:34 +03:00
committed by apn
parent 851f870162
commit a8b5267725
9 changed files with 77 additions and 27 deletions

View File

@@ -535,9 +535,13 @@ void AppBlend_AppSurf::InternalPerform(const Handle(TheLine)& Lin,
for (k=1; k<=NbVPoles; k++) {
// pour les courbes rationnelles il faut maintenant diviser
// les poles par leurs poids respectifs
tabPoles->ChangeValue(j,k).
SetXYZ(newtabP(k).XYZ()/newtabP2d->Value(k).X());
tabWeights->SetValue(j,k,newtabP2d->Value(k).X());
tabPoles->ChangeValue(j,k).SetXYZ(newtabP(k).XYZ()/newtabP2d->Value(k).X());
Standard_Real aWeight = newtabP2d->Value(k).X();
if (aWeight < gp::Resolution()) {
done = Standard_False;
return;
}
tabWeights->SetValue(j,k,aWeight);
}
}
@@ -870,9 +874,13 @@ void AppBlend_AppSurf::Perform(const Handle(TheLine)& Lin,
for (k=1; k<=NbVPoles; k++) {
// pour les courbes rationnelles il faut maintenant diviser
// les poles par leurs poids respectifs
tabPoles->ChangeValue(j,k).
SetXYZ(newtabP(k).XYZ()/newtabP2d->Value(k).X());
tabWeights->SetValue(j,k,newtabP2d->Value(k).X());
tabPoles->ChangeValue(j,k).SetXYZ(newtabP(k).XYZ()/newtabP2d->Value(k).X());
Standard_Real aWeight = newtabP2d->Value(k).X();
if (aWeight < gp::Resolution()) {
done = Standard_False;
return;
}
tabWeights->SetValue(j,k,aWeight);
}
}