mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-06-05 11:24:17 +03:00
Fix for crash when selected shape without surface
This commit is contained in:
parent
e6853e7836
commit
2a1a7f5f5d
@ -72,18 +72,19 @@ void BRepAdaptor_Surface::Initialize(const TopoDS_Face& F,
|
|||||||
{
|
{
|
||||||
myFace = F;
|
myFace = F;
|
||||||
TopLoc_Location L;
|
TopLoc_Location L;
|
||||||
const Handle(Geom_Surface)& aSurface = BRep_Tool::Surface(F, L);
|
const Handle (Geom_Surface)& aSurface = BRep_Tool::Surface (F, L);
|
||||||
if (aSurface.IsNull())
|
if (aSurface.IsNull ())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (Restriction) {
|
if (Restriction)
|
||||||
Standard_Real umin,umax,vmin,vmax;
|
{
|
||||||
BRepTools::UVBounds(F,umin,umax,vmin,vmax);
|
Standard_Real umin, umax, vmin, vmax;
|
||||||
mySurf.Load(aSurface,umin,umax,vmin,vmax);
|
BRepTools::UVBounds (F, umin, umax, vmin, vmax);
|
||||||
|
mySurf.Load (aSurface, umin, umax, vmin, vmax);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
mySurf.Load(aSurface);
|
mySurf.Load (aSurface);
|
||||||
myTrsf = L.Transformation();
|
myTrsf = L.Transformation ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -425,6 +426,10 @@ Handle(Adaptor3d_HCurve) BRepAdaptor_Surface::BasisCurve() const
|
|||||||
|
|
||||||
Handle(Adaptor3d_HSurface) BRepAdaptor_Surface::BasisSurface() const
|
Handle(Adaptor3d_HSurface) BRepAdaptor_Surface::BasisSurface() const
|
||||||
{
|
{
|
||||||
|
if(mySurf.Surface().IsNull())
|
||||||
|
{
|
||||||
|
return Handle(Adaptor3d_HSurface)();
|
||||||
|
}
|
||||||
Handle(GeomAdaptor_HSurface) HS = new GeomAdaptor_HSurface();
|
Handle(GeomAdaptor_HSurface) HS = new GeomAdaptor_HSurface();
|
||||||
HS->ChangeSurface().Load
|
HS->ChangeSurface().Load
|
||||||
(Handle(Geom_Surface)::DownCast(mySurf.Surface()->Transformed(myTrsf)));
|
(Handle(Geom_Surface)::DownCast(mySurf.Surface()->Transformed(myTrsf)));
|
||||||
|
@ -803,6 +803,11 @@ void Extrema_GenExtPS::Perform(const gp_Pnt& P)
|
|||||||
myDone = Standard_False;
|
myDone = Standard_False;
|
||||||
myF.SetPoint(P);
|
myF.SetPoint(P);
|
||||||
|
|
||||||
|
if (myS->BasisSurface ().IsNull ())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(myAlgo == Extrema_ExtAlgo_Grad)
|
if(myAlgo == Extrema_ExtAlgo_Grad)
|
||||||
{
|
{
|
||||||
BuildGrid(P);
|
BuildGrid(P);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user