//! If <First> >= <Last>
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;
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 :
//! If <First> >= <Last>
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;
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 :
//! 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
//! 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
//! If <First> >= <Last>
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;
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
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;
return myHCurve->Period();
}
+Standard_Boolean GeomFill_SnglrFunc::IsClosed() const
+{
+ return myHCurve->IsClosed();
+}
gp_Pnt GeomFill_SnglrFunc::Value(const Standard_Real U) const
{
//! 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;
//! 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: