Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-10-10 09:27:21

0001 // Created on: 1996-04-09
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_Iso_HeaderFile
0018 #define _AdvApp2Var_Iso_HeaderFile
0019 
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023 
0024 #include <GeomAbs_IsoType.hxx>
0025 #include <Standard_Real.hxx>
0026 #include <Standard_Integer.hxx>
0027 #include <Standard_Boolean.hxx>
0028 #include <NCollection_Array1.hxx>
0029 #include <NCollection_HArray1.hxx>
0030 #include <NCollection_Array2.hxx>
0031 #include <NCollection_HArray2.hxx>
0032 #include <AdvApp2Var_EvaluatorFunc2Var.hxx>
0033 class AdvApp2Var_Context;
0034 class AdvApp2Var_Node;
0035 
0036 //! used to store constraints on a line U = Ui or V = Vj
0037 class AdvApp2Var_Iso : public Standard_Transient
0038 {
0039   DEFINE_STANDARD_RTTIEXT(AdvApp2Var_Iso, Standard_Transient)
0040 public:
0041   Standard_EXPORT AdvApp2Var_Iso();
0042 
0043   Standard_EXPORT AdvApp2Var_Iso(const GeomAbs_IsoType type, const int iu, const int iv);
0044 
0045   Standard_EXPORT AdvApp2Var_Iso(const GeomAbs_IsoType type,
0046                                  const double          cte,
0047                                  const double          Ufirst,
0048                                  const double          Ulast,
0049                                  const double          Vfirst,
0050                                  const double          Vlast,
0051                                  const int             pos,
0052                                  const int             iu,
0053                                  const int             iv);
0054 
0055   Standard_EXPORT bool IsApproximated() const;
0056 
0057   Standard_EXPORT bool HasResult() const;
0058 
0059   Standard_EXPORT void MakeApprox(const AdvApp2Var_Context&           Conditions,
0060                                   const double                        a,
0061                                   const double                        b,
0062                                   const double                        c,
0063                                   const double                        d,
0064                                   const AdvApp2Var_EvaluatorFunc2Var& func,
0065                                   AdvApp2Var_Node&                    NodeBegin,
0066                                   AdvApp2Var_Node&                    NodeEnd);
0067 
0068   Standard_EXPORT void ChangeDomain(const double a, const double b);
0069 
0070   Standard_EXPORT void ChangeDomain(const double a, const double b, const double c, const double d);
0071 
0072   Standard_EXPORT void SetConstante(const double newcte);
0073 
0074   Standard_EXPORT void SetPosition(const int newpos);
0075 
0076   Standard_EXPORT void ResetApprox();
0077 
0078   Standard_EXPORT void OverwriteApprox();
0079 
0080   Standard_EXPORT GeomAbs_IsoType Type() const;
0081 
0082   Standard_EXPORT double Constante() const;
0083 
0084   Standard_EXPORT double T0() const;
0085 
0086   Standard_EXPORT double T1() const;
0087 
0088   Standard_EXPORT double U0() const;
0089 
0090   Standard_EXPORT double U1() const;
0091 
0092   Standard_EXPORT double V0() const;
0093 
0094   Standard_EXPORT double V1() const;
0095 
0096   Standard_EXPORT int UOrder() const;
0097 
0098   Standard_EXPORT int VOrder() const;
0099 
0100   Standard_EXPORT int Position() const;
0101 
0102   Standard_EXPORT int NbCoeff() const;
0103 
0104   Standard_EXPORT const occ::handle<NCollection_HArray1<double>>& Polynom() const;
0105 
0106   Standard_EXPORT occ::handle<NCollection_HArray1<double>> SomTab() const;
0107 
0108   Standard_EXPORT occ::handle<NCollection_HArray1<double>> DifTab() const;
0109 
0110   Standard_EXPORT occ::handle<NCollection_HArray2<double>> MaxErrors() const;
0111 
0112   Standard_EXPORT occ::handle<NCollection_HArray2<double>> MoyErrors() const;
0113 
0114 private:
0115   AdvApp2Var_Iso(const AdvApp2Var_Iso& theOther)            = delete;
0116   AdvApp2Var_Iso& operator=(const AdvApp2Var_Iso& theOther) = delete;
0117 
0118 private:
0119   GeomAbs_IsoType                          myType;
0120   double                                   myConstPar;
0121   double                                   myU0;
0122   double                                   myU1;
0123   double                                   myV0;
0124   double                                   myV1;
0125   int                                      myPosition;
0126   int                                      myExtremOrder;
0127   int                                      myDerivOrder;
0128   int                                      myNbCoeff;
0129   bool                                     myApprIsDone;
0130   bool                                     myHasResult;
0131   occ::handle<NCollection_HArray1<double>> myEquation;
0132   occ::handle<NCollection_HArray2<double>> myMaxErrors;
0133   occ::handle<NCollection_HArray2<double>> myMoyErrors;
0134   occ::handle<NCollection_HArray1<double>> mySomTab;
0135   occ::handle<NCollection_HArray1<double>> myDifTab;
0136 };
0137 
0138 #endif // _AdvApp2Var_Iso_HeaderFile