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