File indexing completed on 2025-01-18 10:04:20
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_SequenceOfHGPPConstraint.hxx>
0025 #include <NLPlate_StackOfPlate.hxx>
0026 #include <Standard_Integer.hxx>
0027 class Geom_Surface;
0028 class NLPlate_HGPPConstraint;
0029 class gp_XYZ;
0030 class gp_XY;
0031
0032
0033
0034 class NLPlate_NLPlate
0035 {
0036 public:
0037
0038 DEFINE_STANDARD_ALLOC
0039
0040
0041 Standard_EXPORT NLPlate_NLPlate(const Handle(Geom_Surface)& InitialSurface);
0042
0043 Standard_EXPORT void Load (const Handle(NLPlate_HGPPConstraint)& GConst);
0044
0045 Standard_EXPORT void Solve (const Standard_Integer ord = 2, const Standard_Integer InitialConsraintOrder = 1);
0046
0047 Standard_EXPORT void Solve2 (const Standard_Integer ord = 2, const Standard_Integer InitialConsraintOrder = 1);
0048
0049 Standard_EXPORT void IncrementalSolve (const Standard_Integer ord = 2, const Standard_Integer InitialConsraintOrder = 1, const Standard_Integer NbIncrements = 4, const Standard_Boolean UVSliding = Standard_False);
0050
0051
0052 Standard_EXPORT Standard_Boolean IsDone() const;
0053
0054 Standard_EXPORT void destroy();
0055 ~NLPlate_NLPlate()
0056 {
0057 destroy();
0058 }
0059
0060
0061
0062 Standard_EXPORT void Init();
0063
0064 Standard_EXPORT gp_XYZ Evaluate (const gp_XY& point2d) const;
0065
0066 Standard_EXPORT gp_XYZ EvaluateDerivative (const gp_XY& point2d, const Standard_Integer iu, const Standard_Integer iv) const;
0067
0068 Standard_EXPORT Standard_Integer Continuity() const;
0069
0070 Standard_EXPORT void ConstraintsSliding (const Standard_Integer NbIterations = 3);
0071
0072 Standard_EXPORT Standard_Integer MaxActiveConstraintOrder() const;
0073
0074
0075
0076
0077 protected:
0078
0079
0080
0081
0082
0083 private:
0084
0085
0086 Standard_EXPORT Standard_Boolean Iterate (const Standard_Integer ConstraintOrder, const Standard_Integer ResolutionOrder, const Standard_Real IncrementalLoading = 1.0);
0087
0088
0089 Handle(Geom_Surface) myInitialSurface;
0090 NLPlate_SequenceOfHGPPConstraint myHGPPConstraints;
0091 NLPlate_StackOfPlate mySOP;
0092 Standard_Boolean OK;
0093
0094
0095 };
0096
0097
0098
0099
0100
0101
0102
0103 #endif