hp2FEM
0.1
|
00001 #ifndef _BSPLINE_H_ 00002 #define _BSPLINE_H_ 00003 // --------------------------------------------- 00004 // company : 00005 // user : 00006 // date : 22 Mar 2015 17:25 00007 // file : BSpline.h 00008 // markers : Full 00009 // language : C++ 00010 // generator : Metamill 6.0 00011 // --------------------------------------------- 00012 00013 //#UBLK-BEG-HEADERH 00014 //#UBLK-END-HEADERH 00015 00016 /*================================================================================================= 00017 = = 00018 = Copyright 2010-2015 Marco Lucio Bittencourt / Fabiano Fernandes Bargos = 00019 = Gilberto Luis Valente / Jorge Luis Suzuki / Allan Patrick Cordeiro Dias = 00020 = = 00021 = Licensed under the Apache License, Version 2.0 (the "License"); = 00022 = you may not use this file except in compliance with the License. = 00023 = You may obtain a copy of the License at = 00024 = = 00025 = http://www.apache.org/licenses/LICENSE-2.0 = 00026 = = 00027 = Unless required by applicable law or agreed to in writing, software = 00028 = distributed under the License is distributed on an "AS IS" BASIS, = 00029 = WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. = 00030 = See the License for the specific language governing permissions and = 00031 = limitations under the License. = 00032 = = 00033 =================================================================================================*/ 00034 00035 00036 #include "ds/BuiltInArray.h" 00037 00038 00042 class BSpline 00043 { 00044 //#UBLK-BEG-CLASSDEF mm:6c13a93a-c384-46ec-8889-5f5af54cb172 00045 //#UBLK-END-CLASSDEF 00046 00047 public: 00048 00049 // METHOD=mm:3823e705-dceb-40cc-8759-9bca9ec860ad 00050 static void BSplineBasisFunctions(BuiltInArray<double>& N, long k, long n, BuiltInArray<double>& KnotVect, double t); 00051 00052 // METHOD=mm:3244b638-d351-442f-a498-7972a777ae62 00053 static void BSplineBasisFunctionsDerivative(BuiltInArray<double>& N, BuiltInArray<double>& Nl, long k, long n, BuiltInArray<double>& KnotVect, double t); 00054 00055 // METHOD=mm:8ca601c2-d495-4e4a-9f63-6c8f1aaa1e7c 00056 static void OpenUniformKnotVector(BuiltInArray<double>& KnotVect, long k, long n); 00057 00058 // METHOD=mm:8ae69bcb-5ee1-4ca3-9cc8-94ff2cce9751 00059 static void ParametricLimit(double& t); 00060 00061 00066 // attr=mm:8c699189-9890-495d-92a6-8490027dfa77 00067 static const double TINY_DOUBLE; //= 1.0e-12; 00068 00069 00070 protected: 00071 00072 private: 00073 00074 //#UBLK-BEG-CLASSMEMB mm:6c13a93a-c384-46ec-8889-5f5af54cb172 00075 //#UBLK-END-CLASSMEMB 00076 }; 00077 00078 //#UBLK-BEG-GLOBALH 00079 //#UBLK-END-GLOBALH 00080 00081 00082 #endif // _BSPLINE_H_