Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-23 09:16:37

0001 // Created on: 1996-04-18
0002 // Created by: Joelle CHAUVET
0003 // Copyright (c) 1996-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 AdvApp2Var_EvaluatorFunc2Var_HeaderFile
0018 #define AdvApp2Var_EvaluatorFunc2Var_HeaderFile
0019 
0020 #include <stddef.h>
0021 
0022 #include <stdlib.h>
0023 
0024 #include <Standard_Macro.hxx>
0025 
0026 #include <Standard_Boolean.hxx>
0027 
0028 #include <Standard_Integer.hxx>
0029 
0030 #include <Standard_Real.hxx>
0031 
0032 #include <Standard_Character.hxx>
0033 
0034 #include <Standard_ExtCharacter.hxx>
0035 
0036 #include <Standard_CString.hxx>
0037 
0038 // History - the C function pointer converted to a virtual class
0039 // in order to get rid of usage of static functions and static data
0040 class AdvApp2Var_EvaluatorFunc2Var
0041 {
0042 public:
0043   //! Empty constructor
0044   AdvApp2Var_EvaluatorFunc2Var() = default;
0045 
0046   //! Destructor should be declared as virtual
0047   virtual ~AdvApp2Var_EvaluatorFunc2Var() = default;
0048 
0049   //! Function evaluation method to be defined by descendant
0050   virtual void Evaluate(int*    theDimension,
0051                         double* theUStartEnd,  //!< First and last parameters in U
0052                         double* theVStartEnd,  //!< First and last parameters in V
0053                         int*    theFavorIso,   //!< Choice of constante, 1 for U, 2 for V
0054                         double* theConstParam, //!< Value of constant parameter
0055                         int*    theNbParams,   //!< Number of parameters N
0056                         double* theParameters, //!< Values of parameters,
0057                         int*    theUOrder,     //!< Derivative Request in U
0058                         int*    theVOrder,     //!< Derivative Request in V
0059                         double* theResult,     //!< Result[Dimension,N]
0060                         int*    theErrorCode) const = 0;
0061 
0062   //! Shortcut for function-call style usage
0063   void operator()(int*    theDimension,
0064                   double* theUStartEnd,
0065                   double* theVStartEnd,
0066                   int*    theFavorIso,
0067                   double* theConstParam,
0068                   int*    theNbParams,
0069                   double* theParameters,
0070                   int*    theUOrder,
0071                   int*    theVOrder,
0072                   double* theResult,
0073                   int*    theErrorCode) const
0074   {
0075     Evaluate(theDimension,
0076              theUStartEnd,
0077              theVStartEnd,
0078              theFavorIso,
0079              theConstParam,
0080              theNbParams,
0081              theParameters,
0082              theUOrder,
0083              theVOrder,
0084              theResult,
0085              theErrorCode);
0086   }
0087 
0088 private:
0089   AdvApp2Var_EvaluatorFunc2Var(const AdvApp2Var_EvaluatorFunc2Var&)            = delete;
0090   AdvApp2Var_EvaluatorFunc2Var& operator=(const AdvApp2Var_EvaluatorFunc2Var&) = delete;
0091 };
0092 
0093 #endif