|
|
|||
Warning, file /include/opencascade/Law.hxx was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 // Created on: 1994-04-07 0002 // Created by: Isabelle GRIGNON 0003 // Copyright (c) 1994-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 _Law_HeaderFile 0018 #define _Law_HeaderFile 0019 0020 #include <Standard.hxx> 0021 #include <Standard_DefineAlloc.hxx> 0022 #include <Standard_Handle.hxx> 0023 0024 #include <NCollection_Array1.hxx> 0025 #include <NCollection_HArray1.hxx> 0026 #include <Standard_Integer.hxx> 0027 #include <Standard_Boolean.hxx> 0028 #include <Standard_Real.hxx> 0029 class Law_BSpFunc; 0030 class Law_Linear; 0031 class Law_BSpline; 0032 class Adaptor3d_Curve; 0033 0034 //! Multiple services concerning 1d functions. 0035 class Law 0036 { 0037 public: 0038 DEFINE_STANDARD_ALLOC 0039 0040 //! This algorithm searches the knot values corresponding to the 0041 //! splitting of a given B-spline law into several arcs with 0042 //! the same continuity. The continuity order is given at the 0043 //! construction time. 0044 //! Builds a 1d bspline that is near from Lin with null 0045 //! derivatives at the extremities. 0046 Standard_EXPORT static occ::handle<Law_BSpFunc> MixBnd(const occ::handle<Law_Linear>& Lin); 0047 0048 //! Builds the poles of the 1d bspline that is near from 0049 //! Lin with null derivatives at the extremities. 0050 Standard_EXPORT static occ::handle<NCollection_HArray1<double>> MixBnd( 0051 const int Degree, 0052 const NCollection_Array1<double>& Knots, 0053 const NCollection_Array1<int>& Mults, 0054 const occ::handle<Law_Linear>& Lin); 0055 0056 //! Builds the poles of the 1d bspline that is null on the 0057 //! right side of Knots(Index) (on the left if 0058 //! NulOnTheRight is false) and that is like a 0059 //! t*(1-t)(1-t) curve on the left side of Knots(Index) 0060 //! (on the right if NulOnTheRight is false). The result 0061 //! curve is C1 with a derivative equal to 1. at first 0062 //! parameter (-1 at last parameter if NulOnTheRight is 0063 //! false). 0064 //! Warning: Mults(Index) must greater or equal to degree-1. 0065 Standard_EXPORT static occ::handle<NCollection_HArray1<double>> MixTgt( 0066 const int Degree, 0067 const NCollection_Array1<double>& Knots, 0068 const NCollection_Array1<int>& Mults, 0069 const bool NulOnTheRight, 0070 const int Index); 0071 0072 //! Computes a 1d curve to reparametrize a curve. Its an 0073 //! interpolation of NbPoints points calculated at quasi 0074 //! constant abscissa. 0075 Standard_EXPORT static occ::handle<Law_BSpline> Reparametrize(const Adaptor3d_Curve& Curve, 0076 const double First, 0077 const double Last, 0078 const bool HasDF, 0079 const bool HasDL, 0080 const double DFirst, 0081 const double DLast, 0082 const bool Rev, 0083 const int NbPoints); 0084 0085 //! Computes a 1d curve to scale a field of tangency. 0086 //! Value is 1. for t = (First+Last)/2 . 0087 //! If HasFirst value for t = First is VFirst (null derivative). 0088 //! If HasLast value for t = Last is VLast (null derivative). 0089 //! 0090 //! 1. _ 0091 //! _/ \_ 0092 //! __/ \__ 0093 //! / 0094 //! VFirst ____/ 0095 //! VLast \____ 0096 //! First Last 0097 Standard_EXPORT static occ::handle<Law_BSpline> Scale(const double First, 0098 const double Last, 0099 const bool HasF, 0100 const bool HasL, 0101 const double VFirst, 0102 const double VLast); 0103 0104 Standard_EXPORT static occ::handle<Law_BSpline> ScaleCub(const double First, 0105 const double Last, 0106 const bool HasF, 0107 const bool HasL, 0108 const double VFirst, 0109 const double VLast); 0110 }; 0111 0112 #endif // _Law_HeaderFile
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|