Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-06-11 08:33:09

0001 // Created on: 1992-06-04
0002 // Created by: Jacques GOUSSARD
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 _Geom2dInt_TheIntConicCurveOfGInter_HeaderFile
0018 #define _Geom2dInt_TheIntConicCurveOfGInter_HeaderFile
0019 
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 
0023 #include <IntRes2d_Intersection.hxx>
0024 class IntCurve_IConicTool;
0025 class Adaptor2d_Curve2d;
0026 class Geom2dInt_Geom2dCurveTool;
0027 class Geom2dInt_TheProjPCurOfGInter;
0028 class Geom2dInt_TheIntersectorOfTheIntConicCurveOfGInter;
0029 class Geom2dInt_MyImpParToolOfTheIntersectorOfTheIntConicCurveOfGInter;
0030 class gp_Lin2d;
0031 class IntRes2d_Domain;
0032 class gp_Circ2d;
0033 class gp_Elips2d;
0034 class gp_Parab2d;
0035 class gp_Hypr2d;
0036 
0037 class Geom2dInt_TheIntConicCurveOfGInter : public IntRes2d_Intersection
0038 {
0039 public:
0040   DEFINE_STANDARD_ALLOC
0041 
0042   //! Empty constructor.
0043   Geom2dInt_TheIntConicCurveOfGInter();
0044 
0045   //! Intersection between a line and a parametric curve.
0046   Geom2dInt_TheIntConicCurveOfGInter(const gp_Lin2d&          L,
0047                                      const IntRes2d_Domain&   D1,
0048                                      const Adaptor2d_Curve2d& PCurve,
0049                                      const IntRes2d_Domain&   D2,
0050                                      const Standard_Real      TolConf,
0051                                      const Standard_Real      Tol);
0052 
0053   //! Intersection between a line and a parametric curve.
0054   Standard_EXPORT Geom2dInt_TheIntConicCurveOfGInter(const gp_Circ2d&         C,
0055                                                      const IntRes2d_Domain&   D1,
0056                                                      const Adaptor2d_Curve2d& PCurve,
0057                                                      const IntRes2d_Domain&   D2,
0058                                                      const Standard_Real      TolConf,
0059                                                      const Standard_Real      Tol);
0060 
0061   //! Intersection between an ellipse and a parametric curve.
0062   Standard_EXPORT Geom2dInt_TheIntConicCurveOfGInter(const gp_Elips2d&        E,
0063                                                      const IntRes2d_Domain&   D1,
0064                                                      const Adaptor2d_Curve2d& PCurve,
0065                                                      const IntRes2d_Domain&   D2,
0066                                                      const Standard_Real      TolConf,
0067                                                      const Standard_Real      Tol);
0068 
0069   //! Intersection between a parabola and a parametric curve.
0070   Standard_EXPORT Geom2dInt_TheIntConicCurveOfGInter(const gp_Parab2d&        Prb,
0071                                                      const IntRes2d_Domain&   D1,
0072                                                      const Adaptor2d_Curve2d& PCurve,
0073                                                      const IntRes2d_Domain&   D2,
0074                                                      const Standard_Real      TolConf,
0075                                                      const Standard_Real      Tol);
0076 
0077   //! Intersection between the main branch of an hyperbola
0078   //! and a parametric curve.
0079   Standard_EXPORT Geom2dInt_TheIntConicCurveOfGInter(const gp_Hypr2d&         H,
0080                                                      const IntRes2d_Domain&   D1,
0081                                                      const Adaptor2d_Curve2d& PCurve,
0082                                                      const IntRes2d_Domain&   D2,
0083                                                      const Standard_Real      TolConf,
0084                                                      const Standard_Real      Tol);
0085 
0086   //! Intersection between a line and a parametric curve.
0087   void Perform(const gp_Lin2d&          L,
0088                const IntRes2d_Domain&   D1,
0089                const Adaptor2d_Curve2d& PCurve,
0090                const IntRes2d_Domain&   D2,
0091                const Standard_Real      TolConf,
0092                const Standard_Real      Tol);
0093 
0094   //! Intersection between a line and a parametric curve.
0095   void Perform(const gp_Circ2d&         C,
0096                const IntRes2d_Domain&   D1,
0097                const Adaptor2d_Curve2d& PCurve,
0098                const IntRes2d_Domain&   D2,
0099                const Standard_Real      TolConf,
0100                const Standard_Real      Tol);
0101 
0102   //! Intersection between an ellipse and a parametric curve.
0103   void Perform(const gp_Elips2d&        E,
0104                const IntRes2d_Domain&   D1,
0105                const Adaptor2d_Curve2d& PCurve,
0106                const IntRes2d_Domain&   D2,
0107                const Standard_Real      TolConf,
0108                const Standard_Real      Tol);
0109 
0110   //! Intersection between a parabola and a parametric curve.
0111   void Perform(const gp_Parab2d&        Prb,
0112                const IntRes2d_Domain&   D1,
0113                const Adaptor2d_Curve2d& PCurve,
0114                const IntRes2d_Domain&   D2,
0115                const Standard_Real      TolConf,
0116                const Standard_Real      Tol);
0117 
0118   //! Intersection between the main branch of an hyperbola
0119   //! and a parametric curve.
0120   void Perform(const gp_Hypr2d&         H,
0121                const IntRes2d_Domain&   D1,
0122                const Adaptor2d_Curve2d& PCurve,
0123                const IntRes2d_Domain&   D2,
0124                const Standard_Real      TolConf,
0125                const Standard_Real      Tol);
0126 
0127 protected:
0128 private:
0129   //! Intersection between a conic fom gp
0130   //! and a parametric curve.
0131   void Perform(const IntCurve_IConicTool& ICurve,
0132                const IntRes2d_Domain&     D1,
0133                const Adaptor2d_Curve2d&   PCurve,
0134                const IntRes2d_Domain&     D2,
0135                const Standard_Real        TolConf,
0136                const Standard_Real        Tol);
0137 };
0138 
0139 #define TheImpTool IntCurve_IConicTool
0140 #define TheImpTool_hxx <IntCurve_IConicTool.hxx>
0141 #define ThePCurve Adaptor2d_Curve2d
0142 #define ThePCurve_hxx <Adaptor2d_Curve2d.hxx>
0143 #define ThePCurveTool Geom2dInt_Geom2dCurveTool
0144 #define ThePCurveTool_hxx <Geom2dInt_Geom2dCurveTool.hxx>
0145 #define TheProjPCur Geom2dInt_TheProjPCurOfGInter
0146 #define TheProjPCur_hxx <Geom2dInt_TheProjPCurOfGInter.hxx>
0147 #define IntCurve_TheIntersector Geom2dInt_TheIntersectorOfTheIntConicCurveOfGInter
0148 #define IntCurve_TheIntersector_hxx <Geom2dInt_TheIntersectorOfTheIntConicCurveOfGInter.hxx>
0149 #define IntCurve_MyImpParToolOfTheIntersector                                                      \
0150   Geom2dInt_MyImpParToolOfTheIntersectorOfTheIntConicCurveOfGInter
0151 #define IntCurve_MyImpParToolOfTheIntersector_hxx                                                  \
0152   <Geom2dInt_MyImpParToolOfTheIntersectorOfTheIntConicCurveOfGInter.hxx>
0153 #define IntCurve_MyImpParToolOfTheIntersector                                                      \
0154   Geom2dInt_MyImpParToolOfTheIntersectorOfTheIntConicCurveOfGInter
0155 #define IntCurve_MyImpParToolOfTheIntersector_hxx                                                  \
0156   <Geom2dInt_MyImpParToolOfTheIntersectorOfTheIntConicCurveOfGInter.hxx>
0157 #define IntCurve_IntConicCurveGen Geom2dInt_TheIntConicCurveOfGInter
0158 #define IntCurve_IntConicCurveGen_hxx <Geom2dInt_TheIntConicCurveOfGInter.hxx>
0159 
0160 #include <IntCurve_IntConicCurveGen.lxx>
0161 
0162 #undef TheImpTool
0163 #undef TheImpTool_hxx
0164 #undef ThePCurve
0165 #undef ThePCurve_hxx
0166 #undef ThePCurveTool
0167 #undef ThePCurveTool_hxx
0168 #undef TheProjPCur
0169 #undef TheProjPCur_hxx
0170 #undef IntCurve_TheIntersector
0171 #undef IntCurve_TheIntersector_hxx
0172 #undef IntCurve_MyImpParToolOfTheIntersector
0173 #undef IntCurve_MyImpParToolOfTheIntersector_hxx
0174 #undef IntCurve_MyImpParToolOfTheIntersector
0175 #undef IntCurve_MyImpParToolOfTheIntersector_hxx
0176 #undef IntCurve_IntConicCurveGen
0177 #undef IntCurve_IntConicCurveGen_hxx
0178 
0179 #endif // _Geom2dInt_TheIntConicCurveOfGInter_HeaderFile