1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-05-26 11:05:31 +03:00

Fix for crash when selected shape without surface

This commit is contained in:
dbv 2016-10-13 14:20:51 +03:00 committed by aba
parent e6853e7836
commit 2a1a7f5f5d
2 changed files with 19 additions and 9 deletions

View File

@ -72,18 +72,19 @@ void BRepAdaptor_Surface::Initialize(const TopoDS_Face& F,
{
myFace = F;
TopLoc_Location L;
const Handle(Geom_Surface)& aSurface = BRep_Tool::Surface(F, L);
if (aSurface.IsNull())
const Handle (Geom_Surface)& aSurface = BRep_Tool::Surface (F, L);
if (aSurface.IsNull ())
return;
if (Restriction) {
Standard_Real umin,umax,vmin,vmax;
BRepTools::UVBounds(F,umin,umax,vmin,vmax);
mySurf.Load(aSurface,umin,umax,vmin,vmax);
if (Restriction)
{
Standard_Real umin, umax, vmin, vmax;
BRepTools::UVBounds (F, umin, umax, vmin, vmax);
mySurf.Load (aSurface, umin, umax, vmin, vmax);
}
else
mySurf.Load(aSurface);
myTrsf = L.Transformation();
else
mySurf.Load (aSurface);
myTrsf = L.Transformation ();
}
@ -425,6 +426,10 @@ Handle(Adaptor3d_HCurve) BRepAdaptor_Surface::BasisCurve() const
Handle(Adaptor3d_HSurface) BRepAdaptor_Surface::BasisSurface() const
{
if(mySurf.Surface().IsNull())
{
return Handle(Adaptor3d_HSurface)();
}
Handle(GeomAdaptor_HSurface) HS = new GeomAdaptor_HSurface();
HS->ChangeSurface().Load
(Handle(Geom_Surface)::DownCast(mySurf.Surface()->Transformed(myTrsf)));

View File

@ -803,6 +803,11 @@ void Extrema_GenExtPS::Perform(const gp_Pnt& P)
myDone = Standard_False;
myF.SetPoint(P);
if (myS->BasisSurface ().IsNull ())
{
return;
}
if(myAlgo == Extrema_ExtAlgo_Grad)
{
BuildGrid(P);