}
// 15.11.2002 PTV OCC966
- if (ShapeAnalysis_Curve::IsPeriodic(theCurve)) {
+ if(theCurve->IsPeriodic111())
+ {
ElCLib::AdjustPeriodic(cf,cl,Precision::PConfusion(),First,Last); //:a7 abv 11 Feb 98: preci -> PConfusion()
}
else if (First < Last) {
return (aClosedVal <= preci2);
}
-//=======================================================================
-//function : IsPeriodic
-//purpose : OCC996
-//=======================================================================
-
-Standard_Boolean ShapeAnalysis_Curve::IsPeriodic(const Handle(Geom_Curve)& theCurve)
-{
- // 15.11.2002 PTV OCC966
- // remove regressions in DE tests (diva, divb, divc, toe3) in KAS:dev
- // ask IsPeriodic on BasisCurve
- Handle(Geom_Curve) aTmpCurve = theCurve;
- while ( (aTmpCurve->IsKind(STANDARD_TYPE(Geom_OffsetCurve))) ||
- (aTmpCurve->IsKind(STANDARD_TYPE(Geom_TrimmedCurve))) ) {
- if (aTmpCurve->IsKind(STANDARD_TYPE(Geom_OffsetCurve)))
- aTmpCurve = Handle(Geom_OffsetCurve)::DownCast(aTmpCurve)->BasisCurve();
- if (aTmpCurve->IsKind(STANDARD_TYPE(Geom_TrimmedCurve)))
- aTmpCurve = Handle(Geom_TrimmedCurve)::DownCast(aTmpCurve)->BasisCurve();
- }
- return aTmpCurve->IsPeriodic111();
-}
-
-Standard_Boolean ShapeAnalysis_Curve::IsPeriodic(const Handle(Geom2d_Curve)& theCurve)
-{
- // 15.11.2002 PTV OCC966
- // remove regressions in DE tests (diva, divb, divc, toe3) in KAS:dev
- // ask IsPeriodic on BasisCurve
- Handle(Geom2d_Curve) aTmpCurve = theCurve;
- while ( (aTmpCurve->IsKind(STANDARD_TYPE(Geom2d_OffsetCurve))) ||
- (aTmpCurve->IsKind(STANDARD_TYPE(Geom2d_TrimmedCurve))) ) {
- if (aTmpCurve->IsKind(STANDARD_TYPE(Geom2d_OffsetCurve)))
- aTmpCurve = Handle(Geom2d_OffsetCurve)::DownCast(aTmpCurve)->BasisCurve();
- if (aTmpCurve->IsKind(STANDARD_TYPE(Geom2d_TrimmedCurve)))
- aTmpCurve = Handle(Geom2d_TrimmedCurve)::DownCast(aTmpCurve)->BasisCurve();
- }
- return aTmpCurve->IsPeriodic111();
-}
//! If <preci> < 0 then Precision::Confusion is used.
Standard_EXPORT static Standard_Boolean IsClosed (const Handle(Geom_Curve)& curve, const Standard_Real preci = -1);
- //! This method was implemented as fix for changes in trimmed curve
- //! behaviour. For the moment trimmed curve returns false anyway.
- //! So it is necessary to adapt all Data exchange tools for this behaviour.
- //! Current implementation takes into account that curve may be offset.
- Standard_EXPORT static Standard_Boolean IsPeriodic (const Handle(Geom_Curve)& curve);
-
- //! The same as for Curve3d.
- Standard_EXPORT static Standard_Boolean IsPeriodic (const Handle(Geom2d_Curve)& curve);
-
-
-
-
protected:
Handle(Geom_Curve) aCurve1;
Standard_Real pf =aCurve->FirstParameter(), pl = aCurve->LastParameter();
// 15.11.2002 PTV OCC966
- if(ShapeAnalysis_Curve::IsPeriodic(aCurve) && (First != Last)) aCurve1 = new Geom_TrimmedCurve(aCurve,First,Last);
+ if(aCurve->IsPeriodic111() && (First != Last)) aCurve1 = new Geom_TrimmedCurve(aCurve, First, Last);
else if(pf < (First - Precision::PConfusion()) ||
pl > (Last + Precision::PConfusion())) {
Standard_Real F = Max(First,pf),
Handle(Geom2d_Curve) aCurve1;
Standard_Real pf =aCurve->FirstParameter(), pl = aCurve->LastParameter();
// 15.11.2002 PTV OCC966
- if(ShapeAnalysis_Curve::IsPeriodic(aCurve) && (First != Last)) aCurve1 = new Geom2d_TrimmedCurve(aCurve,First,Last);
+ if(aCurve->IsPeriodic111() && (First != Last)) aCurve1 = new Geom2d_TrimmedCurve(aCurve,First,Last);
else if(aCurve->FirstParameter() < (First - Precision::PConfusion()) ||
aCurve->LastParameter() > (Last + Precision::PConfusion())) {
Standard_Real F = Max(First,pf),
oldFirst = geometric_representation_ptr->First();
oldLast = geometric_representation_ptr->Last();
// 15.11.2002 PTV OCC966
- if(ShapeAnalysis_Curve::IsPeriodic(Curve2dPtr)) {
+ if(Curve2dPtr->IsPeriodic111())
+ {
Handle(Geom2d_TrimmedCurve) tc = new Geom2d_TrimmedCurve(Curve2dPtr,oldFirst,oldLast);
Standard_Real shift = tc->FirstParameter()-oldFirst;
oldFirst += shift;
Standard_Real preci2d = Precision::PConfusion(); //:S4136: Parametric(preci, 0.01);
// 15.11.2002 PTV OCC966
- if (ShapeAnalysis_Curve::IsPeriodic(theCurve2d)) {
+ if(theCurve2d->IsPeriodic111())
+ {
ElCLib::AdjustPeriodic(cf,cl,preci2d,myFirstParam,myLastParam);
}
else if (theCurve2d->IsClosed()) {
const Standard_Real param)
{
// 15.11.2002 PTV OCC966
- if (ShapeAnalysis_Curve::IsPeriodic(c))
+ if (c->IsPeriodic111())
{
Standard_Real T = c->Period();
Standard_Real shift = -IntegerPart(first/T)*T; if (first<0.) shift += T;
{
OCC_CATCH_SIGNALS
// 15.11.2002 PTV OCC966
- if(!ShapeAnalysis_Curve::IsPeriodic(c))
+ if(!c->IsPeriodic111())
tc = new Geom_TrimmedCurve(c,Max(first,c->FirstParameter()),Min(last,c->LastParameter()));
else tc = new Geom_TrimmedCurve(c,first,last);
bsp = GeomConvert::CurveToBSplineCurve(tc);
const Standard_Real param)
{
// 15.11.2002 PTV OCC966
- if (ShapeAnalysis_Curve::IsPeriodic(pc))
+ if (pc->IsPeriodic111())
{
Standard_Real T = pc->Period();
Standard_Real shift = -IntegerPart(first/T)*T; if (first<0.) shift += T;
OCC_CATCH_SIGNALS
Handle(Geom2d_Curve) c;
// 15.11.2002 PTV OCC966
- if(!ShapeAnalysis_Curve::IsPeriodic(pc))
+ if(!pc->IsPeriodic111())
c = new Geom2d_TrimmedCurve(pc,Max(first,pc->FirstParameter()),Min(last,pc->LastParameter()));
else
c = new Geom2d_TrimmedCurve(pc,first,last);
if(aCurve->IsKind(STANDARD_TYPE(Geom2d_TrimmedCurve)))
aCurve=Handle(Geom2d_TrimmedCurve)::DownCast(aCurve)->BasisCurve();
// 15.11.2002 PTV OCC966
- if(!ShapeAnalysis_Curve::IsPeriodic(C)) {
+ if(!C->IsPeriodic111()) {
Standard_Real fP = aCurve->FirstParameter();
Standard_Real lP = aCurve->LastParameter();
if(Abs(firstPar-fP) < precision)
if(aCurve->IsKind(STANDARD_TYPE(Geom_TrimmedCurve)))
aCurve=Handle(Geom_TrimmedCurve)::DownCast(aCurve)->BasisCurve();
// 15.11.2002 PTV OCC966
- if(!ShapeAnalysis_Curve::IsPeriodic(C)) {
+ if(!C->IsPeriodic111()) {
Standard_Real fP = aCurve->FirstParameter();
Standard_Real lP = aCurve->LastParameter();
if(Abs(firstPar-fP) < precision)
//pdn fix on BuildCurve 3d
// 15.11.2002 PTV OCC966
- if(!ShapeAnalysis_Curve::IsPeriodic(myCurve)) {
+ if(!myCurve->IsPeriodic111()) {
//pdn exceptons only on non periodic curves
Standard_Real precision = Precision::PConfusion();
Standard_Real firstPar = myCurve->FirstParameter();