|
||||
File indexing completed on 2025-01-18 10:03:41
0001 // Created on: 1995-06-13 0002 // Created by: Bruno DUMORTIER 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 _GeomLib_MakeCurvefromApprox_HeaderFile 0018 #define _GeomLib_MakeCurvefromApprox_HeaderFile 0019 0020 #include <Standard.hxx> 0021 #include <Standard_DefineAlloc.hxx> 0022 #include <Standard_Handle.hxx> 0023 0024 #include <AdvApprox_ApproxAFunction.hxx> 0025 #include <Standard_Integer.hxx> 0026 class Geom2d_BSplineCurve; 0027 class Geom_BSplineCurve; 0028 0029 0030 //! this class is used to construct the BSpline curve 0031 //! from an Approximation ( ApproxAFunction from AdvApprox). 0032 class GeomLib_MakeCurvefromApprox 0033 { 0034 public: 0035 0036 DEFINE_STANDARD_ALLOC 0037 0038 0039 Standard_EXPORT GeomLib_MakeCurvefromApprox(const AdvApprox_ApproxAFunction& Approx); 0040 0041 Standard_Boolean IsDone() const; 0042 0043 //! returns the number of 1D spaces of the Approx 0044 Standard_EXPORT Standard_Integer Nb1DSpaces() const; 0045 0046 //! returns the number of 3D spaces of the Approx 0047 Standard_EXPORT Standard_Integer Nb2DSpaces() const; 0048 0049 //! returns the number of 3D spaces of the Approx 0050 Standard_EXPORT Standard_Integer Nb3DSpaces() const; 0051 0052 //! returns a polynomial curve whose poles correspond to 0053 //! the Index2d 2D space 0054 //! if Index2d not in the Range [1,Nb2dSpaces] 0055 //! if the Approx is not Done 0056 Standard_EXPORT Handle(Geom2d_BSplineCurve) Curve2d (const Standard_Integer Index2d) const; 0057 0058 //! returns a 2D curve building it from the 1D curve 0059 //! in x at Index1d and y at Index2d amongst the 0060 //! 1D curves 0061 //! if Index1d not in the Range [1,Nb1dSpaces] 0062 //! if Index2d not in the Range [1,Nb1dSpaces] 0063 //! if the Approx is not Done 0064 Standard_EXPORT Handle(Geom2d_BSplineCurve) Curve2dFromTwo1d (const Standard_Integer Index1d, const Standard_Integer Index2d) const; 0065 0066 //! returns a rational curve whose poles correspond to 0067 //! the index2d of the 2D space and whose weights correspond 0068 //! to one dimensional space of index 1d 0069 //! if Index1d not in the Range [1,Nb1dSpaces] 0070 //! if Index2d not in the Range [1,Nb2dSpaces] 0071 //! if the Approx is not Done 0072 Standard_EXPORT Handle(Geom2d_BSplineCurve) Curve2d (const Standard_Integer Index1d, const Standard_Integer Index2d) const; 0073 0074 //! returns a polynomial curve whose poles correspond to 0075 //! the Index3D 3D space 0076 //! if Index3D not in the Range [1,Nb3dSpaces] 0077 //! if the Approx is not Done 0078 Standard_EXPORT Handle(Geom_BSplineCurve) Curve (const Standard_Integer Index3d) const; 0079 0080 //! returns a rational curve whose poles correspond to 0081 //! the index3D of the 3D space and whose weights correspond 0082 //! to the index1d 1D space. 0083 //! if Index1D not in the Range [1,Nb1dSpaces] 0084 //! if Index3D not in the Range [1,Nb3dSpaces] 0085 //! if the Approx is not Done 0086 Standard_EXPORT Handle(Geom_BSplineCurve) Curve (const Standard_Integer Index1D, const Standard_Integer Index3D) const; 0087 0088 0089 0090 0091 protected: 0092 0093 0094 0095 0096 0097 private: 0098 0099 0100 0101 AdvApprox_ApproxAFunction myApprox; 0102 0103 0104 }; 0105 0106 0107 #include <GeomLib_MakeCurvefromApprox.lxx> 0108 0109 0110 0111 0112 0113 #endif // _GeomLib_MakeCurvefromApprox_HeaderFile
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |