File indexing completed on 2026-09-15 09:15:26
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _Extrema_ExtPS_HeaderFile
0018 #define _Extrema_ExtPS_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023
0024 #include <Extrema_ExtPElS.hxx>
0025 #include <Extrema_GenExtPS.hxx>
0026 #include <Extrema_POnSurf.hxx>
0027 #include <NCollection_Sequence.hxx>
0028 #include <gp_Pnt.hxx>
0029 #include <GeomAbs_SurfaceType.hxx>
0030 #include <Extrema_ExtFlag.hxx>
0031 #include <Extrema_ExtAlgo.hxx>
0032 #include <Standard_Integer.hxx>
0033 class Extrema_ExtPExtS;
0034 class Extrema_ExtPRevS;
0035 class Adaptor3d_Surface;
0036 class Extrema_POnSurf;
0037
0038
0039
0040
0041 class Extrema_ExtPS
0042 {
0043 public:
0044 DEFINE_STANDARD_ALLOC
0045
0046 Standard_EXPORT Extrema_ExtPS();
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056 Standard_EXPORT Extrema_ExtPS(const gp_Pnt& P,
0057 const Adaptor3d_Surface& S,
0058 const double TolU,
0059 const double TolV,
0060 const Extrema_ExtFlag F = Extrema_ExtFlag_MINMAX,
0061 const Extrema_ExtAlgo A = Extrema_ExtAlgo_Grad);
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071 Standard_EXPORT Extrema_ExtPS(const gp_Pnt& P,
0072 const Adaptor3d_Surface& S,
0073 const double Uinf,
0074 const double Usup,
0075 const double Vinf,
0076 const double Vsup,
0077 const double TolU,
0078 const double TolV,
0079 const Extrema_ExtFlag F = Extrema_ExtFlag_MINMAX,
0080 const Extrema_ExtAlgo A = Extrema_ExtAlgo_Grad);
0081
0082
0083 Standard_EXPORT void Initialize(const Adaptor3d_Surface& S,
0084 const double Uinf,
0085 const double Usup,
0086 const double Vinf,
0087 const double Vsup,
0088 const double TolU,
0089 const double TolV);
0090
0091
0092
0093
0094 Standard_EXPORT void Perform(const gp_Pnt& P);
0095
0096
0097 Standard_EXPORT bool IsDone() const;
0098
0099
0100 Standard_EXPORT int NbExt() const;
0101
0102
0103 Standard_EXPORT double SquareDistance(const int N) const;
0104
0105
0106 Standard_EXPORT const Extrema_POnSurf& Point(const int N) const;
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117 Standard_EXPORT void TrimmedSquareDistances(double& dUfVf,
0118 double& dUfVl,
0119 double& dUlVf,
0120 double& dUlVl,
0121 gp_Pnt& PUfVf,
0122 gp_Pnt& PUfVl,
0123 gp_Pnt& PUlVf,
0124 gp_Pnt& PUlVl) const;
0125
0126 Standard_EXPORT void SetFlag(const Extrema_ExtFlag F);
0127
0128 Standard_EXPORT void SetAlgo(const Extrema_ExtAlgo A);
0129
0130 private:
0131 Standard_EXPORT void TreatSolution(const Extrema_POnSurf& PS, const double Val);
0132
0133 private:
0134 const Adaptor3d_Surface* myS;
0135 bool myDone;
0136 Extrema_ExtPElS myExtPElS;
0137 Extrema_GenExtPS myExtPS;
0138 NCollection_Sequence<Extrema_POnSurf> myPoints;
0139 double myuinf;
0140 double myusup;
0141 double myvinf;
0142 double myvsup;
0143 double mytolu;
0144 double mytolv;
0145 double d11;
0146 double d12;
0147 double d21;
0148 double d22;
0149 gp_Pnt P11;
0150 gp_Pnt P12;
0151 gp_Pnt P21;
0152 gp_Pnt P22;
0153 NCollection_Sequence<double> mySqDist;
0154 GeomAbs_SurfaceType mytype;
0155 occ::handle<Extrema_ExtPExtS> myExtPExtS;
0156 occ::handle<Extrema_ExtPRevS> myExtPRevS;
0157 };
0158
0159 #endif