mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +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:
@@ -27,14 +27,6 @@
|
||||
#include <TColgp_HArray1OfVec.hxx>
|
||||
#include <TColgp_HArray1OfVec2d.hxx>
|
||||
|
||||
#define tabTang Handle(TColgp_HArray1OfVec)::DownCast (ttabTang)
|
||||
#define tabCurv Handle(TColgp_HArray1OfVec)::DownCast (ttabCurv)
|
||||
#define tabTang2d Handle(TColgp_HArray1OfVec2d)::DownCast (ttabTang2d)
|
||||
#define tabCurv2d Handle(TColgp_HArray1OfVec2d)::DownCast (ttabCurv2d)
|
||||
|
||||
|
||||
|
||||
|
||||
AppDef_MultiPointConstraint::AppDef_MultiPointConstraint() {}
|
||||
|
||||
|
||||
@@ -84,14 +76,9 @@ AppDef_MultiPointConstraint::AppDef_MultiPointConstraint
|
||||
(tabCur2d.Length() != tabP2d.Length())) {
|
||||
Standard_ConstructionError::Raise();
|
||||
}
|
||||
Handle(TColgp_HArray1OfVec) T3d =
|
||||
new TColgp_HArray1OfVec(1, tabVec.Length());
|
||||
ttabTang = T3d;
|
||||
|
||||
|
||||
Handle(TColgp_HArray1OfVec2d) T2d =
|
||||
new TColgp_HArray1OfVec2d(1, tabVec2d.Length());
|
||||
ttabTang2d = T2d;
|
||||
tabTang = new TColgp_HArray1OfVec(1, tabVec.Length());
|
||||
tabTang2d = new TColgp_HArray1OfVec2d(1, tabVec2d.Length());
|
||||
|
||||
Standard_Integer i, Lower = tabVec.Lower();
|
||||
for (i = 1; i <= tabVec.Length(); i++) {
|
||||
@@ -102,13 +89,8 @@ AppDef_MultiPointConstraint::AppDef_MultiPointConstraint
|
||||
tabTang2d->SetValue(i, tabVec2d.Value(Lower+i-1));
|
||||
}
|
||||
|
||||
Handle(TColgp_HArray1OfVec) C3d =
|
||||
new TColgp_HArray1OfVec(1, tabCur.Length());
|
||||
ttabCurv = C3d;
|
||||
|
||||
Handle(TColgp_HArray1OfVec2d) C2d =
|
||||
new TColgp_HArray1OfVec2d(1, tabCur2d.Length());
|
||||
ttabCurv2d = C2d;
|
||||
tabCurv = new TColgp_HArray1OfVec(1, tabCur.Length());
|
||||
tabCurv2d = new TColgp_HArray1OfVec2d(1, tabCur2d.Length());
|
||||
|
||||
Lower = tabCur.Lower();
|
||||
for (i = 1; i <= tabVec.Length(); i++) {
|
||||
@@ -121,27 +103,21 @@ AppDef_MultiPointConstraint::AppDef_MultiPointConstraint
|
||||
|
||||
}
|
||||
|
||||
|
||||
AppDef_MultiPointConstraint::AppDef_MultiPointConstraint
|
||||
(const TColgp_Array1OfPnt& tabP,
|
||||
const TColgp_Array1OfPnt2d& tabP2d,
|
||||
const TColgp_Array1OfVec& tabVec,
|
||||
const TColgp_Array1OfVec2d& tabVec2d):
|
||||
AppParCurves_MultiPoint(tabP, tabP2d) {
|
||||
AppParCurves_MultiPoint(tabP, tabP2d)
|
||||
{
|
||||
|
||||
if ((tabP.Length() != tabVec.Length()) ||
|
||||
(tabP2d.Length() != tabVec2d.Length())) {
|
||||
Standard_ConstructionError::Raise();
|
||||
}
|
||||
|
||||
|
||||
Handle(TColgp_HArray1OfVec) T3d =
|
||||
new TColgp_HArray1OfVec(1, tabVec.Length());
|
||||
ttabTang = T3d;
|
||||
|
||||
Handle(TColgp_HArray1OfVec2d) T2d =
|
||||
new TColgp_HArray1OfVec2d(1, tabVec2d.Length());
|
||||
ttabTang2d = T2d;
|
||||
tabTang = new TColgp_HArray1OfVec(1, tabVec.Length());
|
||||
tabTang2d = new TColgp_HArray1OfVec2d(1, tabVec2d.Length());
|
||||
|
||||
Standard_Integer i, Lower = tabVec.Lower();
|
||||
for (i = 1; i <= tabVec.Length(); i++) {
|
||||
@@ -163,9 +139,8 @@ AppDef_MultiPointConstraint::AppDef_MultiPointConstraint (
|
||||
if (tabP.Length() != tabVec.Length()) {
|
||||
Standard_ConstructionError::Raise();
|
||||
}
|
||||
Handle(TColgp_HArray1OfVec) T3d =
|
||||
new TColgp_HArray1OfVec(1, tabVec.Length());
|
||||
ttabTang = T3d;
|
||||
|
||||
tabTang = new TColgp_HArray1OfVec(1, tabVec.Length());
|
||||
|
||||
Standard_Integer i, Lower = tabVec.Lower();
|
||||
for (i = 1; i <= tabVec.Length(); i++) {
|
||||
@@ -184,19 +159,14 @@ AppDef_MultiPointConstraint::AppDef_MultiPointConstraint
|
||||
(tabP.Length() != tabCur.Length())) {
|
||||
Standard_ConstructionError::Raise();
|
||||
}
|
||||
Handle(TColgp_HArray1OfVec) T3d =
|
||||
new TColgp_HArray1OfVec(1, tabVec.Length());
|
||||
ttabTang = T3d;
|
||||
|
||||
tabTang = new TColgp_HArray1OfVec(1, tabVec.Length());
|
||||
Standard_Integer i, Lower = tabVec.Lower();
|
||||
for (i = 1; i <= tabVec.Length(); i++) {
|
||||
tabTang->SetValue(i, tabVec.Value(Lower+i-1));
|
||||
}
|
||||
|
||||
Handle(TColgp_HArray1OfVec) C3d =
|
||||
new TColgp_HArray1OfVec(1, tabCur.Length());
|
||||
ttabCurv = C3d;
|
||||
|
||||
tabCurv = new TColgp_HArray1OfVec(1, tabCur.Length());
|
||||
Lower = tabCur.Lower();
|
||||
for (i = 1; i <= tabCur.Length(); i++) {
|
||||
tabCurv->SetValue(i, tabCur.Value(Lower+i-1));
|
||||
@@ -215,10 +185,7 @@ AppDef_MultiPointConstraint::AppDef_MultiPointConstraint
|
||||
Standard_ConstructionError::Raise();
|
||||
}
|
||||
|
||||
Handle(TColgp_HArray1OfVec2d) T2d =
|
||||
new TColgp_HArray1OfVec2d(1, tabVec2d.Length());
|
||||
ttabTang2d = T2d;
|
||||
|
||||
tabTang2d = new TColgp_HArray1OfVec2d(1, tabVec2d.Length());
|
||||
Standard_Integer i, Lower = tabVec2d.Lower();
|
||||
for (i = 1; i <= tabVec2d.Length(); i++) {
|
||||
tabTang2d->SetValue(i, tabVec2d.Value(Lower+i-1));
|
||||
@@ -238,19 +205,14 @@ AppDef_MultiPointConstraint::AppDef_MultiPointConstraint
|
||||
(tabCur2d.Length() != tabP2d.Length())) {
|
||||
Standard_ConstructionError::Raise();
|
||||
}
|
||||
Handle(TColgp_HArray1OfVec2d) T2d =
|
||||
new TColgp_HArray1OfVec2d(1, tabVec2d.Length());
|
||||
ttabTang2d = T2d;
|
||||
|
||||
|
||||
tabTang2d = new TColgp_HArray1OfVec2d(1, tabVec2d.Length());
|
||||
Standard_Integer i, Lower = tabVec2d.Lower();
|
||||
for (i = 1; i <= tabVec2d.Length(); i++) {
|
||||
tabTang2d->SetValue(i, tabVec2d.Value(Lower+i-1));
|
||||
}
|
||||
|
||||
Handle(TColgp_HArray1OfVec2d) C2d =
|
||||
new TColgp_HArray1OfVec2d(1, tabCur2d.Length());
|
||||
ttabCurv2d = C2d;
|
||||
|
||||
tabCurv2d = new TColgp_HArray1OfVec2d(1, tabCur2d.Length());
|
||||
Lower = tabCur2d.Lower();
|
||||
for (i = 1; i <= tabCur2d.Length(); i++) {
|
||||
tabCurv2d->SetValue(i, tabCur2d.Value(Lower+i-1));
|
||||
|
@@ -22,21 +22,17 @@
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <AppParCurves_MultiPoint.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <TColgp_Array1OfPnt.hxx>
|
||||
#include <TColgp_Array1OfPnt2d.hxx>
|
||||
#include <TColgp_Array1OfVec.hxx>
|
||||
#include <TColgp_Array1OfVec2d.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_OStream.hxx>
|
||||
class MMgt_TShared;
|
||||
#include <TColgp_HArray1OfVec.hxx>
|
||||
#include <TColgp_HArray1OfVec2d.hxx>
|
||||
|
||||
class Standard_OutOfRange;
|
||||
class Standard_ConstructionError;
|
||||
class Standard_DimensionError;
|
||||
class gp_Vec;
|
||||
class gp_Vec2d;
|
||||
|
||||
|
||||
//! Describes a MultiPointConstraint used in a
|
||||
//! Multiline. MultiPointConstraints are composed
|
||||
//! of several two or three-dimensional points.
|
||||
@@ -181,31 +177,11 @@ public:
|
||||
//! Is used to redefine the operator <<.
|
||||
Standard_EXPORT virtual void Dump (Standard_OStream& o) const Standard_OVERRIDE;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Handle(MMgt_TShared) ttabTang;
|
||||
Handle(MMgt_TShared) ttabCurv;
|
||||
Handle(MMgt_TShared) ttabTang2d;
|
||||
Handle(MMgt_TShared) ttabCurv2d;
|
||||
|
||||
|
||||
Handle(TColgp_HArray1OfVec) tabTang;
|
||||
Handle(TColgp_HArray1OfVec) tabCurv;
|
||||
Handle(TColgp_HArray1OfVec2d) tabTang2d;
|
||||
Handle(TColgp_HArray1OfVec2d) tabCurv2d;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _AppDef_MultiPointConstraint_HeaderFile
|
||||
|
Reference in New Issue
Block a user