File indexing completed on 2025-01-18 10:03:29
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _Extrema_GenExtPS_HeaderFile
0018 #define _Extrema_GenExtPS_HeaderFile
0019
0020 #include <Bnd_HArray1OfSphere.hxx>
0021 #include <Extrema_Array2OfPOnSurfParams.hxx>
0022 #include <Extrema_POnSurfParams.hxx>
0023 #include <Extrema_HUBTreeOfSphere.hxx>
0024 #include <Extrema_FuncPSNorm.hxx>
0025 #include <Extrema_ExtFlag.hxx>
0026 #include <Extrema_ExtAlgo.hxx>
0027 #include <TColStd_HArray1OfReal.hxx>
0028
0029 class Adaptor3d_Surface;
0030
0031
0032
0033
0034 class Extrema_GenExtPS
0035 {
0036 public:
0037
0038 DEFINE_STANDARD_ALLOC
0039
0040
0041 Standard_EXPORT Extrema_GenExtPS();
0042
0043
0044 Standard_EXPORT ~Extrema_GenExtPS();
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058 Standard_EXPORT Extrema_GenExtPS(const gp_Pnt& P, const Adaptor3d_Surface& S, const Standard_Integer NbU, const Standard_Integer NbV, const Standard_Real TolU, const Standard_Real TolV, const Extrema_ExtFlag F = Extrema_ExtFlag_MINMAX, const Extrema_ExtAlgo A = Extrema_ExtAlgo_Grad);
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072 Standard_EXPORT Extrema_GenExtPS(const gp_Pnt& P, const Adaptor3d_Surface& S, const Standard_Integer NbU, const Standard_Integer NbV, const Standard_Real Umin, const Standard_Real Usup, const Standard_Real Vmin, const Standard_Real Vsup, const Standard_Real TolU, const Standard_Real TolV, const Extrema_ExtFlag F = Extrema_ExtFlag_MINMAX, const Extrema_ExtAlgo A = Extrema_ExtAlgo_Grad);
0073
0074 Standard_EXPORT void Initialize (const Adaptor3d_Surface& S, const Standard_Integer NbU, const Standard_Integer NbV, const Standard_Real TolU, const Standard_Real TolV);
0075
0076 Standard_EXPORT void Initialize (const Adaptor3d_Surface& S, const Standard_Integer NbU, const Standard_Integer NbV, const Standard_Real Umin, const Standard_Real Usup, const Standard_Real Vmin, const Standard_Real Vsup, const Standard_Real TolU, const Standard_Real TolV);
0077
0078
0079
0080
0081 Standard_EXPORT void Perform (const gp_Pnt& P);
0082
0083 Standard_EXPORT void SetFlag (const Extrema_ExtFlag F);
0084
0085 Standard_EXPORT void SetAlgo (const Extrema_ExtAlgo A);
0086
0087
0088 Standard_EXPORT Standard_Boolean IsDone() const;
0089
0090
0091 Standard_EXPORT Standard_Integer NbExt() const;
0092
0093
0094 Standard_EXPORT Standard_Real SquareDistance (const Standard_Integer N) const;
0095
0096
0097 Standard_EXPORT const Extrema_POnSurf& Point (const Standard_Integer N) const;
0098
0099 private:
0100
0101 Standard_EXPORT void BuildTree();
0102
0103 Standard_EXPORT void FindSolution (const gp_Pnt& P, const Extrema_POnSurfParams& theParams);
0104
0105
0106 Standard_EXPORT void GetGridPoints (const Adaptor3d_Surface& theSurf);
0107
0108
0109 Standard_EXPORT void BuildGrid (const gp_Pnt& thePoint);
0110
0111
0112 Standard_EXPORT const Extrema_POnSurfParams& ComputeEdgeParameters (const Standard_Boolean IsUEdge, const Extrema_POnSurfParams& theParam0, const Extrema_POnSurfParams& theParam1, const gp_Pnt& thePoints, const Standard_Real theDiffTol);
0113
0114 private:
0115
0116
0117 Extrema_GenExtPS (const Extrema_GenExtPS& ) Standard_DELETE;
0118 Extrema_GenExtPS& operator= (const Extrema_GenExtPS& ) Standard_DELETE;
0119
0120 private:
0121
0122 Standard_Boolean myDone;
0123 Standard_Boolean myInit;
0124 Standard_Real myumin;
0125 Standard_Real myusup;
0126 Standard_Real myvmin;
0127 Standard_Real myvsup;
0128 Standard_Integer myusample;
0129 Standard_Integer myvsample;
0130 Standard_Real mytolu;
0131 Standard_Real mytolv;
0132
0133 Extrema_Array2OfPOnSurfParams myPoints;
0134 Extrema_HUBTreeOfSphere mySphereUBTree;
0135 Handle(Bnd_HArray1OfSphere) mySphereArray;
0136 Extrema_FuncPSNorm myF;
0137 const Adaptor3d_Surface* myS;
0138 Extrema_ExtFlag myFlag;
0139 Extrema_ExtAlgo myAlgo;
0140 Handle(TColStd_HArray1OfReal) myUParams;
0141 Handle(TColStd_HArray1OfReal) myVParams;
0142 Extrema_Array2OfPOnSurfParams myFacePntParams;
0143 Extrema_Array2OfPOnSurfParams myUEdgePntParams;
0144 Extrema_Array2OfPOnSurfParams myVEdgePntParams;
0145 Extrema_POnSurfParams myGridParam;
0146
0147 };
0148
0149 #endif