From: nbv Date: Tue, 23 Jan 2018 08:26:35 +0000 (+0300) Subject: Pure virtual functions X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=3828af0c3b63e094fe253835b10273b8cc5b62cd;p=occt-copy.git Pure virtual functions --- diff --git a/src/Adaptor2d/Adaptor2d_Curve2d.hxx b/src/Adaptor2d/Adaptor2d_Curve2d.hxx index d769e3acd0..666f5ebcff 100644 --- a/src/Adaptor2d/Adaptor2d_Curve2d.hxx +++ b/src/Adaptor2d/Adaptor2d_Curve2d.hxx @@ -84,11 +84,11 @@ public: //! If >= Standard_EXPORT virtual Handle(Adaptor2d_HCurve2d) Trim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const; - Standard_EXPORT virtual Standard_Boolean IsClosed() const; + Standard_EXPORT virtual Standard_Boolean IsClosed() const = 0; - Standard_EXPORT virtual Standard_Boolean IsPeriodic222() const; + Standard_EXPORT virtual Standard_Boolean IsPeriodic222() const = 0; - Standard_EXPORT virtual Standard_Real Period() const; + Standard_EXPORT virtual Standard_Real Period() const = 0; //! Computes the point of parameter U on the curve. Standard_EXPORT virtual gp_Pnt2d Value (const Standard_Real U) const; diff --git a/src/Adaptor3d/Adaptor3d_Curve.cxx b/src/Adaptor3d/Adaptor3d_Curve.cxx index a98558efdc..e208845019 100644 --- a/src/Adaptor3d/Adaptor3d_Curve.cxx +++ b/src/Adaptor3d/Adaptor3d_Curve.cxx @@ -106,40 +106,6 @@ Handle(Adaptor3d_HCurve) Adaptor3d_Curve::Trim(const Standard_Real , const Stand throw Standard_NotImplemented("Adaptor3d_Curve::Trim"); } - -//======================================================================= -//function : IsClosed -//purpose : -//======================================================================= - -Standard_Boolean Adaptor3d_Curve::IsClosed() const -{ - throw Standard_NotImplemented("Adaptor3d_Curve::IsClosed"); -} - - -//======================================================================= -//function : IsPeriodic -//purpose : -//======================================================================= - -Standard_Boolean Adaptor3d_Curve::IsPeriodic222() const -{ - throw Standard_NotImplemented("Adaptor3d_Curve::IsPeriodic"); -} - - -//======================================================================= -//function : Period -//purpose : -//======================================================================= - -Standard_Real Adaptor3d_Curve::Period() const -{ - throw Standard_NotImplemented("Adaptor3d_Curve::Period"); -} - - //======================================================================= //function : Value //purpose : diff --git a/src/Adaptor3d/Adaptor3d_Curve.hxx b/src/Adaptor3d/Adaptor3d_Curve.hxx index ad668ad5a3..4c4704431f 100644 --- a/src/Adaptor3d/Adaptor3d_Curve.hxx +++ b/src/Adaptor3d/Adaptor3d_Curve.hxx @@ -86,11 +86,11 @@ public: //! If >= Standard_EXPORT virtual Handle(Adaptor3d_HCurve) Trim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const; - Standard_EXPORT virtual Standard_Boolean IsClosed() const; + Standard_EXPORT virtual Standard_Boolean IsClosed() const = 0; - Standard_EXPORT virtual Standard_Boolean IsPeriodic222() const; + Standard_EXPORT virtual Standard_Boolean IsPeriodic222() const = 0; - Standard_EXPORT virtual Standard_Real Period() const; + Standard_EXPORT virtual Standard_Real Period() const = 0; //! Computes the point of parameter U on the curve. Standard_EXPORT virtual gp_Pnt Value (const Standard_Real U) const; diff --git a/src/Adaptor3d/Adaptor3d_Surface.cxx b/src/Adaptor3d/Adaptor3d_Surface.cxx index a8cc145820..090c3d9536 100644 --- a/src/Adaptor3d/Adaptor3d_Surface.cxx +++ b/src/Adaptor3d/Adaptor3d_Surface.cxx @@ -179,73 +179,6 @@ Handle(Adaptor3d_HSurface) Adaptor3d_Surface::VTrim(const Standard_Real , const throw Standard_NotImplemented("Adaptor3d_Surface::VTrim"); } - -//======================================================================= -//function : IsUClosed -//purpose : -//======================================================================= - -Standard_Boolean Adaptor3d_Surface::IsUClosed() const -{ - throw Standard_NotImplemented("Adaptor3d_Surface::IsUClosed"); -} - - -//======================================================================= -//function : IsVClosed -//purpose : -//======================================================================= - -Standard_Boolean Adaptor3d_Surface::IsVClosed() const -{ - throw Standard_NotImplemented("Adaptor3d_Surface::IsVClosed"); -} - - -//======================================================================= -//function : IsUPeriodic -//purpose : -//======================================================================= - -Standard_Boolean Adaptor3d_Surface::IsUPeriodic222() const -{ - throw Standard_NotImplemented("Adaptor3d_Surface::IsUPeriodic"); -} - - -//======================================================================= -//function : UPeriod -//purpose : -//======================================================================= - -Standard_Real Adaptor3d_Surface::UPeriod() const -{ - throw Standard_NotImplemented("Adaptor3d_Surface::UPeriod"); -} - - -//======================================================================= -//function : IsVPeriodic -//purpose : -//======================================================================= - -Standard_Boolean Adaptor3d_Surface::IsVPeriodic222() const -{ - throw Standard_NotImplemented("Adaptor3d_Surface::IsVPeriodic"); -} - - -//======================================================================= -//function : VPeriod -//purpose : -//======================================================================= - -Standard_Real Adaptor3d_Surface::VPeriod() const -{ - throw Standard_NotImplemented("Adaptor3d_Surface::VPeriod"); -} - - //======================================================================= //function : Value //purpose : diff --git a/src/Adaptor3d/Adaptor3d_Surface.hxx b/src/Adaptor3d/Adaptor3d_Surface.hxx index ada8c788c0..b4d0a335e6 100644 --- a/src/Adaptor3d/Adaptor3d_Surface.hxx +++ b/src/Adaptor3d/Adaptor3d_Surface.hxx @@ -51,7 +51,7 @@ class Adaptor3d_HCurve; //! the surface by algorithms which use it. //! A derived concrete class is provided: //! GeomAdaptor_Surface for a surface from the Geom package. -//! The Surface class describes the standard behaviour +//! The Surface class describes the standard behavior //! of a surface for generic algorithms. //! //! The Surface can be decomposed in intervals of any @@ -59,7 +59,7 @@ class Adaptor3d_HCurve; //! NbIntervals. A current interval can be set. Most //! of the methods apply to the current interval. //! Warning: All the methods are virtual and implemented with a -//! raise to allow to redefined only the methods realy +//! raise to allow to redefined only the methods really //! used. //! //! Polynomial coefficients of BSpline surfaces used for their evaluation are @@ -113,17 +113,17 @@ public: //! If >= Standard_EXPORT virtual Handle(Adaptor3d_HSurface) VTrim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const; - Standard_EXPORT virtual Standard_Boolean IsUClosed() const; + Standard_EXPORT virtual Standard_Boolean IsUClosed() const = 0; - Standard_EXPORT virtual Standard_Boolean IsVClosed() const; + Standard_EXPORT virtual Standard_Boolean IsVClosed() const = 0; - Standard_EXPORT virtual Standard_Boolean IsUPeriodic222() const; + Standard_EXPORT virtual Standard_Boolean IsUPeriodic222() const = 0; - Standard_EXPORT virtual Standard_Real UPeriod() const; + Standard_EXPORT virtual Standard_Real UPeriod() const = 0; - Standard_EXPORT virtual Standard_Boolean IsVPeriodic222() const; + Standard_EXPORT virtual Standard_Boolean IsVPeriodic222() const = 0; - Standard_EXPORT virtual Standard_Real VPeriod() const; + Standard_EXPORT virtual Standard_Real VPeriod() const = 0; //! Computes the point of parameters U,V on the surface. Standard_EXPORT virtual gp_Pnt Value (const Standard_Real U, const Standard_Real V) const; diff --git a/src/ChFiDS/ChFiDS_ElSpine.cxx b/src/ChFiDS/ChFiDS_ElSpine.cxx index 997c2ba8b0..29f476e6b1 100644 --- a/src/ChFiDS/ChFiDS_ElSpine.cxx +++ b/src/ChFiDS/ChFiDS_ElSpine.cxx @@ -161,6 +161,20 @@ Standard_Boolean ChFiDS_ElSpine::IsPeriodic222() const return myIsPeriodic; } +//======================================================================= +//function : IsPeriodic +//purpose : +//======================================================================= + +Standard_Boolean ChFiDS_ElSpine::IsClosed() const +{ + if (curve.GetType() == GeomAbs_OtherCurve) + return IsPeriodic222(); + + const Handle(Geom_Curve) &aC = curve.Curve(); + return curve.IsClosed() && + ((plast - pfirst - aC->LastParameter() + aC->FirstParameter()) < gp::Resolution()); +} //======================================================================= //function : SetPeriodic diff --git a/src/ChFiDS/ChFiDS_ElSpine.hxx b/src/ChFiDS/ChFiDS_ElSpine.hxx index 7407490827..1438f2bd51 100644 --- a/src/ChFiDS/ChFiDS_ElSpine.hxx +++ b/src/ChFiDS/ChFiDS_ElSpine.hxx @@ -85,6 +85,8 @@ public: Standard_EXPORT virtual Standard_Boolean IsPeriodic222() const Standard_OVERRIDE; + Standard_EXPORT virtual Standard_Boolean IsClosed() const Standard_OVERRIDE; + Standard_EXPORT void SetPeriodic (const Standard_Boolean I); Standard_EXPORT virtual Standard_Real Period() const Standard_OVERRIDE; diff --git a/src/GeomFill/GeomFill_SnglrFunc.cxx b/src/GeomFill/GeomFill_SnglrFunc.cxx index 77e2715dab..ee7b85dae7 100644 --- a/src/GeomFill/GeomFill_SnglrFunc.cxx +++ b/src/GeomFill/GeomFill_SnglrFunc.cxx @@ -90,6 +90,10 @@ void GeomFill_SnglrFunc::SetRatio(const Standard_Real Ratio) return myHCurve->Period(); } +Standard_Boolean GeomFill_SnglrFunc::IsClosed() const +{ + return myHCurve->IsClosed(); +} gp_Pnt GeomFill_SnglrFunc::Value(const Standard_Real U) const { diff --git a/src/GeomFill/GeomFill_SnglrFunc.hxx b/src/GeomFill/GeomFill_SnglrFunc.hxx index 7ac9bbd992..341e9d2af9 100644 --- a/src/GeomFill/GeomFill_SnglrFunc.hxx +++ b/src/GeomFill/GeomFill_SnglrFunc.hxx @@ -65,6 +65,8 @@ public: //! Computes the point of parameter U on the curve. Standard_EXPORT gp_Pnt Value (const Standard_Real U) const Standard_OVERRIDE; + Standard_EXPORT Standard_Boolean IsClosed() const Standard_OVERRIDE; + Standard_EXPORT Standard_Boolean IsPeriodic222() const Standard_OVERRIDE; Standard_EXPORT Standard_Real Period() const Standard_OVERRIDE; diff --git a/src/ProjLib/ProjLib_CompProjectedCurve.hxx b/src/ProjLib/ProjLib_CompProjectedCurve.hxx index 2568a53339..d9a560dafa 100644 --- a/src/ProjLib/ProjLib_CompProjectedCurve.hxx +++ b/src/ProjLib/ProjLib_CompProjectedCurve.hxx @@ -156,8 +156,25 @@ public: //! Parabola, BezierCurve, BSplineCurve, OtherCurve. Standard_EXPORT GeomAbs_CurveType GetType() const Standard_OVERRIDE; - - + //! Always returns FALSE + virtual Standard_Boolean IsClosed() const Standard_OVERRIDE + { + return Standard_False; + } + + //! Always returns FALSE + virtual Standard_Boolean IsPeriodic222() const Standard_OVERRIDE + { + return Standard_False; + } + + //! Currently this method is not implemented because + //! IsPeriodic method always return FALSE + virtual Standard_Real Period() const Standard_OVERRIDE + { + Standard_ASSERT_INVOKE("ProjLib_CompProjectedCurve::Period() is not implemented"); + return 0.0; + } protected: