Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-13 09:16:39

0001 // Created on: 1992-10-14
0002 // Created by: Christophe MARION
0003 // Copyright (c) 1992-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 _HLRBRep_IntConicCurveOfCInter_HeaderFile
0018 #define _HLRBRep_IntConicCurveOfCInter_HeaderFile
0019 
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023 
0024 #include <HLRBRep_TypeDef.hxx>
0025 #include <IntCurve_IntConicConic.hxx>
0026 #include <HLRBRep_TheIntConicCurveOfCInter.hxx>
0027 #include <IntRes2d_Intersection.hxx>
0028 #include <Standard_Boolean.hxx>
0029 class Standard_ConstructionError;
0030 class IntCurve_IConicTool;
0031 class HLRBRep_CurveTool;
0032 class HLRBRep_TheIntConicCurveOfCInter;
0033 class gp_Lin2d;
0034 class IntRes2d_Domain;
0035 class gp_Circ2d;
0036 class gp_Elips2d;
0037 class gp_Parab2d;
0038 class gp_Hypr2d;
0039 
0040 class HLRBRep_IntConicCurveOfCInter : public IntRes2d_Intersection
0041 {
0042 public:
0043   DEFINE_STANDARD_ALLOC
0044 
0045   //! Empty constructor.
0046   Standard_EXPORT HLRBRep_IntConicCurveOfCInter();
0047 
0048   //! Intersection between a line and a parametric curve.
0049   Standard_EXPORT HLRBRep_IntConicCurveOfCInter(const gp_Lin2d&         L,
0050                                                 const IntRes2d_Domain&  D1,
0051                                                 const HLRBRep_CurvePtr& PCurve,
0052                                                 const IntRes2d_Domain&  D2,
0053                                                 const double            TolConf,
0054                                                 const double            Tol);
0055 
0056   //! Intersection between a line and a parametric curve.
0057   Standard_EXPORT HLRBRep_IntConicCurveOfCInter(const gp_Circ2d&        C,
0058                                                 const IntRes2d_Domain&  D1,
0059                                                 const HLRBRep_CurvePtr& PCurve,
0060                                                 const IntRes2d_Domain&  D2,
0061                                                 const double            TolConf,
0062                                                 const double            Tol);
0063 
0064   //! Intersection between an ellipse and a parametric curve.
0065   Standard_EXPORT HLRBRep_IntConicCurveOfCInter(const gp_Elips2d&       E,
0066                                                 const IntRes2d_Domain&  D1,
0067                                                 const HLRBRep_CurvePtr& PCurve,
0068                                                 const IntRes2d_Domain&  D2,
0069                                                 const double            TolConf,
0070                                                 const double            Tol);
0071 
0072   //! Intersection between a parabola and a parametric curve.
0073   Standard_EXPORT HLRBRep_IntConicCurveOfCInter(const gp_Parab2d&       Prb,
0074                                                 const IntRes2d_Domain&  D1,
0075                                                 const HLRBRep_CurvePtr& PCurve,
0076                                                 const IntRes2d_Domain&  D2,
0077                                                 const double            TolConf,
0078                                                 const double            Tol);
0079 
0080   //! Intersection between the main branch of an hyperbola
0081   //! and a parametric curve.
0082   Standard_EXPORT HLRBRep_IntConicCurveOfCInter(const gp_Hypr2d&        H,
0083                                                 const IntRes2d_Domain&  D1,
0084                                                 const HLRBRep_CurvePtr& PCurve,
0085                                                 const IntRes2d_Domain&  D2,
0086                                                 const double            TolConf,
0087                                                 const double            Tol);
0088 
0089   //! Intersection between a line and a parametric curve.
0090   Standard_EXPORT void Perform(const gp_Lin2d&         L,
0091                                const IntRes2d_Domain&  D1,
0092                                const HLRBRep_CurvePtr& PCurve,
0093                                const IntRes2d_Domain&  D2,
0094                                const double            TolConf,
0095                                const double            Tol);
0096 
0097   //! Intersection between a line and a parametric curve.
0098   Standard_EXPORT void Perform(const gp_Circ2d&        C,
0099                                const IntRes2d_Domain&  D1,
0100                                const HLRBRep_CurvePtr& PCurve,
0101                                const IntRes2d_Domain&  D2,
0102                                const double            TolConf,
0103                                const double            Tol);
0104 
0105   //! Intersection between an ellipse and a parametric curve.
0106   Standard_EXPORT void Perform(const gp_Elips2d&       E,
0107                                const IntRes2d_Domain&  D1,
0108                                const HLRBRep_CurvePtr& PCurve,
0109                                const IntRes2d_Domain&  D2,
0110                                const double            TolConf,
0111                                const double            Tol);
0112 
0113   //! Intersection between a parabola and a parametric curve.
0114   Standard_EXPORT void Perform(const gp_Parab2d&       Prb,
0115                                const IntRes2d_Domain&  D1,
0116                                const HLRBRep_CurvePtr& PCurve,
0117                                const IntRes2d_Domain&  D2,
0118                                const double            TolConf,
0119                                const double            Tol);
0120 
0121   //! Intersection between the main branch of an hyperbola
0122   //! and a parametric curve.
0123   Standard_EXPORT void Perform(const gp_Hypr2d&        H,
0124                                const IntRes2d_Domain&  D1,
0125                                const HLRBRep_CurvePtr& PCurve,
0126                                const IntRes2d_Domain&  D2,
0127                                const double            TolConf,
0128                                const double            Tol);
0129 
0130 private:
0131   Standard_EXPORT void InternalPerform(const gp_Lin2d&         Lin1,
0132                                        const IntRes2d_Domain&  D1,
0133                                        const HLRBRep_CurvePtr& PCurve,
0134                                        const IntRes2d_Domain&  D2,
0135                                        const double            TolConf,
0136                                        const double            Tol,
0137                                        const bool              Composite);
0138 
0139   Standard_EXPORT void InternalPerform(const gp_Circ2d&        Circ1,
0140                                        const IntRes2d_Domain&  D1,
0141                                        const HLRBRep_CurvePtr& PCurve,
0142                                        const IntRes2d_Domain&  D2,
0143                                        const double            TolConf,
0144                                        const double            Tol,
0145                                        const bool              Composite);
0146 
0147   Standard_EXPORT void InternalPerform(const gp_Elips2d&       Eli1,
0148                                        const IntRes2d_Domain&  D1,
0149                                        const HLRBRep_CurvePtr& PCurve,
0150                                        const IntRes2d_Domain&  D2,
0151                                        const double            TolConf,
0152                                        const double            Tol,
0153                                        const bool              Composite);
0154 
0155   Standard_EXPORT void InternalPerform(const gp_Parab2d&       Prb1,
0156                                        const IntRes2d_Domain&  D1,
0157                                        const HLRBRep_CurvePtr& PCurve,
0158                                        const IntRes2d_Domain&  D2,
0159                                        const double            TolConf,
0160                                        const double            Tol,
0161                                        const bool              Composite);
0162 
0163   Standard_EXPORT void InternalPerform(const gp_Hypr2d&        Hpr1,
0164                                        const IntRes2d_Domain&  D1,
0165                                        const HLRBRep_CurvePtr& PCurve,
0166                                        const IntRes2d_Domain&  D2,
0167                                        const double            TolConf,
0168                                        const double            Tol,
0169                                        const bool              Composite);
0170 
0171   double                           param1inf;
0172   double                           param1sup;
0173   double                           param2inf;
0174   double                           param2sup;
0175   IntCurve_IntConicConic           intconiconi;
0176   HLRBRep_TheIntConicCurveOfCInter intconicurv;
0177 };
0178 
0179 #endif // _HLRBRep_IntConicCurveOfCInter_HeaderFile