File indexing completed on 2025-01-18 10:03:07
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
0042
0043 class BRepApprox_TheImpPrmSvSurfacesOfApprox : public ApproxInt_SvSurfaces
0044 {
0045 public:
0046
0047 DEFINE_STANDARD_ALLOC
0048
0049
0050 Standard_EXPORT BRepApprox_TheImpPrmSvSurfacesOfApprox(const BRepAdaptor_Surface& Surf1, const IntSurf_Quadric& Surf2);
0051
0052 Standard_EXPORT BRepApprox_TheImpPrmSvSurfacesOfApprox(const IntSurf_Quadric& Surf1, const BRepAdaptor_Surface& Surf2);
0053
0054
0055 Standard_EXPORT Standard_Boolean Compute (Standard_Real& u1, Standard_Real& v1, Standard_Real& u2, Standard_Real& v2,
0056 gp_Pnt& Pt, gp_Vec& Tg, gp_Vec2d& Tguv1, gp_Vec2d& Tguv2);
0057
0058 Standard_EXPORT void Pnt (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Pnt& P);
0059
0060 Standard_EXPORT Standard_Boolean SeekPoint(const Standard_Real u1,
0061 const Standard_Real v1,
0062 const Standard_Real u2,
0063 const Standard_Real v2,
0064 IntSurf_PntOn2S& Point);
0065
0066 Standard_EXPORT Standard_Boolean Tangency (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec& Tg);
0067
0068 Standard_EXPORT Standard_Boolean TangencyOnSurf1 (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec2d& Tg);
0069
0070 Standard_EXPORT Standard_Boolean TangencyOnSurf2 (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec2d& Tg);
0071
0072 Standard_Boolean FillInitialVectorOfSolution(const Standard_Real u1,
0073 const Standard_Real v1,
0074 const Standard_Real u2,
0075 const Standard_Real v2,
0076 const Standard_Real binfu,
0077 const Standard_Real bsupu,
0078 const Standard_Real binfv,
0079 const Standard_Real bsupv,
0080 math_Vector& X,
0081 Standard_Real& TranslationU,
0082 Standard_Real& TranslationV);
0083
0084
0085
0086 protected:
0087
0088
0089
0090
0091
0092 private:
0093
0094
0095
0096 gp_Pnt2d MyParOnS1;
0097 gp_Pnt2d MyParOnS2;
0098 gp_Pnt MyPnt;
0099 gp_Vec2d MyTguv1;
0100 gp_Vec2d MyTguv2;
0101 gp_Vec MyTg;
0102 Standard_Boolean MyIsTangent;
0103 Standard_Boolean MyHasBeenComputed;
0104 gp_Pnt2d MyParOnS1bis;
0105 gp_Pnt2d MyParOnS2bis;
0106 gp_Pnt MyPntbis;
0107 gp_Vec2d MyTguv1bis;
0108 gp_Vec2d MyTguv2bis;
0109 gp_Vec MyTgbis;
0110 Standard_Boolean MyIsTangentbis;
0111 Standard_Boolean MyHasBeenComputedbis;
0112 Standard_Boolean MyImplicitFirst;
0113 BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox MyZerImpFunc;
0114
0115
0116 };
0117
0118
0119
0120
0121
0122
0123
0124 #endif