|
|
|||
File indexing completed on 2026-09-09 09:16:03
0001 // Created on: 1993-12-24 0002 // Created by: Jacques GOUSSARD 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 _Law_Function_HeaderFile 0018 #define _Law_Function_HeaderFile 0019 0020 #include <Standard.hxx> 0021 #include <Standard_Type.hxx> 0022 0023 #include <Standard_Transient.hxx> 0024 #include <GeomAbs_Shape.hxx> 0025 #include <Standard_Integer.hxx> 0026 #include <TColStd_Array1OfReal.hxx> 0027 #include <Standard_Real.hxx> 0028 0029 class Law_Function; 0030 DEFINE_STANDARD_HANDLE(Law_Function, Standard_Transient) 0031 0032 //! Root class for evolution laws. 0033 class Law_Function : public Standard_Transient 0034 { 0035 0036 public: 0037 Standard_EXPORT virtual GeomAbs_Shape Continuity() const = 0; 0038 0039 //! Returns the number of intervals for continuity 0040 //! <S>. May be one if Continuity(me) >= <S> 0041 Standard_EXPORT virtual Standard_Integer NbIntervals(const GeomAbs_Shape S) const = 0; 0042 0043 //! Stores in <T> the parameters bounding the intervals of continuity <S>. 0044 //! The array must provide enough room to accommodate for the parameters, 0045 //! i.e. T.Length() > NbIntervals() 0046 Standard_EXPORT virtual void Intervals(TColStd_Array1OfReal& T, const GeomAbs_Shape S) const = 0; 0047 0048 //! Returns the value of the function at the point of parameter X. 0049 Standard_EXPORT virtual Standard_Real Value(const Standard_Real X) = 0; 0050 0051 //! Returns the value F and the first derivative D of the 0052 //! function at the point of parameter X. 0053 Standard_EXPORT virtual void D1(const Standard_Real X, Standard_Real& F, Standard_Real& D) = 0; 0054 0055 //! Returns the value, first and seconde derivatives 0056 //! at parameter X. 0057 Standard_EXPORT virtual void D2(const Standard_Real X, 0058 Standard_Real& F, 0059 Standard_Real& D, 0060 Standard_Real& D2) = 0; 0061 0062 //! Returns a law equivalent of <me> between 0063 //! parameters <First> and <Last>. <Tol> is used to 0064 //! test for 3d points confusion. 0065 //! It is usfule to determines the derivatives 0066 //! in these values <First> and <Last> if 0067 //! the Law is not Cn. 0068 Standard_EXPORT virtual Handle(Law_Function) Trim(const Standard_Real PFirst, 0069 const Standard_Real PLast, 0070 const Standard_Real Tol) const = 0; 0071 0072 //! Returns the parametric bounds of the function. 0073 Standard_EXPORT virtual void Bounds(Standard_Real& PFirst, Standard_Real& PLast) = 0; 0074 0075 DEFINE_STANDARD_RTTIEXT(Law_Function, Standard_Transient) 0076 0077 protected: 0078 private: 0079 }; 0080 0081 #endif // _Law_Function_HeaderFile
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|