File indexing completed on 2026-06-25 08:29:31
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _Geom2dInt_GInter_HeaderFile
0018 #define _Geom2dInt_GInter_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022
0023 #include <IntCurve_IntConicConic.hxx>
0024 #include <Geom2dInt_TheIntConicCurveOfGInter.hxx>
0025 #include <Geom2dInt_TheIntPCurvePCurveOfGInter.hxx>
0026 #include <IntRes2d_Intersection.hxx>
0027 #include <Standard_Integer.hxx>
0028 #include <TColStd_Array1OfReal.hxx>
0029 class Standard_ConstructionError;
0030 class Adaptor2d_Curve2d;
0031 class Geom2dInt_Geom2dCurveTool;
0032 class Geom2dInt_TheProjPCurOfGInter;
0033 class Geom2dInt_TheCurveLocatorOfTheProjPCurOfGInter;
0034 class Geom2dInt_TheLocateExtPCOfTheProjPCurOfGInter;
0035 class Geom2dInt_TheIntConicCurveOfGInter;
0036 class Geom2dInt_TheIntersectorOfTheIntConicCurveOfGInter;
0037 class Geom2dInt_IntConicCurveOfGInter;
0038 class Geom2dInt_TheIntPCurvePCurveOfGInter;
0039 class Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter;
0040 class Geom2dInt_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfGInter;
0041 class Geom2dInt_ExactIntersectionPointOfTheIntPCurvePCurveOfGInter;
0042 class IntRes2d_Domain;
0043
0044 class Geom2dInt_GInter : public IntRes2d_Intersection
0045 {
0046 public:
0047 DEFINE_STANDARD_ALLOC
0048
0049
0050 Geom2dInt_GInter();
0051
0052
0053 Geom2dInt_GInter(const Adaptor2d_Curve2d& C,
0054 const Standard_Real TolConf,
0055 const Standard_Real Tol);
0056
0057
0058 Geom2dInt_GInter(const Adaptor2d_Curve2d& C,
0059 const IntRes2d_Domain& D,
0060 const Standard_Real TolConf,
0061 const Standard_Real Tol);
0062
0063
0064 Geom2dInt_GInter(const Adaptor2d_Curve2d& C1,
0065 const Adaptor2d_Curve2d& C2,
0066 const Standard_Real TolConf,
0067 const Standard_Real Tol);
0068
0069
0070 Geom2dInt_GInter(const Adaptor2d_Curve2d& C1,
0071 const IntRes2d_Domain& D1,
0072 const Adaptor2d_Curve2d& C2,
0073 const Standard_Real TolConf,
0074 const Standard_Real Tol);
0075
0076
0077 Geom2dInt_GInter(const Adaptor2d_Curve2d& C1,
0078 const Adaptor2d_Curve2d& C2,
0079 const IntRes2d_Domain& D2,
0080 const Standard_Real TolConf,
0081 const Standard_Real Tol);
0082
0083
0084 Geom2dInt_GInter(const Adaptor2d_Curve2d& C1,
0085 const IntRes2d_Domain& D1,
0086 const Adaptor2d_Curve2d& C2,
0087 const IntRes2d_Domain& D2,
0088 const Standard_Real TolConf,
0089 const Standard_Real Tol);
0090
0091
0092 Standard_EXPORT void Perform(const Adaptor2d_Curve2d& C1,
0093 const IntRes2d_Domain& D1,
0094 const Adaptor2d_Curve2d& C2,
0095 const IntRes2d_Domain& D2,
0096 const Standard_Real TolConf,
0097 const Standard_Real Tol);
0098
0099
0100 void Perform(const Adaptor2d_Curve2d& C1,
0101 const Adaptor2d_Curve2d& C2,
0102 const Standard_Real TolConf,
0103 const Standard_Real Tol);
0104
0105
0106 Standard_EXPORT void Perform(const Adaptor2d_Curve2d& C1,
0107 const IntRes2d_Domain& D1,
0108 const Standard_Real TolConf,
0109 const Standard_Real Tol);
0110
0111
0112 Standard_EXPORT void Perform(const Adaptor2d_Curve2d& C1,
0113 const Standard_Real TolConf,
0114 const Standard_Real Tol);
0115
0116
0117 void Perform(const Adaptor2d_Curve2d& C1,
0118 const IntRes2d_Domain& D1,
0119 const Adaptor2d_Curve2d& C2,
0120 const Standard_Real TolConf,
0121 const Standard_Real Tol);
0122
0123
0124 void Perform(const Adaptor2d_Curve2d& C1,
0125 const Adaptor2d_Curve2d& C2,
0126 const IntRes2d_Domain& D2,
0127 const Standard_Real TolConf,
0128 const Standard_Real Tol);
0129
0130
0131 Standard_EXPORT IntRes2d_Domain ComputeDomain(const Adaptor2d_Curve2d& C1,
0132 const Standard_Real TolDomain) const;
0133
0134
0135 Standard_EXPORT void SetMinNbSamples(const Standard_Integer theMinNbSamples);
0136 Standard_EXPORT Standard_Integer GetMinNbSamples() const;
0137
0138 protected:
0139 private:
0140
0141 Standard_EXPORT void InternalPerform(const Adaptor2d_Curve2d& C1,
0142 const IntRes2d_Domain& D1,
0143 const Adaptor2d_Curve2d& C2,
0144 const IntRes2d_Domain& D2,
0145 const Standard_Real TolConf,
0146 const Standard_Real Tol,
0147 const Standard_Boolean Composite);
0148
0149
0150 Standard_EXPORT void InternalCompositePerform_noRecurs(const Standard_Integer NbInterC1,
0151 const Adaptor2d_Curve2d& C1,
0152 const Standard_Integer NumInterC1,
0153 const TColStd_Array1OfReal& Tab1,
0154 const IntRes2d_Domain& D1,
0155 const Standard_Integer NbInterC2,
0156 const Adaptor2d_Curve2d& C2,
0157 const Standard_Integer NumInterC2,
0158 const TColStd_Array1OfReal& Tab2,
0159 const IntRes2d_Domain& D2,
0160 const Standard_Real TolConf,
0161 const Standard_Real Tol);
0162
0163
0164 Standard_EXPORT void InternalCompositePerform(const Adaptor2d_Curve2d& C1,
0165 const IntRes2d_Domain& D1,
0166 const Standard_Integer N1,
0167 const Standard_Integer NB1,
0168 const TColStd_Array1OfReal& Tab1,
0169 const Adaptor2d_Curve2d& C2,
0170 const IntRes2d_Domain& D2,
0171 const Standard_Integer N2,
0172 const Standard_Integer NB2,
0173 const TColStd_Array1OfReal& Tab2,
0174 const Standard_Real TolConf,
0175 const Standard_Real Tol,
0176 const Standard_Boolean Composite);
0177
0178 Standard_Real param1inf;
0179 Standard_Real param1sup;
0180 Standard_Real param2inf;
0181 Standard_Real param2sup;
0182 IntCurve_IntConicConic intconiconi;
0183 Geom2dInt_TheIntConicCurveOfGInter intconicurv;
0184 Geom2dInt_TheIntPCurvePCurveOfGInter intcurvcurv;
0185 };
0186
0187 #define TheCurve Adaptor2d_Curve2d
0188 #define TheCurve_hxx <Adaptor2d_Curve2d.hxx>
0189 #define TheCurveTool Geom2dInt_Geom2dCurveTool
0190 #define TheCurveTool_hxx <Geom2dInt_Geom2dCurveTool.hxx>
0191 #define IntCurve_TheProjPCur Geom2dInt_TheProjPCurOfGInter
0192 #define IntCurve_TheProjPCur_hxx <Geom2dInt_TheProjPCurOfGInter.hxx>
0193 #define IntCurve_TheCurveLocatorOfTheProjPCur Geom2dInt_TheCurveLocatorOfTheProjPCurOfGInter
0194 #define IntCurve_TheCurveLocatorOfTheProjPCur_hxx \
0195 <Geom2dInt_TheCurveLocatorOfTheProjPCurOfGInter.hxx>
0196 #define IntCurve_TheLocateExtPCOfTheProjPCur Geom2dInt_TheLocateExtPCOfTheProjPCurOfGInter
0197 #define IntCurve_TheLocateExtPCOfTheProjPCur_hxx \
0198 <Geom2dInt_TheLocateExtPCOfTheProjPCurOfGInter.hxx>
0199 #define IntCurve_TheCurveLocatorOfTheProjPCur Geom2dInt_TheCurveLocatorOfTheProjPCurOfGInter
0200 #define IntCurve_TheCurveLocatorOfTheProjPCur_hxx \
0201 <Geom2dInt_TheCurveLocatorOfTheProjPCurOfGInter.hxx>
0202 #define IntCurve_TheLocateExtPCOfTheProjPCur Geom2dInt_TheLocateExtPCOfTheProjPCurOfGInter
0203 #define IntCurve_TheLocateExtPCOfTheProjPCur_hxx \
0204 <Geom2dInt_TheLocateExtPCOfTheProjPCurOfGInter.hxx>
0205 #define IntCurve_TheIntConicCurve Geom2dInt_TheIntConicCurveOfGInter
0206 #define IntCurve_TheIntConicCurve_hxx <Geom2dInt_TheIntConicCurveOfGInter.hxx>
0207 #define IntCurve_TheIntersectorOfTheIntConicCurve Geom2dInt_TheIntersectorOfTheIntConicCurveOfGInter
0208 #define IntCurve_TheIntersectorOfTheIntConicCurve_hxx \
0209 <Geom2dInt_TheIntersectorOfTheIntConicCurveOfGInter.hxx>
0210 #define IntCurve_TheIntersectorOfTheIntConicCurve Geom2dInt_TheIntersectorOfTheIntConicCurveOfGInter
0211 #define IntCurve_TheIntersectorOfTheIntConicCurve_hxx \
0212 <Geom2dInt_TheIntersectorOfTheIntConicCurveOfGInter.hxx>
0213 #define IntCurve_IntConicCurve Geom2dInt_IntConicCurveOfGInter
0214 #define IntCurve_IntConicCurve_hxx <Geom2dInt_IntConicCurveOfGInter.hxx>
0215 #define IntCurve_TheIntPCurvePCurve Geom2dInt_TheIntPCurvePCurveOfGInter
0216 #define IntCurve_TheIntPCurvePCurve_hxx <Geom2dInt_TheIntPCurvePCurveOfGInter.hxx>
0217 #define IntCurve_ThePolygon2dOfTheIntPCurvePCurve Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter
0218 #define IntCurve_ThePolygon2dOfTheIntPCurvePCurve_hxx \
0219 <Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter.hxx>
0220 #define IntCurve_TheDistBetweenPCurvesOfTheIntPCurvePCurve \
0221 Geom2dInt_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfGInter
0222 #define IntCurve_TheDistBetweenPCurvesOfTheIntPCurvePCurve_hxx \
0223 <Geom2dInt_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfGInter.hxx>
0224 #define IntCurve_ExactIntersectionPointOfTheIntPCurvePCurve \
0225 Geom2dInt_ExactIntersectionPointOfTheIntPCurvePCurveOfGInter
0226 #define IntCurve_ExactIntersectionPointOfTheIntPCurvePCurve_hxx \
0227 <Geom2dInt_ExactIntersectionPointOfTheIntPCurvePCurveOfGInter.hxx>
0228 #define IntCurve_ThePolygon2dOfTheIntPCurvePCurve Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter
0229 #define IntCurve_ThePolygon2dOfTheIntPCurvePCurve_hxx \
0230 <Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter.hxx>
0231 #define IntCurve_TheDistBetweenPCurvesOfTheIntPCurvePCurve \
0232 Geom2dInt_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfGInter
0233 #define IntCurve_TheDistBetweenPCurvesOfTheIntPCurvePCurve_hxx \
0234 <Geom2dInt_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfGInter.hxx>
0235 #define IntCurve_ExactIntersectionPointOfTheIntPCurvePCurve \
0236 Geom2dInt_ExactIntersectionPointOfTheIntPCurvePCurveOfGInter
0237 #define IntCurve_ExactIntersectionPointOfTheIntPCurvePCurve_hxx \
0238 <Geom2dInt_ExactIntersectionPointOfTheIntPCurvePCurveOfGInter.hxx>
0239 #define IntCurve_IntCurveCurveGen Geom2dInt_GInter
0240 #define IntCurve_IntCurveCurveGen_hxx <Geom2dInt_GInter.hxx>
0241
0242 #include <IntCurve_IntCurveCurveGen.lxx>
0243
0244 #undef TheCurve
0245 #undef TheCurve_hxx
0246 #undef TheCurveTool
0247 #undef TheCurveTool_hxx
0248 #undef IntCurve_TheProjPCur
0249 #undef IntCurve_TheProjPCur_hxx
0250 #undef IntCurve_TheCurveLocatorOfTheProjPCur
0251 #undef IntCurve_TheCurveLocatorOfTheProjPCur_hxx
0252 #undef IntCurve_TheLocateExtPCOfTheProjPCur
0253 #undef IntCurve_TheLocateExtPCOfTheProjPCur_hxx
0254 #undef IntCurve_TheCurveLocatorOfTheProjPCur
0255 #undef IntCurve_TheCurveLocatorOfTheProjPCur_hxx
0256 #undef IntCurve_TheLocateExtPCOfTheProjPCur
0257 #undef IntCurve_TheLocateExtPCOfTheProjPCur_hxx
0258 #undef IntCurve_TheIntConicCurve
0259 #undef IntCurve_TheIntConicCurve_hxx
0260 #undef IntCurve_TheIntersectorOfTheIntConicCurve
0261 #undef IntCurve_TheIntersectorOfTheIntConicCurve_hxx
0262 #undef IntCurve_TheIntersectorOfTheIntConicCurve
0263 #undef IntCurve_TheIntersectorOfTheIntConicCurve_hxx
0264 #undef IntCurve_IntConicCurve
0265 #undef IntCurve_IntConicCurve_hxx
0266 #undef IntCurve_TheIntPCurvePCurve
0267 #undef IntCurve_TheIntPCurvePCurve_hxx
0268 #undef IntCurve_ThePolygon2dOfTheIntPCurvePCurve
0269 #undef IntCurve_ThePolygon2dOfTheIntPCurvePCurve_hxx
0270 #undef IntCurve_TheDistBetweenPCurvesOfTheIntPCurvePCurve
0271 #undef IntCurve_TheDistBetweenPCurvesOfTheIntPCurvePCurve_hxx
0272 #undef IntCurve_ExactIntersectionPointOfTheIntPCurvePCurve
0273 #undef IntCurve_ExactIntersectionPointOfTheIntPCurvePCurve_hxx
0274 #undef IntCurve_ThePolygon2dOfTheIntPCurvePCurve
0275 #undef IntCurve_ThePolygon2dOfTheIntPCurvePCurve_hxx
0276 #undef IntCurve_TheDistBetweenPCurvesOfTheIntPCurvePCurve
0277 #undef IntCurve_TheDistBetweenPCurvesOfTheIntPCurvePCurve_hxx
0278 #undef IntCurve_ExactIntersectionPointOfTheIntPCurvePCurve
0279 #undef IntCurve_ExactIntersectionPointOfTheIntPCurvePCurve_hxx
0280 #undef IntCurve_IntCurveCurveGen
0281 #undef IntCurve_IntCurveCurveGen_hxx
0282
0283 #endif