File indexing completed on 2025-01-18 10:03:30
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _FairCurve_EnergyOfMVC_HeaderFile
0018 #define _FairCurve_EnergyOfMVC_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023
0024 #include <FairCurve_BattenLaw.hxx>
0025 #include <FairCurve_DistributionOfTension.hxx>
0026 #include <FairCurve_DistributionOfSagging.hxx>
0027 #include <FairCurve_DistributionOfJerk.hxx>
0028 #include <FairCurve_AnalysisCode.hxx>
0029 #include <FairCurve_Energy.hxx>
0030 #include <Standard_Integer.hxx>
0031 #include <TColStd_HArray1OfReal.hxx>
0032 #include <TColgp_HArray1OfPnt2d.hxx>
0033 #include <math_Vector.hxx>
0034
0035
0036 #ifdef Status
0037 #undef Status
0038 #endif
0039
0040
0041 class FairCurve_EnergyOfMVC : public FairCurve_Energy
0042 {
0043 public:
0044
0045 DEFINE_STANDARD_ALLOC
0046
0047
0048
0049 Standard_EXPORT FairCurve_EnergyOfMVC(const Standard_Integer BSplOrder, const Handle(TColStd_HArray1OfReal)& FlatKnots, const Handle(TColgp_HArray1OfPnt2d)& Poles, const Standard_Integer ContrOrder1, const Standard_Integer ContrOrder2, const FairCurve_BattenLaw& Law, const Standard_Real PhysicalRatio, const Standard_Real LengthSliding, const Standard_Boolean FreeSliding = Standard_True, const Standard_Real Angle1 = 0, const Standard_Real Angle2 = 0, const Standard_Real Curvature1 = 0, const Standard_Real Curvature2 = 0);
0050
0051
0052 Standard_Real LengthSliding() const;
0053
0054
0055 FairCurve_AnalysisCode Status() const;
0056
0057
0058 Standard_EXPORT virtual Standard_Boolean Variable (math_Vector& X) const Standard_OVERRIDE;
0059
0060
0061
0062
0063 protected:
0064
0065
0066
0067 Standard_EXPORT virtual void ComputePoles (const math_Vector& X) Standard_OVERRIDE;
0068
0069
0070 Standard_EXPORT virtual Standard_Boolean Compute (const Standard_Integer DerivativeOrder, math_Vector& Result) Standard_OVERRIDE;
0071
0072
0073
0074
0075 private:
0076
0077
0078
0079 Standard_Real MyLengthSliding;
0080 Standard_Real OriginalSliding;
0081 FairCurve_BattenLaw MyBattenLaw;
0082 Standard_Real MyPhysicalRatio;
0083 FairCurve_DistributionOfTension MyTension;
0084 FairCurve_DistributionOfSagging MySagging;
0085 FairCurve_DistributionOfJerk MyJerk;
0086 FairCurve_AnalysisCode MyStatus;
0087
0088
0089 };
0090
0091
0092 #include <FairCurve_EnergyOfMVC.lxx>
0093
0094
0095
0096
0097
0098 #endif