File indexing completed on 2026-09-28 09:19:58
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _FairCurve_EnergyOfBatten_HeaderFile
0018 #define _FairCurve_EnergyOfBatten_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023
0024 #include <Standard_Real.hxx>
0025 #include <FairCurve_DistributionOfTension.hxx>
0026 #include <FairCurve_DistributionOfSagging.hxx>
0027 #include <FairCurve_AnalysisCode.hxx>
0028 #include <FairCurve_Energy.hxx>
0029 #include <Standard_Integer.hxx>
0030 #include <NCollection_Array1.hxx>
0031 #include <NCollection_HArray1.hxx>
0032 #include <gp_Pnt2d.hxx>
0033 #include <Standard_Boolean.hxx>
0034 #include <math_Vector.hxx>
0035
0036
0037 #ifdef Status
0038 #undef Status
0039 #endif
0040
0041
0042 class FairCurve_EnergyOfBatten : public FairCurve_Energy
0043 {
0044 public:
0045 DEFINE_STANDARD_ALLOC
0046
0047
0048 Standard_EXPORT FairCurve_EnergyOfBatten(
0049 const int BSplOrder,
0050 const occ::handle<NCollection_HArray1<double>>& FlatKnots,
0051 const occ::handle<NCollection_HArray1<gp_Pnt2d>>& Poles,
0052 const int ContrOrder1,
0053 const int ContrOrder2,
0054 const FairCurve_BattenLaw& Law,
0055 const double LengthSliding,
0056 const bool FreeSliding = true,
0057 const double Angle1 = 0,
0058 const double Angle2 = 0);
0059
0060
0061 double LengthSliding() const;
0062
0063
0064 FairCurve_AnalysisCode Status() const;
0065
0066
0067 Standard_EXPORT bool Variable(math_Vector& X) const override;
0068
0069 protected:
0070
0071 Standard_EXPORT void ComputePoles(const math_Vector& X) override;
0072
0073
0074 Standard_EXPORT bool Compute(const int DerivativeOrder, math_Vector& Result) override;
0075
0076 private:
0077 double MyLengthSliding;
0078 double OriginalSliding;
0079 FairCurve_BattenLaw MyBattenLaw;
0080 FairCurve_DistributionOfTension MyTension;
0081 FairCurve_DistributionOfSagging MySagging;
0082 FairCurve_AnalysisCode MyStatus;
0083 };
0084
0085 #include <FairCurve_EnergyOfBatten.lxx>
0086
0087 #endif