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

0024023: Revamp the OCCT Handle -- general

Missing headers added; includes of headers "Handle_...hxx" removed.

Misuses of macro Handle() and its use in typedefs corrected.

Alias classes Profile and Option are removed from IFSelect; ones defined in MoniTool are used directly.

Removed header files defining only Handle classes (except Image_PixMap_Handle.hxx)

Classes SelectMgr_BaseFrustum and now inherit Standard_Transient and can be manipulated by Handle (not NCollection_Handle)

Fixed reference-type local variable pointing to temporary object

Use of handle in conditional expressions and comparisons to NULL are replaced by call to method IsNull()
This commit is contained in:
abv
2015-06-30 10:25:12 +03:00
parent 35c0599a42
commit c04c30b3ee
311 changed files with 725 additions and 1175 deletions

View File

@@ -78,39 +78,24 @@ typedef gp_Hypr2d Hypr2d;
typedef gp_Parab2d Parab2d;
typedef gp_Pnt2d Pnt2d;
typedef gp_Trsf2d Trsf2d;
typedef Geom2d_Curve Curve;
typedef Geom2d_BSplineCurve BSplineCurve;
typedef Handle(Geom2d_Curve) Handle(Curve);
typedef Handle(Geom2d_Conic) Handle(Conic);
typedef Handle(Geom2d_Circle) Handle(Circle);
typedef Handle(Geom2d_Ellipse) Handle(Ellipse);
typedef Handle(Geom2d_Hyperbola) Handle(Hyperbola);
typedef Handle(Geom2d_Parabola) Handle(Parabola);
typedef Handle(Geom2d_Geometry) Handle(Geometry);
typedef Handle(Geom2d_BezierCurve) Handle(BezierCurve);
typedef Handle(Geom2d_TrimmedCurve) Handle(TrimmedCurve);
typedef Handle(Geom2d_BSplineCurve) Handle(BSplineCurve);
typedef TColStd_Array1OfReal Array1OfReal;
typedef TColStd_Array1OfInteger Array1OfInteger;
typedef TColgp_Array1OfPnt2d Array1OfPnt2d;
//=======================================================================
//function : BSplineCurveBuilder
//purpose :
//=======================================================================
static Handle(BSplineCurve) BSplineCurveBuilder (
static Handle(Geom2d_BSplineCurve) BSplineCurveBuilder (
const Handle(Conic)& TheConic,
const Handle(Geom2d_Conic)& TheConic,
const Convert_ConicToBSplineCurve& Convert
) {
Handle(BSplineCurve) TheCurve;
Handle(Geom2d_BSplineCurve) TheCurve;
Standard_Integer NbPoles = Convert.NbPoles();
Standard_Integer NbKnots = Convert.NbKnots();
Array1OfPnt2d Poles (1, NbPoles);
@@ -140,8 +125,8 @@ const Convert_ConicToBSplineCurve& Convert
Trsf2d T;
T.SetTransformation (TheConic->XAxis(), gp::OX2d());
Handle(BSplineCurve) Cres =
Handle(BSplineCurve)::DownCast(TheCurve->Transformed (T));
Handle(Geom2d_BSplineCurve) Cres =
Handle(Geom2d_BSplineCurve)::DownCast(TheCurve->Transformed (T));
return Cres;
}
@@ -151,9 +136,9 @@ const Convert_ConicToBSplineCurve& Convert
//purpose :
//=======================================================================
Handle(BSplineCurve) Geom2dConvert::SplitBSplineCurve (
Handle(Geom2d_BSplineCurve) Geom2dConvert::SplitBSplineCurve (
const Handle(BSplineCurve)& C,
const Handle(Geom2d_BSplineCurve)& C,
const Standard_Integer FromK1,
const Standard_Integer ToK2,
const Standard_Boolean SameOrientation
@@ -166,7 +151,7 @@ const Standard_Boolean SameOrientation
Standard_Integer LastK = Max (FromK1, ToK2);
if (FirstK < TheFirst || LastK > TheLast) Standard_OutOfRange::Raise();
Handle(BSplineCurve) NewCurve = Handle(BSplineCurve)::DownCast(C->Copy());
Handle(Geom2d_BSplineCurve) NewCurve = Handle(Geom2d_BSplineCurve)::DownCast(C->Copy());
NewCurve->Segment(C->Knot(FirstK),C->Knot(LastK));
@@ -185,9 +170,9 @@ const Standard_Boolean SameOrientation
//purpose :
//=======================================================================
Handle(BSplineCurve) Geom2dConvert::SplitBSplineCurve (
Handle(Geom2d_BSplineCurve) Geom2dConvert::SplitBSplineCurve (
const Handle(BSplineCurve)& C,
const Handle(Geom2d_BSplineCurve)& C,
const Standard_Real FromU1,
const Standard_Real ToU2,
const Standard_Real, // ParametricTolerance,
@@ -218,9 +203,9 @@ const Standard_Boolean SameOrientation
//purpose :
//=======================================================================
Handle(BSplineCurve) Geom2dConvert::CurveToBSplineCurve (
Handle(Geom2d_BSplineCurve) Geom2dConvert::CurveToBSplineCurve (
const Handle(Curve)& C,
const Handle(Geom2d_Curve)& C,
const Convert_ParameterisationType Parameterisation)
{
@@ -228,7 +213,7 @@ const Convert_ParameterisationType Parameterisation)
if (C->IsKind(STANDARD_TYPE(Geom2d_TrimmedCurve))) {
Handle (Curve) Curv;
Handle(TrimmedCurve) Ctrim = Handle(TrimmedCurve)::DownCast(C);
Handle(Geom2d_TrimmedCurve) Ctrim = Handle(Geom2d_TrimmedCurve)::DownCast(C);
Curv = Ctrim->BasisCurve();
Standard_Real U1 = Ctrim->FirstParameter();
Standard_Real U2 = Ctrim->LastParameter();
@@ -259,7 +244,7 @@ const Convert_ParameterisationType Parameterisation)
}
else if (Curv->IsKind(STANDARD_TYPE(Geom2d_Circle))) {
Handle(Circle) TheConic= Handle(Circle)::DownCast(Curv);
Handle(Geom2d_Circle) TheConic= Handle(Geom2d_Circle)::DownCast(Curv);
Circ2d C2d (gp::OX2d(), TheConic->Radius());
if(Parameterisation != Convert_RationalC1) {
Convert_CircleToBSplineCurve Convert (C2d,
@@ -306,7 +291,7 @@ const Convert_ParameterisationType Parameterisation)
}
else if (Curv->IsKind(STANDARD_TYPE(Geom2d_Ellipse))) {
Handle(Ellipse) TheConic = Handle(Ellipse)::DownCast(Curv);
Handle(Geom2d_Ellipse) TheConic = Handle(Geom2d_Ellipse)::DownCast(Curv);
Elips2d E2d (gp::OX2d(),
TheConic->MajorRadius(),
@@ -356,7 +341,7 @@ const Convert_ParameterisationType Parameterisation)
}
else if (Curv->IsKind(STANDARD_TYPE(Geom2d_Hyperbola))) {
Handle(Hyperbola) TheConic = Handle(Hyperbola)::DownCast(Curv);
Handle(Geom2d_Hyperbola) TheConic = Handle(Geom2d_Hyperbola)::DownCast(Curv);
Hypr2d H2d (gp::OX2d(),
TheConic->MajorRadius(), TheConic->MinorRadius());
@@ -365,7 +350,7 @@ const Convert_ParameterisationType Parameterisation)
}
else if (Curv->IsKind(STANDARD_TYPE(Geom2d_Parabola))) {
Handle(Parabola) TheConic = Handle(Parabola)::DownCast(Curv);
Handle(Geom2d_Parabola) TheConic = Handle(Geom2d_Parabola)::DownCast(Curv);
Parab2d Prb2d (gp::OX2d(), TheConic->Focal());
Convert_ParabolaToBSplineCurve Convert (Prb2d, U1, U2);
@@ -374,7 +359,7 @@ const Convert_ParameterisationType Parameterisation)
else if (Curv->IsKind (STANDARD_TYPE(Geom2d_BezierCurve))) {
Handle(BezierCurve) CBez = Handle(BezierCurve)::DownCast(Curv->Copy());
Handle(Geom2d_BezierCurve) CBez = Handle(Geom2d_BezierCurve)::DownCast(Curv->Copy());
CBez->Segment (U1, U2);
Standard_Integer NbPoles = CBez->NbPoles();
@@ -422,7 +407,7 @@ const Convert_ParameterisationType Parameterisation)
else {
if (C->IsKind(STANDARD_TYPE(Geom2d_Ellipse))) {
Handle(Ellipse) TheConic = Handle(Ellipse)::DownCast(C);
Handle(Geom2d_Ellipse) TheConic = Handle(Geom2d_Ellipse)::DownCast(C);
Elips2d E2d (gp::OX2d(),
TheConic->MajorRadius(), TheConic->MinorRadius());
@@ -433,7 +418,7 @@ const Convert_ParameterisationType Parameterisation)
}
else if (C->IsKind(STANDARD_TYPE(Geom2d_Circle))) {
Handle(Circle) TheConic = Handle(Circle)::DownCast(C);
Handle(Geom2d_Circle) TheConic = Handle(Geom2d_Circle)::DownCast(C);
Circ2d C2d (gp::OX2d(), TheConic->Radius());
Convert_CircleToBSplineCurve Convert (C2d,
@@ -443,7 +428,7 @@ const Convert_ParameterisationType Parameterisation)
}
else if (C->IsKind (STANDARD_TYPE(Geom2d_BezierCurve))) {
Handle(BezierCurve) CBez = Handle(BezierCurve)::DownCast(C);
Handle(Geom2d_BezierCurve) CBez = Handle(Geom2d_BezierCurve)::DownCast(C);
Standard_Integer NbPoles = CBez->NbPoles();
Standard_Integer Degree = CBez->Degree();
@@ -1477,7 +1462,7 @@ void Geom2dConvert::C0BSplineToC1BSplineCurve(Handle(Geom2d_BSplineCurve)& BS,
U2=BSKnots(j);
j++;
Handle(Geom2d_BSplineCurve) BSbis=Handle(Geom2d_BSplineCurve::DownCast(BS->Copy()));
Handle(Geom2d_BSplineCurve) BSbis=Handle(Geom2d_BSplineCurve)::DownCast(BS->Copy());
BSbis->Segment(U1,U2);
ArrayOfCurves(i)=BSbis;
}
@@ -1566,7 +1551,7 @@ void Geom2dConvert::C0BSplineToArrayOfC1BSplineCurve(const Handle(Geom2d_BSpline
j++;
U2=BSKnots(j);
j++;
Handle(Geom2d_BSplineCurve) BSbis=Handle(Geom2d_BSplineCurve::DownCast(BS->Copy()));
Handle(Geom2d_BSplineCurve) BSbis=Handle(Geom2d_BSplineCurve)::DownCast(BS->Copy());
BSbis->Segment(U1,U2);
ArrayOfCurves(i)=BSbis;
}