mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-19 13:40:49 +03:00
0024023: Revamp the OCCT Handle - gcc and clang
Adaptations for compiling with GCC 4.7 and 4.8: - Construction semantics is used for Handle objects being initialized by const Handle objects of derived type, to avoid overload resolution error in GCC 4.7. - Missing includes added. - Fixed bugs related to misuse of direct casts of handle. - Eliminate CLang warnings on uninitialized and unused variables, functions, and expressions
This commit is contained in:
@@ -621,9 +621,9 @@ void BRepOffset_Offset::Init(const TopoDS_Face& Face,
|
||||
Standard_Real length = Pfirst.Distance(Pint1);
|
||||
if (OffsetOutside)
|
||||
{
|
||||
TheSurf = new Geom_RectangularTrimmedSurface(TheSurf, uf1, uf2, vf1, vf2);
|
||||
GeomLib::ExtendSurfByLength(Handle(Geom_BoundedSurface)::DownCast (TheSurf), length, 1,
|
||||
Standard_True, Standard_False);
|
||||
Handle(Geom_BoundedSurface) aSurf = new Geom_RectangularTrimmedSurface(TheSurf, uf1, uf2, vf1, vf2);
|
||||
GeomLib::ExtendSurfByLength (aSurf, length, 1, Standard_True, Standard_False);
|
||||
TheSurf = aSurf;
|
||||
Standard_Real u1, u2, v1, v2;
|
||||
TheSurf->Bounds( u1, u2, v1, v2 );
|
||||
MinApex = TheSurf->Value( u1, vf1 );
|
||||
@@ -660,9 +660,9 @@ void BRepOffset_Offset::Init(const TopoDS_Face& Face,
|
||||
Standard_Real length = Pfirst.Distance(Pint1);
|
||||
if (OffsetOutside)
|
||||
{
|
||||
TheSurf = new Geom_RectangularTrimmedSurface(TheSurf, uf1, uf2, vf1, vf2);
|
||||
GeomLib::ExtendSurfByLength(Handle(Geom_BoundedSurface)::DownCast (TheSurf), length, 1,
|
||||
Standard_True, Standard_True);
|
||||
Handle(Geom_BoundedSurface) aSurf = new Geom_RectangularTrimmedSurface(TheSurf, uf1, uf2, vf1, vf2);
|
||||
GeomLib::ExtendSurfByLength(aSurf, length, 1, Standard_True, Standard_True);
|
||||
TheSurf = aSurf;
|
||||
Standard_Real u1, u2, v1, v2;
|
||||
TheSurf->Bounds( u1, u2, v1, v2 );
|
||||
MaxApex = TheSurf->Value( u2, vf1 );
|
||||
@@ -699,9 +699,9 @@ void BRepOffset_Offset::Init(const TopoDS_Face& Face,
|
||||
Standard_Real length = Pfirst.Distance(Pint1);
|
||||
if (OffsetOutside)
|
||||
{
|
||||
TheSurf = new Geom_RectangularTrimmedSurface(TheSurf, uf1, uf2, vf1, vf2);
|
||||
GeomLib::ExtendSurfByLength(Handle(Geom_BoundedSurface)::DownCast (TheSurf), length, 1,
|
||||
Standard_False, Standard_False);
|
||||
Handle(Geom_BoundedSurface) aSurf = new Geom_RectangularTrimmedSurface(TheSurf, uf1, uf2, vf1, vf2);
|
||||
GeomLib::ExtendSurfByLength(aSurf, length, 1, Standard_False, Standard_False);
|
||||
TheSurf = aSurf;
|
||||
Standard_Real u1, u2, v1, v2;
|
||||
TheSurf->Bounds( u1, u2, v1, v2 );
|
||||
MinApex = TheSurf->Value( uf1, v1 );
|
||||
@@ -740,9 +740,9 @@ void BRepOffset_Offset::Init(const TopoDS_Face& Face,
|
||||
Standard_Real length = Pfirst.Distance(Pint1);
|
||||
if (OffsetOutside)
|
||||
{
|
||||
TheSurf = new Geom_RectangularTrimmedSurface(TheSurf, uf1, uf2, vf1, vf2);
|
||||
GeomLib::ExtendSurfByLength(Handle(Geom_BoundedSurface)::DownCast (TheSurf), length, 1,
|
||||
Standard_False, Standard_True);
|
||||
Handle(Geom_BoundedSurface) aSurf = new Geom_RectangularTrimmedSurface(TheSurf, uf1, uf2, vf1, vf2);
|
||||
GeomLib::ExtendSurfByLength(aSurf, length, 1, Standard_False, Standard_True);
|
||||
TheSurf = aSurf;
|
||||
Standard_Real u1, u2, v1, v2;
|
||||
TheSurf->Bounds( u1, u2, v1, v2 );
|
||||
MaxApex = TheSurf->Value( uf1, v2 );
|
||||
|
@@ -2900,21 +2900,22 @@ static Standard_Boolean EnlargeGeometry(Handle(Geom_Surface)& S,
|
||||
IsV2degen = Standard_True;
|
||||
}
|
||||
}
|
||||
S = new Geom_RectangularTrimmedSurface( S, u1, u2, v1, v2 );
|
||||
Handle(Geom_BoundedSurface) aSurf = new Geom_RectangularTrimmedSurface( S, u1, u2, v1, v2 );
|
||||
if (enlargeU)
|
||||
{
|
||||
if (enlargeUfirst)
|
||||
GeomLib::ExtendSurfByLength( Handle(Geom_BoundedSurface)::DownCast (S), du, 1, Standard_True, Standard_False );
|
||||
GeomLib::ExtendSurfByLength (aSurf, du, 1, Standard_True, Standard_False);
|
||||
if (enlargeUlast)
|
||||
GeomLib::ExtendSurfByLength( Handle(Geom_BoundedSurface)::DownCast (S), du, 1, Standard_True, Standard_True );
|
||||
GeomLib::ExtendSurfByLength (aSurf, du, 1, Standard_True, Standard_True);
|
||||
}
|
||||
if (enlargeV)
|
||||
{
|
||||
if (enlargeVfirst)
|
||||
GeomLib::ExtendSurfByLength( Handle(Geom_BoundedSurface)::DownCast (S), dv, 1, Standard_False, Standard_False );
|
||||
GeomLib::ExtendSurfByLength (aSurf, dv, 1, Standard_False, Standard_False);
|
||||
if (enlargeVlast)
|
||||
GeomLib::ExtendSurfByLength( Handle(Geom_BoundedSurface)::DownCast (S), dv, 1, Standard_False, Standard_True );
|
||||
GeomLib::ExtendSurfByLength (aSurf, dv, 1, Standard_False, Standard_True);
|
||||
}
|
||||
S = aSurf;
|
||||
S->Bounds( U1, U2, V1, V2 );
|
||||
SurfaceChange = Standard_True;
|
||||
}
|
||||
@@ -2967,20 +2968,22 @@ static Standard_Boolean EnlargeGeometry(Handle(Geom_Surface)& S,
|
||||
}
|
||||
}
|
||||
|
||||
Handle(Geom_BoundedSurface) aSurf = Handle(Geom_BoundedSurface)::DownCast (S);
|
||||
if (enlargeU)
|
||||
{
|
||||
if (enlargeUfirst && uf1-u1 < duf)
|
||||
GeomLib::ExtendSurfByLength( Handle(Geom_BoundedSurface)::DownCast (S), du, 1, Standard_True, Standard_False );
|
||||
GeomLib::ExtendSurfByLength (aSurf, du, 1, Standard_True, Standard_False);
|
||||
if (enlargeUlast && u2-uf2 < duf)
|
||||
GeomLib::ExtendSurfByLength( Handle(Geom_BoundedSurface)::DownCast (S), du, 1, Standard_True, Standard_True );
|
||||
GeomLib::ExtendSurfByLength (aSurf, du, 1, Standard_True, Standard_True);
|
||||
}
|
||||
if (enlargeV)
|
||||
{
|
||||
if (enlargeVfirst && vf1-v1 < dvf)
|
||||
GeomLib::ExtendSurfByLength( Handle(Geom_BoundedSurface)::DownCast (S), dv, 1, Standard_False, Standard_False );
|
||||
GeomLib::ExtendSurfByLength (aSurf, dv, 1, Standard_False, Standard_False);
|
||||
if (enlargeVlast && v2-vf2 < dvf)
|
||||
GeomLib::ExtendSurfByLength( Handle(Geom_BoundedSurface)::DownCast (S), dv, 1, Standard_False, Standard_True );
|
||||
GeomLib::ExtendSurfByLength (aSurf, dv, 1, Standard_False, Standard_True);
|
||||
}
|
||||
S = aSurf;
|
||||
|
||||
S->Bounds( U1, U2, V1, V2 );
|
||||
SurfaceChange = Standard_True;
|
||||
|
Reference in New Issue
Block a user