File indexing completed on 2026-09-15 09:16:30
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _NLPlate_NLPlate_HeaderFile
0018 #define _NLPlate_NLPlate_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023
0024 #include <NLPlate_HGPPConstraint.hxx>
0025 #include <NCollection_Sequence.hxx>
0026 #include <Plate_Plate.hxx>
0027 #include <NCollection_List.hxx>
0028 #include <Standard_Integer.hxx>
0029 class Geom_Surface;
0030 class NLPlate_HGPPConstraint;
0031 class gp_XYZ;
0032 class gp_XY;
0033
0034 class NLPlate_NLPlate
0035 {
0036 public:
0037 DEFINE_STANDARD_ALLOC
0038
0039 Standard_EXPORT NLPlate_NLPlate(const occ::handle<Geom_Surface>& InitialSurface);
0040
0041 Standard_EXPORT void Load(const occ::handle<NLPlate_HGPPConstraint>& GConst);
0042
0043 Standard_EXPORT void Solve(const int ord = 2, const int InitialConsraintOrder = 1);
0044
0045 Standard_EXPORT void Solve2(const int ord = 2, const int InitialConsraintOrder = 1);
0046
0047 Standard_EXPORT void IncrementalSolve(const int ord = 2,
0048 const int InitialConsraintOrder = 1,
0049 const int NbIncrements = 4,
0050 const bool UVSliding = false);
0051
0052
0053 Standard_EXPORT bool IsDone() const;
0054
0055 Standard_EXPORT void destroy();
0056
0057 ~NLPlate_NLPlate() { destroy(); }
0058
0059
0060
0061 Standard_EXPORT void Init();
0062
0063 Standard_EXPORT gp_XYZ Evaluate(const gp_XY& point2d) const;
0064
0065 Standard_EXPORT gp_XYZ EvaluateDerivative(const gp_XY& point2d, const int iu, const int iv) const;
0066
0067 Standard_EXPORT int Continuity() const;
0068
0069 Standard_EXPORT void ConstraintsSliding(const int NbIterations = 3);
0070
0071 Standard_EXPORT int MaxActiveConstraintOrder() const;
0072
0073 private:
0074 Standard_EXPORT bool Iterate(const int ConstraintOrder,
0075 const int ResolutionOrder,
0076 const double IncrementalLoading = 1.0);
0077
0078 occ::handle<Geom_Surface> myInitialSurface;
0079 NCollection_Sequence<occ::handle<NLPlate_HGPPConstraint>> myHGPPConstraints;
0080 NCollection_List<Plate_Plate> mySOP;
0081 bool OK;
0082 };
0083
0084 #endif