Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:03:07

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 
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   //! returns True if Tg,Tguv1 Tguv2 can be computed.
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 // _BRepApprox_TheImpPrmSvSurfacesOfApprox_HeaderFile