File indexing completed on 2025-01-18 10:03:42
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _GeomPlate_BuildPlateSurface_HeaderFile
0018 #define _GeomPlate_BuildPlateSurface_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022
0023 #include <GeomPlate_HSequenceOfCurveConstraint.hxx>
0024 #include <GeomPlate_HArray1OfSequenceOfReal.hxx>
0025 #include <GeomPlate_HSequenceOfPointConstraint.hxx>
0026 #include <Plate_Plate.hxx>
0027 #include <TColStd_HArray1OfInteger.hxx>
0028 #include <Standard_Integer.hxx>
0029 #include <Standard_Real.hxx>
0030 #include <Extrema_ExtPS.hxx>
0031 #include <GeomPlate_HArray1OfHCurve.hxx>
0032 #include <TColgp_SequenceOfXY.hxx>
0033 #include <TColgp_SequenceOfXYZ.hxx>
0034 #include <TColGeom2d_HArray1OfCurve.hxx>
0035 #include <TColStd_HArray1OfReal.hxx>
0036 class Geom_Surface;
0037 class GeomPlate_Surface;
0038 class GeomPlate_CurveConstraint;
0039 class GeomPlate_PointConstraint;
0040 class gp_Pnt2d;
0041 class gp_Pnt;
0042 class Geom2d_Curve;
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054 class GeomPlate_BuildPlateSurface
0055 {
0056 public:
0057
0058 DEFINE_STANDARD_ALLOC
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073 Standard_EXPORT GeomPlate_BuildPlateSurface(const Handle(TColStd_HArray1OfInteger)& NPoints, const Handle(GeomPlate_HArray1OfHCurve)& TabCurve, const Handle(TColStd_HArray1OfInteger)& Tang, const Standard_Integer Degree, const Standard_Integer NbIter = 3, const Standard_Real Tol2d = 0.00001, const Standard_Real Tol3d = 0.0001, const Standard_Real TolAng = 0.01, const Standard_Real TolCurv = 0.1, const Standard_Boolean Anisotropie = Standard_False);
0074
0075 Standard_EXPORT GeomPlate_BuildPlateSurface(const Handle(Geom_Surface)& Surf, const Standard_Integer Degree = 3, const Standard_Integer NbPtsOnCur = 10, const Standard_Integer NbIter = 3, const Standard_Real Tol2d = 0.00001, const Standard_Real Tol3d = 0.0001, const Standard_Real TolAng = 0.01, const Standard_Real TolCurv = 0.1, const Standard_Boolean Anisotropie = Standard_False);
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103 Standard_EXPORT GeomPlate_BuildPlateSurface(const Standard_Integer Degree = 3, const Standard_Integer NbPtsOnCur = 10, const Standard_Integer NbIter = 3, const Standard_Real Tol2d = 0.00001, const Standard_Real Tol3d = 0.0001, const Standard_Real TolAng = 0.01, const Standard_Real TolCurv = 0.1, const Standard_Boolean Anisotropie = Standard_False);
0104
0105
0106 Standard_EXPORT void Init();
0107
0108
0109 Standard_EXPORT void LoadInitSurface (const Handle(Geom_Surface)& Surf);
0110
0111
0112 Standard_EXPORT void Add (const Handle(GeomPlate_CurveConstraint)& Cont);
0113
0114 Standard_EXPORT void SetNbBounds (const Standard_Integer NbBounds);
0115
0116
0117 Standard_EXPORT void Add (const Handle(GeomPlate_PointConstraint)& Cont);
0118
0119
0120
0121
0122
0123
0124
0125
0126 Standard_EXPORT void Perform(const Message_ProgressRange& theProgress = Message_ProgressRange());
0127
0128
0129 Standard_EXPORT Handle(GeomPlate_CurveConstraint) CurveConstraint (const Standard_Integer order) const;
0130
0131
0132 Standard_EXPORT Handle(GeomPlate_PointConstraint) PointConstraint (const Standard_Integer order) const;
0133
0134 Standard_EXPORT void Disc2dContour (const Standard_Integer nbp, TColgp_SequenceOfXY& Seq2d);
0135
0136 Standard_EXPORT void Disc3dContour (const Standard_Integer nbp, const Standard_Integer iordre, TColgp_SequenceOfXYZ& Seq3d);
0137
0138
0139
0140 Standard_EXPORT Standard_Boolean IsDone() const;
0141
0142
0143
0144
0145
0146 Standard_EXPORT Handle(GeomPlate_Surface) Surface() const;
0147
0148
0149 Standard_EXPORT Handle(Geom_Surface) SurfInit() const;
0150
0151
0152
0153
0154
0155
0156
0157
0158 Standard_EXPORT Handle(TColStd_HArray1OfInteger) Sense() const;
0159
0160
0161
0162
0163 Standard_EXPORT Handle(TColGeom2d_HArray1OfCurve) Curves2d() const;
0164
0165
0166
0167
0168
0169
0170 Standard_EXPORT Handle(TColStd_HArray1OfInteger) Order() const;
0171
0172
0173 Standard_EXPORT Standard_Real G0Error() const;
0174
0175
0176 Standard_EXPORT Standard_Real G1Error() const;
0177
0178
0179 Standard_EXPORT Standard_Real G2Error() const;
0180
0181
0182 Standard_EXPORT Standard_Real G0Error (const Standard_Integer Index);
0183
0184
0185 Standard_EXPORT Standard_Real G1Error (const Standard_Integer Index);
0186
0187
0188 Standard_EXPORT Standard_Real G2Error (const Standard_Integer Index);
0189
0190
0191
0192
0193 protected:
0194
0195
0196
0197
0198
0199 private:
0200
0201
0202
0203
0204
0205 Standard_EXPORT void EcartContraintesMil (const Standard_Integer c, Handle(TColStd_HArray1OfReal)& d, Handle(TColStd_HArray1OfReal)& an, Handle(TColStd_HArray1OfReal)& courb);
0206
0207 Standard_EXPORT gp_Pnt2d ProjectPoint (const gp_Pnt& P);
0208
0209 Standard_EXPORT Handle(Geom2d_Curve) ProjectCurve (const Handle(Adaptor3d_Curve)& Curv);
0210
0211 Standard_EXPORT Handle(Adaptor2d_Curve2d) ProjectedCurve (Handle(Adaptor3d_Curve)& Curv);
0212
0213 Standard_EXPORT void ComputeSurfInit(const Message_ProgressRange& theProgress);
0214
0215 Standard_EXPORT void Intersect (Handle(GeomPlate_HArray1OfSequenceOfReal)& PntInter, Handle(GeomPlate_HArray1OfSequenceOfReal)& PntG1G1);
0216
0217 Standard_EXPORT void Discretise (const Handle(GeomPlate_HArray1OfSequenceOfReal)& PntInter, const Handle(GeomPlate_HArray1OfSequenceOfReal)& PntG1G1);
0218
0219 Standard_EXPORT void LoadCurve (const Standard_Integer NbBoucle, const Standard_Integer OrderMax = 2);
0220
0221 Standard_EXPORT void LoadPoint (const Standard_Integer NbBoucle, const Standard_Integer OrderMax = 2);
0222
0223 Standard_EXPORT void CalculNbPtsInit();
0224
0225 Standard_EXPORT Standard_Boolean VerifSurface (const Standard_Integer NbLoop);
0226
0227 Standard_EXPORT void VerifPoints (Standard_Real& dist, Standard_Real& ang, Standard_Real& curv) const;
0228
0229 Standard_EXPORT Standard_Boolean CourbeJointive (const Standard_Real tolerance);
0230
0231 Standard_EXPORT Standard_Real ComputeAnisotropie() const;
0232
0233 Standard_EXPORT Standard_Boolean IsOrderG1() const;
0234
0235
0236 Handle(GeomPlate_HSequenceOfCurveConstraint) myLinCont;
0237 Handle(GeomPlate_HArray1OfSequenceOfReal) myParCont;
0238 Handle(GeomPlate_HArray1OfSequenceOfReal) myPlateCont;
0239 Handle(GeomPlate_HSequenceOfPointConstraint) myPntCont;
0240 Handle(Geom_Surface) mySurfInit;
0241 Handle(Geom_Surface) myPlanarSurfInit;
0242 Handle(GeomPlate_Surface) myGeomPlateSurface;
0243 Plate_Plate myPlate;
0244 Plate_Plate myPrevPlate;
0245 Standard_Boolean myAnisotropie;
0246 Handle(TColStd_HArray1OfInteger) mySense;
0247 Standard_Integer myDegree;
0248 Handle(TColStd_HArray1OfInteger) myInitOrder;
0249 Standard_Real myG0Error;
0250 Standard_Real myG1Error;
0251 Standard_Real myG2Error;
0252 Standard_Integer myNbPtsOnCur;
0253 Standard_Boolean mySurfInitIsGive;
0254 Standard_Integer myNbIter;
0255 Extrema_ExtPS myProj;
0256 Standard_Real myTol2d;
0257 Standard_Real myTol3d;
0258 Standard_Real myTolAng;
0259 Standard_Real myTolU;
0260 Standard_Real myTolV;
0261 Standard_Integer myNbBounds;
0262 Standard_Boolean myIsLinear;
0263 Standard_Boolean myFree;
0264
0265
0266 };
0267
0268
0269
0270
0271
0272
0273
0274 #endif