Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-10-07 09:54:02

0001 // Created on: 1995-01-27
0002 // Created by: Jacques GOUSSARD
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 _GeomInt_TheImpPrmSvSurfacesOfWLApprox_HeaderFile
0018 #define _GeomInt_TheImpPrmSvSurfacesOfWLApprox_HeaderFile
0019 
0020 #include <Adaptor3d_Surface.hxx>
0021 #include <gp_Pnt2d.hxx>
0022 #include <gp_Pnt.hxx>
0023 #include <gp_Vec2d.hxx>
0024 #include <gp_Vec.hxx>
0025 #include <GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox.hxx>
0026 #include <ApproxInt_SvSurfaces.hxx>
0027 
0028 class Adaptor3d_HSurfaceTool;
0029 class IntSurf_Quadric;
0030 class IntSurf_QuadricTool;
0031 class IntPatch_WLine;
0032 class GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox;
0033 
0034 class GeomInt_TheImpPrmSvSurfacesOfWLApprox : public ApproxInt_SvSurfaces
0035 {
0036 public:
0037   DEFINE_STANDARD_ALLOC
0038 
0039   Standard_EXPORT GeomInt_TheImpPrmSvSurfacesOfWLApprox(const occ::handle<Adaptor3d_Surface>& Surf1,
0040                                                         const IntSurf_Quadric& Surf2);
0041 
0042   Standard_EXPORT GeomInt_TheImpPrmSvSurfacesOfWLApprox(
0043     const IntSurf_Quadric&                Surf1,
0044     const occ::handle<Adaptor3d_Surface>& Surf2);
0045 
0046   //! returns True if Tg,Tguv1 Tguv2 can be computed.
0047   Standard_EXPORT bool Compute(double&   u1,
0048                                double&   v1,
0049                                double&   u2,
0050                                double&   v2,
0051                                gp_Pnt&   Pt,
0052                                gp_Vec&   Tg,
0053                                gp_Vec2d& Tguv1,
0054                                gp_Vec2d& Tguv2) override;
0055 
0056   Standard_EXPORT void Pnt(const double u1,
0057                            const double v1,
0058                            const double u2,
0059                            const double v2,
0060                            gp_Pnt&      P) override;
0061 
0062   Standard_EXPORT bool SeekPoint(const double     u1,
0063                                  const double     v1,
0064                                  const double     u2,
0065                                  const double     v2,
0066                                  IntSurf_PntOn2S& Point) override;
0067 
0068   Standard_EXPORT bool Tangency(const double u1,
0069                                 const double v1,
0070                                 const double u2,
0071                                 const double v2,
0072                                 gp_Vec&      Tg) override;
0073 
0074   Standard_EXPORT bool TangencyOnSurf1(const double u1,
0075                                        const double v1,
0076                                        const double u2,
0077                                        const double v2,
0078                                        gp_Vec2d&    Tg) override;
0079 
0080   Standard_EXPORT bool TangencyOnSurf2(const double u1,
0081                                        const double v1,
0082                                        const double u2,
0083                                        const double v2,
0084                                        gp_Vec2d&    Tg) override;
0085 
0086   bool FillInitialVectorOfSolution(const double u1,
0087                                    const double v1,
0088                                    const double u2,
0089                                    const double v2,
0090                                    const double binfu,
0091                                    const double bsupu,
0092                                    const double binfv,
0093                                    const double bsupv,
0094                                    math_Vector& X,
0095                                    double&      TranslationU,
0096                                    double&      TranslationV);
0097 
0098 private:
0099   gp_Pnt2d                                             MyParOnS1;
0100   gp_Pnt2d                                             MyParOnS2;
0101   gp_Pnt                                               MyPnt;
0102   gp_Vec2d                                             MyTguv1;
0103   gp_Vec2d                                             MyTguv2;
0104   gp_Vec                                               MyTg;
0105   bool                                                 MyIsTangent;
0106   bool                                                 MyHasBeenComputed;
0107   gp_Pnt2d                                             MyParOnS1bis;
0108   gp_Pnt2d                                             MyParOnS2bis;
0109   gp_Pnt                                               MyPntbis;
0110   gp_Vec2d                                             MyTguv1bis;
0111   gp_Vec2d                                             MyTguv2bis;
0112   gp_Vec                                               MyTgbis;
0113   bool                                                 MyIsTangentbis;
0114   bool                                                 MyHasBeenComputedbis;
0115   bool                                                 MyImplicitFirst;
0116   GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox MyZerImpFunc;
0117 };
0118 
0119 #endif // _GeomInt_TheImpPrmSvSurfacesOfWLApprox_HeaderFile