Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:03:51

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_CInter_HeaderFile
0018 #define _HLRBRep_CInter_HeaderFile
0019 
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 
0023 #include <IntCurve_IntConicConic.hxx>
0024 #include <HLRBRep_TheIntConicCurveOfCInter.hxx>
0025 #include <HLRBRep_TheIntPCurvePCurveOfCInter.hxx>
0026 #include <IntRes2d_Intersection.hxx>
0027 #include <Standard_Integer.hxx>
0028 #include <TColStd_Array1OfReal.hxx>
0029 class Standard_ConstructionError;
0030 class HLRBRep_CurveTool;
0031 class HLRBRep_TheProjPCurOfCInter;
0032 class HLRBRep_TheCurveLocatorOfTheProjPCurOfCInter;
0033 class HLRBRep_TheLocateExtPCOfTheProjPCurOfCInter;
0034 class HLRBRep_TheIntConicCurveOfCInter;
0035 class HLRBRep_TheIntersectorOfTheIntConicCurveOfCInter;
0036 class HLRBRep_IntConicCurveOfCInter;
0037 class HLRBRep_TheIntPCurvePCurveOfCInter;
0038 class HLRBRep_ThePolygon2dOfTheIntPCurvePCurveOfCInter;
0039 class HLRBRep_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfCInter;
0040 class HLRBRep_ExactIntersectionPointOfTheIntPCurvePCurveOfCInter;
0041 class IntRes2d_Domain;
0042 
0043 
0044 
0045 class HLRBRep_CInter  : public IntRes2d_Intersection
0046 {
0047 public:
0048 
0049   DEFINE_STANDARD_ALLOC
0050 
0051   
0052   //! Empty constructor.
0053     HLRBRep_CInter();
0054   
0055   //! Self Intersection of a curve
0056     HLRBRep_CInter(const Standard_Address& C, const Standard_Real TolConf, const Standard_Real Tol);
0057   
0058   //! Self Intersection of a curve with a domain.
0059     HLRBRep_CInter(const Standard_Address& C, const IntRes2d_Domain& D, const Standard_Real TolConf, const Standard_Real Tol);
0060   
0061   //! Intersection between 2 curves.
0062     HLRBRep_CInter(const Standard_Address& C1, const Standard_Address& C2, const Standard_Real TolConf, const Standard_Real Tol);
0063   
0064   //! Intersection between 2 curves.
0065     HLRBRep_CInter(const Standard_Address& C1, const IntRes2d_Domain& D1, const Standard_Address& C2, const Standard_Real TolConf, const Standard_Real Tol);
0066   
0067   //! Intersection between 2 curves.
0068     HLRBRep_CInter(const Standard_Address& C1, const Standard_Address& C2, const IntRes2d_Domain& D2, const Standard_Real TolConf, const Standard_Real Tol);
0069   
0070   //! Intersection between 2 curves.
0071     HLRBRep_CInter(const Standard_Address& C1, const IntRes2d_Domain& D1, const Standard_Address& C2, const IntRes2d_Domain& D2, const Standard_Real TolConf, const Standard_Real Tol);
0072   
0073   //! Intersection between 2 curves.
0074   Standard_EXPORT void Perform (const Standard_Address& C1, const IntRes2d_Domain& D1, const Standard_Address& C2, const IntRes2d_Domain& D2, const Standard_Real TolConf, const Standard_Real Tol);
0075   
0076   //! Intersection between 2 curves.
0077     void Perform (const Standard_Address& C1, const Standard_Address& C2, const Standard_Real TolConf, const Standard_Real Tol);
0078   
0079   //! Intersection between 2 curves.
0080   Standard_EXPORT void Perform (const Standard_Address& C1, const IntRes2d_Domain& D1, const Standard_Real TolConf, const Standard_Real Tol);
0081   
0082   //! Intersection between 2 curves.
0083   Standard_EXPORT void Perform (const Standard_Address& C1, const Standard_Real TolConf, const Standard_Real Tol);
0084   
0085   //! Intersection between 2 curves.
0086     void Perform (const Standard_Address& C1, const IntRes2d_Domain& D1, const Standard_Address& C2, const Standard_Real TolConf, const Standard_Real Tol);
0087   
0088   //! Intersection between 2 curves.
0089     void Perform (const Standard_Address& C1, const Standard_Address& C2, const IntRes2d_Domain& D2, const Standard_Real TolConf, const Standard_Real Tol);
0090   
0091   //! Create a domain from a curve
0092   Standard_EXPORT IntRes2d_Domain ComputeDomain (const Standard_Address& C1, const Standard_Real TolDomain) const;
0093 
0094   //! Set / get minimum number of points in polygon intersection.
0095   Standard_EXPORT void SetMinNbSamples (const Standard_Integer theMinNbSamples);
0096   Standard_EXPORT Standard_Integer GetMinNbSamples () const;
0097 
0098 
0099 protected:
0100 
0101 
0102 
0103 
0104 
0105 private:
0106 
0107   
0108   //! Intersection between 2 curves.
0109   Standard_EXPORT void InternalPerform (const Standard_Address& C1, const IntRes2d_Domain& D1, const Standard_Address& C2, const IntRes2d_Domain& D2, const Standard_Real TolConf, const Standard_Real Tol, const Standard_Boolean Composite);
0110   
0111   //! Part of InternalCompositePerform function
0112   Standard_EXPORT void InternalCompositePerform_noRecurs (const Standard_Integer NbInterC1, const Standard_Address& C1, const Standard_Integer NumInterC1, const TColStd_Array1OfReal& Tab1, const IntRes2d_Domain& D1, const Standard_Integer NbInterC2, const Standard_Address& C2, const Standard_Integer NumInterC2, const TColStd_Array1OfReal& Tab2, const IntRes2d_Domain& D2, const Standard_Real TolConf, const Standard_Real Tol);
0113   
0114   //! Intersection between 2 curves.
0115   Standard_EXPORT void InternalCompositePerform (const Standard_Address& C1, const IntRes2d_Domain& D1, const Standard_Integer N1, const Standard_Integer NB1, const TColStd_Array1OfReal& Tab1, const Standard_Address& C2, const IntRes2d_Domain& D2, const Standard_Integer N2, const Standard_Integer NB2, const TColStd_Array1OfReal& Tab2, const Standard_Real TolConf, const Standard_Real Tol, const Standard_Boolean Composite);
0116 
0117 
0118   Standard_Real param1inf;
0119   Standard_Real param1sup;
0120   Standard_Real param2inf;
0121   Standard_Real param2sup;
0122   IntCurve_IntConicConic intconiconi;
0123   HLRBRep_TheIntConicCurveOfCInter intconicurv;
0124   HLRBRep_TheIntPCurvePCurveOfCInter intcurvcurv;
0125 
0126 
0127 };
0128 
0129 #define TheCurve Standard_Address
0130 #define TheCurve_hxx <Standard_Address.hxx>
0131 #define TheCurveTool HLRBRep_CurveTool
0132 #define TheCurveTool_hxx <HLRBRep_CurveTool.hxx>
0133 #define IntCurve_TheProjPCur HLRBRep_TheProjPCurOfCInter
0134 #define IntCurve_TheProjPCur_hxx <HLRBRep_TheProjPCurOfCInter.hxx>
0135 #define IntCurve_TheCurveLocatorOfTheProjPCur HLRBRep_TheCurveLocatorOfTheProjPCurOfCInter
0136 #define IntCurve_TheCurveLocatorOfTheProjPCur_hxx <HLRBRep_TheCurveLocatorOfTheProjPCurOfCInter.hxx>
0137 #define IntCurve_TheLocateExtPCOfTheProjPCur HLRBRep_TheLocateExtPCOfTheProjPCurOfCInter
0138 #define IntCurve_TheLocateExtPCOfTheProjPCur_hxx <HLRBRep_TheLocateExtPCOfTheProjPCurOfCInter.hxx>
0139 #define IntCurve_TheCurveLocatorOfTheProjPCur HLRBRep_TheCurveLocatorOfTheProjPCurOfCInter
0140 #define IntCurve_TheCurveLocatorOfTheProjPCur_hxx <HLRBRep_TheCurveLocatorOfTheProjPCurOfCInter.hxx>
0141 #define IntCurve_TheLocateExtPCOfTheProjPCur HLRBRep_TheLocateExtPCOfTheProjPCurOfCInter
0142 #define IntCurve_TheLocateExtPCOfTheProjPCur_hxx <HLRBRep_TheLocateExtPCOfTheProjPCurOfCInter.hxx>
0143 #define IntCurve_TheIntConicCurve HLRBRep_TheIntConicCurveOfCInter
0144 #define IntCurve_TheIntConicCurve_hxx <HLRBRep_TheIntConicCurveOfCInter.hxx>
0145 #define IntCurve_TheIntersectorOfTheIntConicCurve HLRBRep_TheIntersectorOfTheIntConicCurveOfCInter
0146 #define IntCurve_TheIntersectorOfTheIntConicCurve_hxx <HLRBRep_TheIntersectorOfTheIntConicCurveOfCInter.hxx>
0147 #define IntCurve_TheIntersectorOfTheIntConicCurve HLRBRep_TheIntersectorOfTheIntConicCurveOfCInter
0148 #define IntCurve_TheIntersectorOfTheIntConicCurve_hxx <HLRBRep_TheIntersectorOfTheIntConicCurveOfCInter.hxx>
0149 #define IntCurve_IntConicCurve HLRBRep_IntConicCurveOfCInter
0150 #define IntCurve_IntConicCurve_hxx <HLRBRep_IntConicCurveOfCInter.hxx>
0151 #define IntCurve_TheIntPCurvePCurve HLRBRep_TheIntPCurvePCurveOfCInter
0152 #define IntCurve_TheIntPCurvePCurve_hxx <HLRBRep_TheIntPCurvePCurveOfCInter.hxx>
0153 #define IntCurve_ThePolygon2dOfTheIntPCurvePCurve HLRBRep_ThePolygon2dOfTheIntPCurvePCurveOfCInter
0154 #define IntCurve_ThePolygon2dOfTheIntPCurvePCurve_hxx <HLRBRep_ThePolygon2dOfTheIntPCurvePCurveOfCInter.hxx>
0155 #define IntCurve_TheDistBetweenPCurvesOfTheIntPCurvePCurve HLRBRep_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfCInter
0156 #define IntCurve_TheDistBetweenPCurvesOfTheIntPCurvePCurve_hxx <HLRBRep_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfCInter.hxx>
0157 #define IntCurve_ExactIntersectionPointOfTheIntPCurvePCurve HLRBRep_ExactIntersectionPointOfTheIntPCurvePCurveOfCInter
0158 #define IntCurve_ExactIntersectionPointOfTheIntPCurvePCurve_hxx <HLRBRep_ExactIntersectionPointOfTheIntPCurvePCurveOfCInter.hxx>
0159 #define IntCurve_ThePolygon2dOfTheIntPCurvePCurve HLRBRep_ThePolygon2dOfTheIntPCurvePCurveOfCInter
0160 #define IntCurve_ThePolygon2dOfTheIntPCurvePCurve_hxx <HLRBRep_ThePolygon2dOfTheIntPCurvePCurveOfCInter.hxx>
0161 #define IntCurve_TheDistBetweenPCurvesOfTheIntPCurvePCurve HLRBRep_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfCInter
0162 #define IntCurve_TheDistBetweenPCurvesOfTheIntPCurvePCurve_hxx <HLRBRep_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfCInter.hxx>
0163 #define IntCurve_ExactIntersectionPointOfTheIntPCurvePCurve HLRBRep_ExactIntersectionPointOfTheIntPCurvePCurveOfCInter
0164 #define IntCurve_ExactIntersectionPointOfTheIntPCurvePCurve_hxx <HLRBRep_ExactIntersectionPointOfTheIntPCurvePCurveOfCInter.hxx>
0165 #define IntCurve_IntCurveCurveGen HLRBRep_CInter
0166 #define IntCurve_IntCurveCurveGen_hxx <HLRBRep_CInter.hxx>
0167 
0168 #include <IntCurve_IntCurveCurveGen.lxx>
0169 
0170 #undef TheCurve
0171 #undef TheCurve_hxx
0172 #undef TheCurveTool
0173 #undef TheCurveTool_hxx
0174 #undef IntCurve_TheProjPCur
0175 #undef IntCurve_TheProjPCur_hxx
0176 #undef IntCurve_TheCurveLocatorOfTheProjPCur
0177 #undef IntCurve_TheCurveLocatorOfTheProjPCur_hxx
0178 #undef IntCurve_TheLocateExtPCOfTheProjPCur
0179 #undef IntCurve_TheLocateExtPCOfTheProjPCur_hxx
0180 #undef IntCurve_TheCurveLocatorOfTheProjPCur
0181 #undef IntCurve_TheCurveLocatorOfTheProjPCur_hxx
0182 #undef IntCurve_TheLocateExtPCOfTheProjPCur
0183 #undef IntCurve_TheLocateExtPCOfTheProjPCur_hxx
0184 #undef IntCurve_TheIntConicCurve
0185 #undef IntCurve_TheIntConicCurve_hxx
0186 #undef IntCurve_TheIntersectorOfTheIntConicCurve
0187 #undef IntCurve_TheIntersectorOfTheIntConicCurve_hxx
0188 #undef IntCurve_TheIntersectorOfTheIntConicCurve
0189 #undef IntCurve_TheIntersectorOfTheIntConicCurve_hxx
0190 #undef IntCurve_IntConicCurve
0191 #undef IntCurve_IntConicCurve_hxx
0192 #undef IntCurve_TheIntPCurvePCurve
0193 #undef IntCurve_TheIntPCurvePCurve_hxx
0194 #undef IntCurve_ThePolygon2dOfTheIntPCurvePCurve
0195 #undef IntCurve_ThePolygon2dOfTheIntPCurvePCurve_hxx
0196 #undef IntCurve_TheDistBetweenPCurvesOfTheIntPCurvePCurve
0197 #undef IntCurve_TheDistBetweenPCurvesOfTheIntPCurvePCurve_hxx
0198 #undef IntCurve_ExactIntersectionPointOfTheIntPCurvePCurve
0199 #undef IntCurve_ExactIntersectionPointOfTheIntPCurvePCurve_hxx
0200 #undef IntCurve_ThePolygon2dOfTheIntPCurvePCurve
0201 #undef IntCurve_ThePolygon2dOfTheIntPCurvePCurve_hxx
0202 #undef IntCurve_TheDistBetweenPCurvesOfTheIntPCurvePCurve
0203 #undef IntCurve_TheDistBetweenPCurvesOfTheIntPCurvePCurve_hxx
0204 #undef IntCurve_ExactIntersectionPointOfTheIntPCurvePCurve
0205 #undef IntCurve_ExactIntersectionPointOfTheIntPCurvePCurve_hxx
0206 #undef IntCurve_IntCurveCurveGen
0207 #undef IntCurve_IntCurveCurveGen_hxx
0208 
0209 
0210 
0211 
0212 #endif // _HLRBRep_CInter_HeaderFile