Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-26 09:16:02

0001 // Created on: 1993-09-28
0002 // Created by: Bruno DUMORTIER
0003 // Copyright (c) 1993-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 _GeomFill_HeaderFile
0018 #define _GeomFill_HeaderFile
0019 
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023 
0024 #include <Convert_ParameterisationType.hxx>
0025 #include <Standard_Real.hxx>
0026 #include <TColgp_Array1OfPnt.hxx>
0027 #include <TColStd_Array1OfReal.hxx>
0028 #include <Standard_Boolean.hxx>
0029 #include <TColgp_Array1OfVec.hxx>
0030 #include <Standard_Integer.hxx>
0031 #include <TColStd_Array1OfInteger.hxx>
0032 class Geom_Surface;
0033 class Geom_Curve;
0034 class gp_Vec;
0035 class gp_Pnt;
0036 
0037 //! Tools and Data to filling Surface and Sweep Surfaces
0038 class GeomFill
0039 {
0040 public:
0041   DEFINE_STANDARD_ALLOC
0042 
0043   //! Builds a ruled surface between the two curves, Curve1 and Curve2.
0044   Standard_EXPORT static Handle(Geom_Surface) Surface(const Handle(Geom_Curve)& Curve1,
0045                                                       const Handle(Geom_Curve)& Curve2);
0046 
0047   Standard_EXPORT static void GetCircle(const Convert_ParameterisationType TConv,
0048                                         const gp_Vec&                      ns1,
0049                                         const gp_Vec&                      ns2,
0050                                         const gp_Vec&                      nplan,
0051                                         const gp_Pnt&                      pt1,
0052                                         const gp_Pnt&                      pt2,
0053                                         const Standard_Real                Rayon,
0054                                         const gp_Pnt&                      Center,
0055                                         TColgp_Array1OfPnt&                Poles,
0056                                         TColStd_Array1OfReal&              Weigths);
0057 
0058   Standard_EXPORT static Standard_Boolean GetCircle(const Convert_ParameterisationType TConv,
0059                                                     const gp_Vec&                      ns1,
0060                                                     const gp_Vec&                      ns2,
0061                                                     const gp_Vec&                      dn1w,
0062                                                     const gp_Vec&                      dn2w,
0063                                                     const gp_Vec&                      nplan,
0064                                                     const gp_Vec&                      dnplan,
0065                                                     const gp_Pnt&                      pts1,
0066                                                     const gp_Pnt&                      pts2,
0067                                                     const gp_Vec&                      tang1,
0068                                                     const gp_Vec&                      tang2,
0069                                                     const Standard_Real                Rayon,
0070                                                     const Standard_Real                DRayon,
0071                                                     const gp_Pnt&                      Center,
0072                                                     const gp_Vec&                      DCenter,
0073                                                     TColgp_Array1OfPnt&                Poles,
0074                                                     TColgp_Array1OfVec&                DPoles,
0075                                                     TColStd_Array1OfReal&              Weigths,
0076                                                     TColStd_Array1OfReal&              DWeigths);
0077 
0078   Standard_EXPORT static Standard_Boolean GetCircle(const Convert_ParameterisationType TConv,
0079                                                     const gp_Vec&                      ns1,
0080                                                     const gp_Vec&                      ns2,
0081                                                     const gp_Vec&                      dn1w,
0082                                                     const gp_Vec&                      dn2w,
0083                                                     const gp_Vec&                      d2n1w,
0084                                                     const gp_Vec&                      d2n2w,
0085                                                     const gp_Vec&                      nplan,
0086                                                     const gp_Vec&                      dnplan,
0087                                                     const gp_Vec&                      d2nplan,
0088                                                     const gp_Pnt&                      pts1,
0089                                                     const gp_Pnt&                      pts2,
0090                                                     const gp_Vec&                      tang1,
0091                                                     const gp_Vec&                      tang2,
0092                                                     const gp_Vec&                      Dtang1,
0093                                                     const gp_Vec&                      Dtang2,
0094                                                     const Standard_Real                Rayon,
0095                                                     const Standard_Real                DRayon,
0096                                                     const Standard_Real                D2Rayon,
0097                                                     const gp_Pnt&                      Center,
0098                                                     const gp_Vec&                      DCenter,
0099                                                     const gp_Vec&                      D2Center,
0100                                                     TColgp_Array1OfPnt&                Poles,
0101                                                     TColgp_Array1OfVec&                DPoles,
0102                                                     TColgp_Array1OfVec&                D2Poles,
0103                                                     TColStd_Array1OfReal&              Weigths,
0104                                                     TColStd_Array1OfReal&              DWeigths,
0105                                                     TColStd_Array1OfReal&              D2Weigths);
0106 
0107   Standard_EXPORT static void GetShape(const Standard_Real           MaxAng,
0108                                        Standard_Integer&             NbPoles,
0109                                        Standard_Integer&             NbKnots,
0110                                        Standard_Integer&             Degree,
0111                                        Convert_ParameterisationType& TypeConv);
0112 
0113   Standard_EXPORT static void Knots(const Convert_ParameterisationType TypeConv,
0114                                     TColStd_Array1OfReal&              TKnots);
0115 
0116   Standard_EXPORT static void Mults(const Convert_ParameterisationType TypeConv,
0117                                     TColStd_Array1OfInteger&           TMults);
0118 
0119   Standard_EXPORT static void GetMinimalWeights(const Convert_ParameterisationType TConv,
0120                                                 const Standard_Real                AngleMin,
0121                                                 const Standard_Real                AngleMax,
0122                                                 TColStd_Array1OfReal&              Weigths);
0123 
0124   //! Used  by  the  generical classes to determine
0125   //! Tolerance for approximation
0126   Standard_EXPORT static Standard_Real GetTolerance(const Convert_ParameterisationType TConv,
0127                                                     const Standard_Real                AngleMin,
0128                                                     const Standard_Real                Radius,
0129                                                     const Standard_Real                AngularTol,
0130                                                     const Standard_Real                SpatialTol);
0131 };
0132 
0133 #endif // _GeomFill_HeaderFile