Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:04:06

0001 // Created on: 1992-04-27
0002 // Created by: Laurent BUCHARD
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 _IntCurve_IntConicConic_HeaderFile
0018 #define _IntCurve_IntConicConic_HeaderFile
0019 
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 
0023 #include <IntCurve_IntImpConicParConic.hxx>
0024 #include <IntRes2d_Intersection.hxx>
0025 class gp_Lin2d;
0026 class IntRes2d_Domain;
0027 class gp_Circ2d;
0028 class gp_Elips2d;
0029 class gp_Parab2d;
0030 class gp_Hypr2d;
0031 
0032 
0033 //! Provides methods to intersect two conics.
0034 //! The exception ConstructionError is raised  in constructors
0035 //! or in Perform methods  when a domain  (Domain from IntRes2d)
0036 //! is not correct, i-e when a Circle (Circ2d from  gp) or
0037 //! an Ellipse (i-e Elips2d from  gp) do not have a closed
0038 //! domain (use the  SetEquivalentParameters method for a domain
0039 //! on a circle or an ellipse).
0040 class IntCurve_IntConicConic  : public IntRes2d_Intersection
0041 {
0042 public:
0043 
0044   DEFINE_STANDARD_ALLOC
0045 
0046   
0047   //! Empty Constructor
0048     IntCurve_IntConicConic();
0049   
0050   //! Intersection between 2 lines from gp.
0051     IntCurve_IntConicConic(const gp_Lin2d& L1, const IntRes2d_Domain& D1, const gp_Lin2d& L2, const IntRes2d_Domain& D2, const Standard_Real TolConf, const Standard_Real Tol);
0052   
0053   //! Intersection between 2 lines from gp.
0054   Standard_EXPORT void Perform (const gp_Lin2d& L1, const IntRes2d_Domain& D1, const gp_Lin2d& L2, const IntRes2d_Domain& D2, const Standard_Real TolConf, const Standard_Real Tol);
0055   
0056   //! Intersection between a line and a circle.
0057   //! The exception ConstructionError is raised if the method
0058   //! IsClosed of the domain of the circle returns False.
0059     IntCurve_IntConicConic(const gp_Lin2d& L, const IntRes2d_Domain& DL, const gp_Circ2d& C, const IntRes2d_Domain& DC, const Standard_Real TolConf, const Standard_Real Tol);
0060   
0061   //! Intersection between a line and a circle.
0062   //! The exception ConstructionError is raised if the method
0063   //! IsClosed of the domain of the circle returns False.
0064   Standard_EXPORT void Perform (const gp_Lin2d& L, const IntRes2d_Domain& DL, const gp_Circ2d& C, const IntRes2d_Domain& DC, const Standard_Real TolConf, const Standard_Real Tol);
0065   
0066   //! Intersection between a line and an ellipse.
0067   //! The exception ConstructionError is raised if the method
0068   //! IsClosed of the domain of the ellipse returns False.
0069     IntCurve_IntConicConic(const gp_Lin2d& L, const IntRes2d_Domain& DL, const gp_Elips2d& E, const IntRes2d_Domain& DE, const Standard_Real TolConf, const Standard_Real Tol);
0070   
0071   //! Intersection between a line and an ellipse.
0072   //! The exception ConstructionError is raised if the method
0073   //! IsClosed of the domain of the ellipse returns False.
0074   Standard_EXPORT void Perform (const gp_Lin2d& L, const IntRes2d_Domain& DL, const gp_Elips2d& E, const IntRes2d_Domain& DE, const Standard_Real TolConf, const Standard_Real Tol);
0075   
0076   //! Intersection between a line and a parabola from gp.
0077     IntCurve_IntConicConic(const gp_Lin2d& L, const IntRes2d_Domain& DL, const gp_Parab2d& P, const IntRes2d_Domain& DP, const Standard_Real TolConf, const Standard_Real Tol);
0078   
0079   //! Intersection between a line and a parabola from gp.
0080   Standard_EXPORT void Perform (const gp_Lin2d& L, const IntRes2d_Domain& DL, const gp_Parab2d& P, const IntRes2d_Domain& DP, const Standard_Real TolConf, const Standard_Real Tol);
0081   
0082   //! Intersection between a line and an hyperbola.
0083     IntCurve_IntConicConic(const gp_Lin2d& L, const IntRes2d_Domain& DL, const gp_Hypr2d& H, const IntRes2d_Domain& DH, const Standard_Real TolConf, const Standard_Real Tol);
0084   
0085   //! Intersection between a line and an hyperbola.
0086   Standard_EXPORT void Perform (const gp_Lin2d& L, const IntRes2d_Domain& DL, const gp_Hypr2d& H, const IntRes2d_Domain& DH, const Standard_Real TolConf, const Standard_Real Tol);
0087   
0088   //! Intersection between 2 circles from gp.
0089   //! The exception ConstructionError is raised if the method
0090   //! IsClosed of one of the domain returns False.
0091     IntCurve_IntConicConic(const gp_Circ2d& C1, const IntRes2d_Domain& D1, const gp_Circ2d& C2, const IntRes2d_Domain& D2, const Standard_Real TolConf, const Standard_Real Tol);
0092   
0093   //! Intersection between 2 circles from gp.
0094   //! The exception ConstructionError is raised if the method
0095   //! IsClosed of the domain of one of the circle returns False.
0096   Standard_EXPORT void Perform (const gp_Circ2d& C1, const IntRes2d_Domain& D1, const gp_Circ2d& C2, const IntRes2d_Domain& D2, const Standard_Real TolConf, const Standard_Real Tol);
0097   
0098   //! Intersection between a circle and an ellipse.
0099   //! The exception ConstructionError is raised if the method
0100   //! IsClosed of one the domain returns False.
0101     IntCurve_IntConicConic(const gp_Circ2d& C, const IntRes2d_Domain& DC, const gp_Elips2d& E, const IntRes2d_Domain& DE, const Standard_Real TolConf, const Standard_Real Tol);
0102   
0103   //! Intersection between a circle and an ellipse.
0104   //! The exception ConstructionError is raised if the method
0105   //! IsClosed of one the domain returns False.
0106   Standard_EXPORT void Perform (const gp_Circ2d& C, const IntRes2d_Domain& DC, const gp_Elips2d& E, const IntRes2d_Domain& DE, const Standard_Real TolConf, const Standard_Real Tol);
0107   
0108   //! Intersection between a circle and a parabola.
0109   //! The exception ConstructionError is raised if the method
0110   //! IsClosed of the domain of the circle returns False.
0111     IntCurve_IntConicConic(const gp_Circ2d& C, const IntRes2d_Domain& DC, const gp_Parab2d& P, const IntRes2d_Domain& DP, const Standard_Real TolConf, const Standard_Real Tol);
0112   
0113   //! Intersection between a circle and a parabola.
0114   //! The exception ConstructionError is raised if the method
0115   //! IsClosed of the domain of the circle returns False.
0116   Standard_EXPORT void Perform (const gp_Circ2d& C, const IntRes2d_Domain& DC, const gp_Parab2d& P, const IntRes2d_Domain& DP, const Standard_Real TolConf, const Standard_Real Tol);
0117   
0118   //! Intersection between a circle and an hyperbola.
0119   //! The exception ConstructionError is raised if the method
0120   //! IsClosed of the domain of the circle returns False.
0121     IntCurve_IntConicConic(const gp_Circ2d& C, const IntRes2d_Domain& DC, const gp_Hypr2d& H, const IntRes2d_Domain& DH, const Standard_Real TolConf, const Standard_Real Tol);
0122   
0123   //! Intersection between a circle and an hyperbola.
0124   //! The exception ConstructionError is raised if the method
0125   //! IsClosed of the domain of the circle returns False.
0126   Standard_EXPORT void Perform (const gp_Circ2d& C, const IntRes2d_Domain& DC, const gp_Hypr2d& H, const IntRes2d_Domain& DH, const Standard_Real TolConf, const Standard_Real Tol);
0127   
0128   //! Intersection between 2 ellipses.
0129   //! The exception ConstructionError is raised if the method
0130   //! IsClosed of one of the domain returns False.
0131     IntCurve_IntConicConic(const gp_Elips2d& E1, const IntRes2d_Domain& D1, const gp_Elips2d& E2, const IntRes2d_Domain& D2, const Standard_Real TolConf, const Standard_Real Tol);
0132   
0133   //! Intersection between 2 ellipses.
0134   //! The exception ConstructionError is raised if the method
0135   //! IsClosed of one of the domain returns False.
0136   Standard_EXPORT void Perform (const gp_Elips2d& E1, const IntRes2d_Domain& D1, const gp_Elips2d& E2, const IntRes2d_Domain& D2, const Standard_Real TolConf, const Standard_Real Tol);
0137   
0138   //! Intersection between an ellipse and a parabola.
0139   //! The exception ConstructionError is raised if the method
0140   //! IsClosed of the domain of the ellipse returns False.
0141     IntCurve_IntConicConic(const gp_Elips2d& E, const IntRes2d_Domain& DE, const gp_Parab2d& P, const IntRes2d_Domain& DP, const Standard_Real TolConf, const Standard_Real Tol);
0142   
0143   //! Intersection between an ellipse and a parabola.
0144   //! The exception ConstructionError is raised if the method
0145   //! IsClosed of the domain of the ellipse returns False.
0146   Standard_EXPORT void Perform (const gp_Elips2d& E, const IntRes2d_Domain& DE, const gp_Parab2d& P, const IntRes2d_Domain& DP, const Standard_Real TolConf, const Standard_Real Tol);
0147   
0148   //! Intersection between an ellipse and an hyperbola.
0149   //! The exception ConstructionError is raised if the method
0150   //! IsClosed of the domain of the ellipse returns False.
0151     IntCurve_IntConicConic(const gp_Elips2d& E, const IntRes2d_Domain& DE, const gp_Hypr2d& H, const IntRes2d_Domain& DH, const Standard_Real TolConf, const Standard_Real Tol);
0152   
0153   //! Intersection between an ellipse and an hyperbola.
0154   //! The exception ConstructionError is raised if the method
0155   //! IsClosed of the domain of the ellipse returns False.
0156   Standard_EXPORT void Perform (const gp_Elips2d& E, const IntRes2d_Domain& DE, const gp_Hypr2d& H, const IntRes2d_Domain& DH, const Standard_Real TolConf, const Standard_Real Tol);
0157   
0158   //! Intersection between 2 parabolas.
0159     IntCurve_IntConicConic(const gp_Parab2d& P1, const IntRes2d_Domain& D1, const gp_Parab2d& P2, const IntRes2d_Domain& D2, const Standard_Real TolConf, const Standard_Real Tol);
0160   
0161   //! Intersection between 2 parabolas.
0162   Standard_EXPORT void Perform (const gp_Parab2d& P1, const IntRes2d_Domain& D1, const gp_Parab2d& P2, const IntRes2d_Domain& D2, const Standard_Real TolConf, const Standard_Real Tol);
0163   
0164   //! Intersection between a parabola and an hyperbola.
0165     IntCurve_IntConicConic(const gp_Parab2d& P, const IntRes2d_Domain& DP, const gp_Hypr2d& H, const IntRes2d_Domain& DH, const Standard_Real TolConf, const Standard_Real Tol);
0166   
0167   //! Intersection between a parabola and an hyperbola.
0168   Standard_EXPORT void Perform (const gp_Parab2d& P, const IntRes2d_Domain& DP, const gp_Hypr2d& H, const IntRes2d_Domain& DH, const Standard_Real TolConf, const Standard_Real Tol);
0169   
0170   //! Intersection between 2 hyperbolas.
0171     IntCurve_IntConicConic(const gp_Hypr2d& H1, const IntRes2d_Domain& D1, const gp_Hypr2d& H2, const IntRes2d_Domain& D2, const Standard_Real TolConf, const Standard_Real Tol);
0172   
0173   //! Intersection between 2 hyperbolas.
0174   Standard_EXPORT void Perform (const gp_Hypr2d& H1, const IntRes2d_Domain& D1, const gp_Hypr2d& H2, const IntRes2d_Domain& D2, const Standard_Real TolConf, const Standard_Real Tol);
0175 
0176 
0177 
0178 
0179 protected:
0180 
0181 
0182 
0183 
0184 
0185 private:
0186 
0187 
0188 
0189   IntCurve_IntImpConicParConic Inter;
0190 
0191 
0192 };
0193 
0194 
0195 #include <IntCurve_IntConicConic.lxx>
0196 
0197 
0198 
0199 
0200 
0201 #endif // _IntCurve_IntConicConic_HeaderFile