File indexing completed on 2026-10-10 09:28:19
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _GeomAPI_ProjectPointOnSurf_HeaderFile
0018 #define _GeomAPI_ProjectPointOnSurf_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023
0024 #include <Standard_Integer.hxx>
0025 #include <Extrema_ExtPS.hxx>
0026 #include <GeomAdaptor_Surface.hxx>
0027 #include <Extrema_ExtAlgo.hxx>
0028 #include <Extrema_ExtFlag.hxx>
0029 class gp_Pnt;
0030 class Geom_Surface;
0031
0032
0033
0034 class GeomAPI_ProjectPointOnSurf
0035 {
0036 public:
0037 DEFINE_STANDARD_ALLOC
0038
0039
0040
0041 Standard_EXPORT GeomAPI_ProjectPointOnSurf();
0042
0043
0044
0045 Standard_EXPORT GeomAPI_ProjectPointOnSurf(const gp_Pnt& P,
0046 const occ::handle<Geom_Surface>& Surface,
0047 const Extrema_ExtAlgo Algo = Extrema_ExtAlgo_Grad);
0048
0049
0050
0051
0052
0053
0054 Standard_EXPORT GeomAPI_ProjectPointOnSurf(const gp_Pnt& P,
0055 const occ::handle<Geom_Surface>& Surface,
0056 const double Tolerance,
0057 const Extrema_ExtAlgo Algo = Extrema_ExtAlgo_Grad);
0058
0059 Standard_EXPORT GeomAPI_ProjectPointOnSurf(const gp_Pnt& P,
0060 const occ::handle<Geom_Surface>& Surface,
0061 const double Umin,
0062 const double Usup,
0063 const double Vmin,
0064 const double Vsup,
0065 const double Tolerance,
0066 const Extrema_ExtAlgo Algo = Extrema_ExtAlgo_Grad);
0067
0068
0069
0070 Standard_EXPORT GeomAPI_ProjectPointOnSurf(const gp_Pnt& P,
0071 const occ::handle<Geom_Surface>& Surface,
0072 const double Umin,
0073 const double Usup,
0074 const double Vmin,
0075 const double Vsup,
0076 const Extrema_ExtAlgo Algo = Extrema_ExtAlgo_Grad);
0077
0078 Standard_EXPORT void Init(const gp_Pnt& P,
0079 const occ::handle<Geom_Surface>& Surface,
0080 const double Tolerance,
0081 const Extrema_ExtAlgo Algo = Extrema_ExtAlgo_Grad);
0082
0083
0084
0085
0086 Standard_EXPORT void Init(const gp_Pnt& P,
0087 const occ::handle<Geom_Surface>& Surface,
0088 const Extrema_ExtAlgo Algo = Extrema_ExtAlgo_Grad);
0089
0090 Standard_EXPORT void Init(const gp_Pnt& P,
0091 const occ::handle<Geom_Surface>& Surface,
0092 const double Umin,
0093 const double Usup,
0094 const double Vmin,
0095 const double Vsup,
0096 const double Tolerance,
0097 const Extrema_ExtAlgo Algo = Extrema_ExtAlgo_Grad);
0098
0099
0100
0101
0102 Standard_EXPORT void Init(const gp_Pnt& P,
0103 const occ::handle<Geom_Surface>& Surface,
0104 const double Umin,
0105 const double Usup,
0106 const double Vmin,
0107 const double Vsup,
0108 const Extrema_ExtAlgo Algo = Extrema_ExtAlgo_Grad);
0109
0110 Standard_EXPORT void Init(const occ::handle<Geom_Surface>& Surface,
0111 const double Umin,
0112 const double Usup,
0113 const double Vmin,
0114 const double Vsup,
0115 const double Tolerance,
0116 const Extrema_ExtAlgo Algo = Extrema_ExtAlgo_Grad);
0117
0118 Standard_EXPORT void Init(const occ::handle<Geom_Surface>& Surface,
0119 const double Umin,
0120 const double Usup,
0121 const double Vmin,
0122 const double Vsup,
0123 const Extrema_ExtAlgo Algo = Extrema_ExtAlgo_Grad);
0124
0125
0126
0127 void SetExtremaAlgo(const Extrema_ExtAlgo theAlgo) { myExtPS.SetAlgo(theAlgo); }
0128
0129
0130
0131 void SetExtremaFlag(const Extrema_ExtFlag theExtFlag) { myExtPS.SetFlag(theExtFlag); }
0132
0133
0134 Standard_EXPORT void Perform(const gp_Pnt& P);
0135
0136 Standard_EXPORT bool IsDone() const;
0137
0138
0139
0140 Standard_EXPORT int NbPoints() const;
0141 Standard_EXPORT operator int() const;
0142
0143
0144
0145
0146
0147
0148 Standard_EXPORT gp_Pnt Point(const int Index) const;
0149
0150
0151
0152
0153
0154
0155
0156 Standard_EXPORT void Parameters(const int Index, double& U, double& V) const;
0157
0158
0159
0160
0161
0162
0163
0164 Standard_EXPORT double Distance(const int Index) const;
0165
0166
0167
0168
0169
0170 Standard_EXPORT gp_Pnt NearestPoint() const;
0171 Standard_EXPORT operator gp_Pnt() const;
0172
0173
0174
0175
0176
0177 Standard_EXPORT void LowerDistanceParameters(double& U, double& V) const;
0178
0179
0180
0181
0182
0183 Standard_EXPORT double LowerDistance() const;
0184 Standard_EXPORT operator double() const;
0185
0186
0187 const Extrema_ExtPS& Extrema() const;
0188
0189 private:
0190 Standard_EXPORT void Init();
0191
0192 bool myIsDone;
0193 int myIndex;
0194 Extrema_ExtPS myExtPS;
0195 GeomAdaptor_Surface myGeomAdaptor;
0196 };
0197
0198 #include <GeomAPI_ProjectPointOnSurf.lxx>
0199
0200 #endif