Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-07-30 09:13:40

0001 // Created on: 1997-05-28
0002 // Created by: Xavier BENVENISTE
0003 // Copyright (c) 1997-1999 Matra Datavision
0004 // Copyright (c) 1999-2014 OPEN CASCADE SAS
0005 //
0006 // This file is part of Open CASCADE Technology software library.
0007 //
0008 // This library is free software; you can redistribute it and/or modify it under
0009 // the terms of the GNU Lesser General Public License version 2.1 as published
0010 // by the Free Software Foundation, with special exception defined in the file
0011 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0012 // distribution for complete text of the license and disclaimer of any warranty.
0013 //
0014 // Alternatively, this file may be used under the terms of Open CASCADE
0015 // commercial license or contractual agreement.
0016 
0017 #ifndef _GeomLib_Check2dBSplineCurve_HeaderFile
0018 #define _GeomLib_Check2dBSplineCurve_HeaderFile
0019 
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023 
0024 class Geom2d_BSplineCurve;
0025 
0026 //! Checks for the end  tangents : whether or not those
0027 //! are reversed
0028 class GeomLib_Check2dBSplineCurve
0029 {
0030 public:
0031   DEFINE_STANDARD_ALLOC
0032 
0033   Standard_EXPORT GeomLib_Check2dBSplineCurve(const Handle(Geom2d_BSplineCurve)& Curve,
0034                                               const Standard_Real                Tolerance,
0035                                               const Standard_Real                AngularTolerance);
0036 
0037   Standard_Boolean IsDone() const;
0038 
0039   Standard_EXPORT void NeedTangentFix(Standard_Boolean& FirstFlag,
0040                                       Standard_Boolean& SecondFlag) const;
0041 
0042   Standard_EXPORT void FixTangent(const Standard_Boolean FirstFlag,
0043                                   const Standard_Boolean LastFlag);
0044 
0045   //! modifies the curve
0046   //! by fixing the first or the last tangencies
0047   //!
0048   //! if Index3D not in the Range [1,Nb3dSpaces]
0049   //! if the Approx is not Done
0050   Standard_EXPORT Handle(Geom2d_BSplineCurve) FixedTangent(const Standard_Boolean FirstFlag,
0051                                                            const Standard_Boolean LastFlag);
0052 
0053 protected:
0054 private:
0055   void FixTangentOnCurve(Handle(Geom2d_BSplineCurve)& theCurve,
0056                          const Standard_Boolean       FirstFlag,
0057                          const Standard_Boolean       LastFlag);
0058 
0059   Handle(Geom2d_BSplineCurve) myCurve;
0060   Standard_Boolean            myDone;
0061   Standard_Boolean            myFixFirstTangent;
0062   Standard_Boolean            myFixLastTangent;
0063   Standard_Real               myAngularTolerance;
0064   Standard_Real               myTolerance;
0065 
0066   Standard_Integer myIndSecondPole;
0067   Standard_Integer myIndPrelastPole;
0068 };
0069 
0070 #include <GeomLib_Check2dBSplineCurve.lxx>
0071 
0072 #endif // _GeomLib_Check2dBSplineCurve_HeaderFile