File indexing completed on 2026-10-04 09:13:44
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _BRepApprox_TheImpPrmSvSurfacesOfApprox_HeaderFile
0018 #define _BRepApprox_TheImpPrmSvSurfacesOfApprox_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023
0024 #include <gp_Pnt2d.hxx>
0025 #include <gp_Pnt.hxx>
0026 #include <gp_Vec2d.hxx>
0027 #include <gp_Vec.hxx>
0028 #include <Standard_Boolean.hxx>
0029 #include <BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox.hxx>
0030 #include <ApproxInt_SvSurfaces.hxx>
0031 class BRepAdaptor_Surface;
0032 class BRepApprox_SurfaceTool;
0033 class IntSurf_Quadric;
0034 class IntSurf_QuadricTool;
0035 class BRepApprox_ApproxLine;
0036 class BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox;
0037 class gp_Pnt;
0038 class gp_Vec;
0039 class gp_Vec2d;
0040
0041 class BRepApprox_TheImpPrmSvSurfacesOfApprox : public ApproxInt_SvSurfaces
0042 {
0043 public:
0044 DEFINE_STANDARD_ALLOC
0045
0046 Standard_EXPORT BRepApprox_TheImpPrmSvSurfacesOfApprox(const BRepAdaptor_Surface& Surf1,
0047 const IntSurf_Quadric& Surf2);
0048
0049 Standard_EXPORT BRepApprox_TheImpPrmSvSurfacesOfApprox(const IntSurf_Quadric& Surf1,
0050 const BRepAdaptor_Surface& Surf2);
0051
0052
0053 Standard_EXPORT bool Compute(double& u1,
0054 double& v1,
0055 double& u2,
0056 double& v2,
0057 gp_Pnt& Pt,
0058 gp_Vec& Tg,
0059 gp_Vec2d& Tguv1,
0060 gp_Vec2d& Tguv2) override;
0061
0062 Standard_EXPORT void Pnt(const double u1,
0063 const double v1,
0064 const double u2,
0065 const double v2,
0066 gp_Pnt& P) override;
0067
0068 Standard_EXPORT bool SeekPoint(const double u1,
0069 const double v1,
0070 const double u2,
0071 const double v2,
0072 IntSurf_PntOn2S& Point) override;
0073
0074 Standard_EXPORT bool Tangency(const double u1,
0075 const double v1,
0076 const double u2,
0077 const double v2,
0078 gp_Vec& Tg) override;
0079
0080 Standard_EXPORT bool TangencyOnSurf1(const double u1,
0081 const double v1,
0082 const double u2,
0083 const double v2,
0084 gp_Vec2d& Tg) override;
0085
0086 Standard_EXPORT bool TangencyOnSurf2(const double u1,
0087 const double v1,
0088 const double u2,
0089 const double v2,
0090 gp_Vec2d& Tg) override;
0091
0092 bool FillInitialVectorOfSolution(const double u1,
0093 const double v1,
0094 const double u2,
0095 const double v2,
0096 const double binfu,
0097 const double bsupu,
0098 const double binfv,
0099 const double bsupv,
0100 math_Vector& X,
0101 double& TranslationU,
0102 double& TranslationV);
0103
0104 private:
0105 gp_Pnt2d MyParOnS1;
0106 gp_Pnt2d MyParOnS2;
0107 gp_Pnt MyPnt;
0108 gp_Vec2d MyTguv1;
0109 gp_Vec2d MyTguv2;
0110 gp_Vec MyTg;
0111 bool MyIsTangent;
0112 bool MyHasBeenComputed;
0113 gp_Pnt2d MyParOnS1bis;
0114 gp_Pnt2d MyParOnS2bis;
0115 gp_Pnt MyPntbis;
0116 gp_Vec2d MyTguv1bis;
0117 gp_Vec2d MyTguv2bis;
0118 gp_Vec MyTgbis;
0119 bool MyIsTangentbis;
0120 bool MyHasBeenComputedbis;
0121 bool MyImplicitFirst;
0122 BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox MyZerImpFunc;
0123 };
0124
0125 #endif