1 // Created on: 1998-07-09 2 // Created by: Stephanie HUMEAU 3 // Copyright (c) 1998-1999 Matra Datavision 4 // Copyright (c) 1999-2014 OPEN CASCADE SAS 5 // 6 // This file is part of Open CASCADE Technology software library. 7 // 8 // This library is free software; you can redistribute it and/or modify it under 9 // the terms of the GNU Lesser General Public License version 2.1 as published 10 // by the Free Software Foundation, with special exception defined in the file 11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT 12 // distribution for complete text of the license and disclaimer of any warranty. 13 // 14 // Alternatively, this file may be used under the terms of Open CASCADE 15 // commercial license or contractual agreement. 16 17 #ifndef _GeomFill_FunctionGuide_HeaderFile 18 #define _GeomFill_FunctionGuide_HeaderFile 19 20 #include <Standard.hxx> 21 #include <Standard_DefineAlloc.hxx> 22 #include <Standard_Handle.hxx> 23 24 #include <Standard_Boolean.hxx> 25 #include <Standard_Real.hxx> 26 #include <gp_XYZ.hxx> 27 #include <math_FunctionSetWithDerivatives.hxx> 28 #include <Standard_Integer.hxx> 29 #include <math_Vector.hxx> 30 31 class Adaptor3d_Curve; 32 class GeomFill_SectionLaw; 33 class Geom_Curve; 34 class Geom_Surface; 35 class gp_Pnt; 36 class math_Matrix; 37 class gp_Vec; 38 39 40 41 class GeomFill_FunctionGuide : public math_FunctionSetWithDerivatives 42 { 43 public: 44 45 DEFINE_STANDARD_ALLOC 46 47 48 Standard_EXPORT GeomFill_FunctionGuide(const Handle(GeomFill_SectionLaw)& S, const Handle(Adaptor3d_Curve)& Guide, const Standard_Real ParamOnLaw = 0.0); 49 50 Standard_EXPORT void SetParam (const Standard_Real Param, const gp_Pnt& Centre, const gp_XYZ& Dir, const gp_XYZ& XDir); 51 52 //! returns the number of variables of the function. 53 Standard_EXPORT virtual Standard_Integer NbVariables() const Standard_OVERRIDE; 54 55 //! returns the number of equations of the function. 56 Standard_EXPORT virtual Standard_Integer NbEquations() const Standard_OVERRIDE; 57 58 //! computes the values <F> of the Functions for the 59 //! variable <X>. 60 //! Returns True if the computation was done successfully, 61 //! False otherwise. 62 Standard_EXPORT virtual Standard_Boolean Value (const math_Vector& X, math_Vector& F) Standard_OVERRIDE; 63 64 //! returns the values <D> of the derivatives for the 65 //! variable <X>. 66 //! Returns True if the computation was done successfully, 67 //! False otherwise. 68 Standard_EXPORT virtual Standard_Boolean Derivatives (const math_Vector& X, math_Matrix& D) Standard_OVERRIDE; 69 70 //! returns the values <F> of the functions and the derivatives 71 //! <D> for the variable <X>. 72 //! Returns True if the computation was done successfully, 73 //! False otherwise. 74 Standard_EXPORT virtual Standard_Boolean Values (const math_Vector& X, math_Vector& F, math_Matrix& D) Standard_OVERRIDE; 75 76 //! returns the values <F> of the T derivatives for 77 //! the parameter Param . 78 Standard_EXPORT Standard_Boolean DerivT (const math_Vector& X, const gp_XYZ& DCentre, const gp_XYZ& DDir, math_Vector& DFDT); 79 80 //! returns the values <F> of the T2 derivatives for 81 //! the parameter Param . 82 //! returns the values <D> of the TX derivatives for 83 //! the parameter Param . 84 //! returns Boolean is static; 85 //! returns the values <T> of the X2 derivatives for 86 //! the parameter Param . 87 //! returns Boolean is static; 88 Standard_EXPORT Standard_Boolean Deriv2T (const gp_XYZ& DCentre, const gp_XYZ& DDir, math_Vector& DFDT, math_Vector& D2FT); 89 90 91 92 93 protected: 94 95 96 97 98 99 private: 100 101 102 Standard_EXPORT void DSDT (const Standard_Real U, const Standard_Real V, const gp_XYZ& DCentre, const gp_XYZ& DDir, gp_Vec& DSDT) const; 103 104 105 Handle(Adaptor3d_Curve) TheGuide; 106 Handle(GeomFill_SectionLaw) TheLaw; 107 Standard_Boolean isconst; 108 Handle(Geom_Curve) TheCurve; 109 Handle(Geom_Curve) TheConst; 110 Handle(Geom_Surface) TheSurface; 111 Standard_Real First; 112 Standard_Real Last; 113 Standard_Real TheUonS; 114 gp_XYZ Centre; 115 gp_XYZ Dir; 116 117 118 }; 119 120 121 122 123 124 125 126 #endif // _GeomFill_FunctionGuide_HeaderFile 127