Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-10-04 09:13:44

0001 // Created on: 1995-06-06
0002 // Created by: Jean Yves LEBEY
0003 // Copyright (c) 1995-1999 Matra Datavision
0004 // Copyright (c) 1999-2014 OPEN CASCADE SAS
0005 //
0006 // This file is part of Open CASCADE Technology software library.
0007 //
0008 // This library is free software; you can redistribute it and/or modify it under
0009 // the terms of the GNU Lesser General Public License version 2.1 as published
0010 // by the Free Software Foundation, with special exception defined in the file
0011 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0012 // distribution for complete text of the license and disclaimer of any warranty.
0013 //
0014 // Alternatively, this file may be used under the terms of Open CASCADE
0015 // commercial license or contractual agreement.
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   //! returns True if Tg,Tguv1 Tguv2 can be computed.
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 // _BRepApprox_TheImpPrmSvSurfacesOfApprox_HeaderFile