File indexing completed on 2026-09-08 09:16:04
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _Extrema_PCLocFOfLocEPCOfLocateExtPC_HeaderFile
0018 #define _Extrema_PCLocFOfLocEPCOfLocateExtPC_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022
0023 #include <gp_Pnt.hxx>
0024 #include <TColStd_SequenceOfReal.hxx>
0025 #include <TColStd_SequenceOfInteger.hxx>
0026 #include <Extrema_SequenceOfPOnCurv.hxx>
0027 #include <Standard_Integer.hxx>
0028 #include <math_FunctionWithDerivative.hxx>
0029 class Standard_OutOfRange;
0030 class Standard_TypeMismatch;
0031 class Adaptor3d_Curve;
0032 class Extrema_CurveTool;
0033 class Extrema_POnCurv;
0034 class gp_Pnt;
0035 class gp_Vec;
0036
0037 class Extrema_PCLocFOfLocEPCOfLocateExtPC : public math_FunctionWithDerivative
0038 {
0039 public:
0040 DEFINE_STANDARD_ALLOC
0041
0042 Standard_EXPORT Extrema_PCLocFOfLocEPCOfLocateExtPC();
0043
0044 Standard_EXPORT Extrema_PCLocFOfLocEPCOfLocateExtPC(const gp_Pnt& P, const Adaptor3d_Curve& C);
0045
0046
0047 Standard_EXPORT void Initialize(const Adaptor3d_Curve& C);
0048
0049
0050 Standard_EXPORT void SetPoint(const gp_Pnt& P);
0051
0052
0053 Standard_EXPORT Standard_Boolean Value(const Standard_Real U, Standard_Real& F) Standard_OVERRIDE;
0054
0055
0056 Standard_EXPORT Standard_Boolean Derivative(const Standard_Real U,
0057 Standard_Real& DF) Standard_OVERRIDE;
0058
0059
0060 Standard_EXPORT Standard_Boolean Values(const Standard_Real U,
0061 Standard_Real& F,
0062 Standard_Real& DF) Standard_OVERRIDE;
0063
0064
0065 Standard_EXPORT virtual Standard_Integer GetStateNumber() Standard_OVERRIDE;
0066
0067
0068 Standard_EXPORT Standard_Integer NbExt() const;
0069
0070
0071 Standard_EXPORT Standard_Real SquareDistance(const Standard_Integer N) const;
0072
0073
0074 Standard_EXPORT Standard_Boolean IsMin(const Standard_Integer N) const;
0075
0076
0077 Standard_EXPORT const Extrema_POnCurv& Point(const Standard_Integer N) const;
0078
0079
0080 Standard_EXPORT void SubIntervalInitialize(const Standard_Real theUfirst,
0081 const Standard_Real theUlast);
0082
0083
0084
0085 Standard_EXPORT Standard_Real SearchOfTolerance();
0086
0087 protected:
0088 private:
0089 gp_Pnt myP;
0090 Standard_Address myC;
0091 Standard_Real myU;
0092 gp_Pnt myPc;
0093 Standard_Real myD1f;
0094 TColStd_SequenceOfReal mySqDist;
0095 TColStd_SequenceOfInteger myIsMin;
0096 Extrema_SequenceOfPOnCurv myPoint;
0097 Standard_Boolean myPinit;
0098 Standard_Boolean myCinit;
0099 Standard_Boolean myD1Init;
0100 Standard_Real myTol;
0101 Standard_Integer myMaxDerivOrder;
0102 Standard_Real myUinfium;
0103 Standard_Real myUsupremum;
0104 };
0105
0106 #endif