File indexing completed on 2026-09-29 09:18:40
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _Extrema_ExtElCS_HeaderFile
0018 #define _Extrema_ExtElCS_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023
0024 #include <Standard_Integer.hxx>
0025 #include <NCollection_Array1.hxx>
0026 #include <NCollection_HArray1.hxx>
0027 #include <Extrema_POnCurv.hxx>
0028 #include <Extrema_POnSurf.hxx>
0029
0030 class gp_Lin;
0031 class gp_Pln;
0032 class gp_Cylinder;
0033 class gp_Cone;
0034 class gp_Sphere;
0035 class gp_Torus;
0036 class gp_Circ;
0037 class gp_Hypr;
0038 class Extrema_POnCurv;
0039 class Extrema_POnSurf;
0040
0041
0042
0043
0044 class Extrema_ExtElCS
0045 {
0046 public:
0047 DEFINE_STANDARD_ALLOC
0048
0049 Standard_EXPORT Extrema_ExtElCS();
0050
0051
0052
0053
0054 Standard_EXPORT Extrema_ExtElCS(const gp_Lin& C, const gp_Pln& S);
0055
0056 Standard_EXPORT void Perform(const gp_Lin& C, const gp_Pln& S);
0057
0058
0059
0060 Standard_EXPORT Extrema_ExtElCS(const gp_Lin& C, const gp_Cylinder& S);
0061
0062 Standard_EXPORT void Perform(const gp_Lin& C, const gp_Cylinder& S);
0063
0064
0065 Standard_EXPORT Extrema_ExtElCS(const gp_Lin& C, const gp_Cone& S);
0066
0067 Standard_EXPORT void Perform(const gp_Lin& C, const gp_Cone& S);
0068
0069
0070
0071 Standard_EXPORT Extrema_ExtElCS(const gp_Lin& C, const gp_Sphere& S);
0072
0073 Standard_EXPORT void Perform(const gp_Lin& C, const gp_Sphere& S);
0074
0075
0076
0077 Standard_EXPORT Extrema_ExtElCS(const gp_Lin& C, const gp_Torus& S);
0078
0079 Standard_EXPORT void Perform(const gp_Lin& C, const gp_Torus& S);
0080
0081
0082
0083 Standard_EXPORT Extrema_ExtElCS(const gp_Circ& C, const gp_Pln& S);
0084
0085 Standard_EXPORT void Perform(const gp_Circ& C, const gp_Pln& S);
0086
0087
0088
0089 Standard_EXPORT Extrema_ExtElCS(const gp_Circ& C, const gp_Cylinder& S);
0090
0091 Standard_EXPORT void Perform(const gp_Circ& C, const gp_Cylinder& S);
0092
0093
0094
0095 Standard_EXPORT Extrema_ExtElCS(const gp_Circ& C, const gp_Cone& S);
0096
0097 Standard_EXPORT void Perform(const gp_Circ& C, const gp_Cone& S);
0098
0099
0100
0101 Standard_EXPORT Extrema_ExtElCS(const gp_Circ& C, const gp_Sphere& S);
0102
0103 Standard_EXPORT void Perform(const gp_Circ& C, const gp_Sphere& S);
0104
0105
0106
0107 Standard_EXPORT Extrema_ExtElCS(const gp_Circ& C, const gp_Torus& S);
0108
0109 Standard_EXPORT void Perform(const gp_Circ& C, const gp_Torus& S);
0110
0111
0112
0113 Standard_EXPORT Extrema_ExtElCS(const gp_Hypr& C, const gp_Pln& S);
0114
0115 Standard_EXPORT void Perform(const gp_Hypr& C, const gp_Pln& S);
0116
0117
0118 Standard_EXPORT bool IsDone() const;
0119
0120
0121 Standard_EXPORT bool IsParallel() const;
0122
0123
0124 Standard_EXPORT int NbExt() const;
0125
0126
0127 Standard_EXPORT double SquareDistance(const int N = 1) const;
0128
0129
0130
0131 Standard_EXPORT void Points(const int N, Extrema_POnCurv& P1, Extrema_POnSurf& P2) const;
0132
0133 private:
0134 bool myDone;
0135 int myNbExt;
0136 bool myIsPar;
0137 occ::handle<NCollection_HArray1<double>> mySqDist;
0138 occ::handle<NCollection_HArray1<Extrema_POnCurv>> myPoint1;
0139 occ::handle<NCollection_HArray1<Extrema_POnSurf>> myPoint2;
0140 };
0141
0142 #endif