File indexing completed on 2026-09-04 09:18:33
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _Extrema_ExtCC2d_HeaderFile
0018 #define _Extrema_ExtCC2d_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022
0023 #include <Extrema_SequenceOfPOnCurv2d.hxx>
0024 #include <TColStd_SequenceOfReal.hxx>
0025 #include <Standard_Integer.hxx>
0026 #include <gp_Pnt2d.hxx>
0027
0028 class Adaptor2d_Curve2d;
0029 class Extrema_POnCurv2d;
0030 class Extrema_ExtElC2d;
0031 class Extrema_ECC2d;
0032
0033
0034
0035 class Extrema_ExtCC2d
0036 {
0037 public:
0038 DEFINE_STANDARD_ALLOC
0039
0040 Standard_EXPORT Extrema_ExtCC2d();
0041
0042
0043 Standard_EXPORT Extrema_ExtCC2d(const Adaptor2d_Curve2d& C1,
0044 const Adaptor2d_Curve2d& C2,
0045 const Standard_Real TolC1 = 1.0e-10,
0046 const Standard_Real TolC2 = 1.0e-10);
0047
0048
0049 Standard_EXPORT Extrema_ExtCC2d(const Adaptor2d_Curve2d& C1,
0050 const Adaptor2d_Curve2d& C2,
0051 const Standard_Real U1,
0052 const Standard_Real U2,
0053 const Standard_Real V1,
0054 const Standard_Real V2,
0055 const Standard_Real TolC1 = 1.0e-10,
0056 const Standard_Real TolC2 = 1.0e-10);
0057
0058
0059 Standard_EXPORT void Initialize(const Adaptor2d_Curve2d& C2,
0060 const Standard_Real V1,
0061 const Standard_Real V2,
0062 const Standard_Real TolC1 = 1.0e-10,
0063 const Standard_Real TolC2 = 1.0e-10);
0064
0065 Standard_EXPORT void Perform(const Adaptor2d_Curve2d& C1,
0066 const Standard_Real U1,
0067 const Standard_Real U2);
0068
0069
0070 Standard_EXPORT Standard_Boolean IsDone() const;
0071
0072
0073 Standard_EXPORT Standard_Integer NbExt() const;
0074
0075
0076 Standard_EXPORT Standard_Boolean IsParallel() const;
0077
0078
0079 Standard_EXPORT Standard_Real SquareDistance(const Standard_Integer N = 1) const;
0080
0081
0082
0083 Standard_EXPORT void Points(const Standard_Integer N,
0084 Extrema_POnCurv2d& P1,
0085 Extrema_POnCurv2d& P2) const;
0086
0087
0088
0089
0090
0091 Standard_EXPORT void TrimmedSquareDistances(Standard_Real& dist11,
0092 Standard_Real& distP12,
0093 Standard_Real& distP21,
0094 Standard_Real& distP22,
0095 gp_Pnt2d& P11,
0096 gp_Pnt2d& P12,
0097 gp_Pnt2d& P21,
0098 gp_Pnt2d& P22) const;
0099
0100
0101 Standard_EXPORT void SetSingleSolutionFlag(const Standard_Boolean theSingleSolutionFlag);
0102
0103
0104 Standard_EXPORT Standard_Boolean GetSingleSolutionFlag() const;
0105
0106 protected:
0107 Standard_EXPORT void Results(const Extrema_ExtElC2d& AlgExt,
0108 const Standard_Real Ut11,
0109 const Standard_Real Ut12,
0110 const Standard_Real Ut21,
0111 const Standard_Real Ut22,
0112 const Standard_Real Period1 = 0.0,
0113 const Standard_Real Period2 = 0.0);
0114
0115 Standard_EXPORT void Results(const Extrema_ECC2d& AlgExt,
0116 const Standard_Real Ut11,
0117 const Standard_Real Ut12,
0118 const Standard_Real Ut21,
0119 const Standard_Real Ut22,
0120 const Standard_Real Period1 = 0.0,
0121 const Standard_Real Period2 = 0.0);
0122
0123 private:
0124 Standard_Boolean myIsFindSingleSolution;
0125 Standard_Boolean myDone;
0126 Standard_Boolean myIsPar;
0127 Extrema_SequenceOfPOnCurv2d mypoints;
0128 TColStd_SequenceOfReal mySqDist;
0129 Standard_Integer mynbext;
0130 Standard_Boolean inverse;
0131 const Adaptor2d_Curve2d* myC;
0132 Standard_Real myv1;
0133 Standard_Real myv2;
0134 Standard_Real mytolc1;
0135 Standard_Real mytolc2;
0136 gp_Pnt2d P1f;
0137 gp_Pnt2d P1l;
0138 gp_Pnt2d P2f;
0139 gp_Pnt2d P2l;
0140 Standard_Real mydist11;
0141 Standard_Real mydist12;
0142 Standard_Real mydist21;
0143 Standard_Real mydist22;
0144 };
0145
0146 #endif