File indexing completed on 2026-05-13 08:43:38
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 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 Handle(Geom_Surface)& Surface,
0056 const Standard_Real Tolerance,
0057 const Extrema_ExtAlgo Algo = Extrema_ExtAlgo_Grad);
0058
0059 Standard_EXPORT GeomAPI_ProjectPointOnSurf(const gp_Pnt& P,
0060 const Handle(Geom_Surface)& Surface,
0061 const Standard_Real Umin,
0062 const Standard_Real Usup,
0063 const Standard_Real Vmin,
0064 const Standard_Real Vsup,
0065 const Standard_Real Tolerance,
0066 const Extrema_ExtAlgo Algo = Extrema_ExtAlgo_Grad);
0067
0068
0069
0070 Standard_EXPORT GeomAPI_ProjectPointOnSurf(const gp_Pnt& P,
0071 const Handle(Geom_Surface)& Surface,
0072 const Standard_Real Umin,
0073 const Standard_Real Usup,
0074 const Standard_Real Vmin,
0075 const Standard_Real Vsup,
0076 const Extrema_ExtAlgo Algo = Extrema_ExtAlgo_Grad);
0077
0078 Standard_EXPORT void Init(const gp_Pnt& P,
0079 const Handle(Geom_Surface)& Surface,
0080 const Standard_Real Tolerance,
0081 const Extrema_ExtAlgo Algo = Extrema_ExtAlgo_Grad);
0082
0083
0084
0085
0086 Standard_EXPORT void Init(const gp_Pnt& P,
0087 const Handle(Geom_Surface)& Surface,
0088 const Extrema_ExtAlgo Algo = Extrema_ExtAlgo_Grad);
0089
0090 Standard_EXPORT void Init(const gp_Pnt& P,
0091 const Handle(Geom_Surface)& Surface,
0092 const Standard_Real Umin,
0093 const Standard_Real Usup,
0094 const Standard_Real Vmin,
0095 const Standard_Real Vsup,
0096 const Standard_Real Tolerance,
0097 const Extrema_ExtAlgo Algo = Extrema_ExtAlgo_Grad);
0098
0099
0100
0101
0102 Standard_EXPORT void Init(const gp_Pnt& P,
0103 const Handle(Geom_Surface)& Surface,
0104 const Standard_Real Umin,
0105 const Standard_Real Usup,
0106 const Standard_Real Vmin,
0107 const Standard_Real Vsup,
0108 const Extrema_ExtAlgo Algo = Extrema_ExtAlgo_Grad);
0109
0110 Standard_EXPORT void Init(const Handle(Geom_Surface)& Surface,
0111 const Standard_Real Umin,
0112 const Standard_Real Usup,
0113 const Standard_Real Vmin,
0114 const Standard_Real Vsup,
0115 const Standard_Real Tolerance,
0116 const Extrema_ExtAlgo Algo = Extrema_ExtAlgo_Grad);
0117
0118 Standard_EXPORT void Init(const Handle(Geom_Surface)& Surface,
0119 const Standard_Real Umin,
0120 const Standard_Real Usup,
0121 const Standard_Real Vmin,
0122 const Standard_Real 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 Standard_Boolean IsDone() const;
0137
0138
0139
0140 Standard_EXPORT Standard_Integer NbPoints() const;
0141 Standard_EXPORT operator Standard_Integer() const;
0142
0143
0144
0145
0146
0147
0148 Standard_EXPORT gp_Pnt Point(const Standard_Integer Index) const;
0149
0150
0151
0152
0153
0154
0155
0156 Standard_EXPORT void Parameters(const Standard_Integer Index,
0157 Standard_Real& U,
0158 Standard_Real& V) const;
0159
0160
0161
0162
0163
0164
0165
0166 Standard_EXPORT Standard_Real Distance(const Standard_Integer Index) const;
0167
0168
0169
0170
0171
0172 Standard_EXPORT gp_Pnt NearestPoint() const;
0173 Standard_EXPORT operator gp_Pnt() const;
0174
0175
0176
0177
0178
0179 Standard_EXPORT void LowerDistanceParameters(Standard_Real& U, Standard_Real& V) const;
0180
0181
0182
0183
0184
0185 Standard_EXPORT Standard_Real LowerDistance() const;
0186 Standard_EXPORT operator Standard_Real() const;
0187
0188
0189 const Extrema_ExtPS& Extrema() const;
0190
0191 private:
0192 Standard_EXPORT void Init();
0193
0194 Standard_Boolean myIsDone;
0195 Standard_Integer myIndex;
0196 Extrema_ExtPS myExtPS;
0197 GeomAdaptor_Surface myGeomAdaptor;
0198 };
0199
0200 #include <GeomAPI_ProjectPointOnSurf.lxx>
0201
0202 #endif