File indexing completed on 2026-05-23 08:17:02
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _GeomPlate_CurveConstraint_HeaderFile
0018 #define _GeomPlate_CurveConstraint_HeaderFile
0019
0020 #include <Adaptor3d_CurveOnSurface.hxx>
0021 #include <GeomLProp_SLProps.hxx>
0022
0023 class Geom2d_Curve;
0024 class Law_Function;
0025 class gp_Pnt;
0026 class gp_Vec;
0027
0028 class GeomPlate_CurveConstraint;
0029 DEFINE_STANDARD_HANDLE(GeomPlate_CurveConstraint, Standard_Transient)
0030
0031
0032 class GeomPlate_CurveConstraint : public Standard_Transient
0033 {
0034
0035 public:
0036
0037 Standard_EXPORT GeomPlate_CurveConstraint();
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048 Standard_EXPORT GeomPlate_CurveConstraint(const Handle(Adaptor3d_Curve)& Boundary,
0049 const Standard_Integer Order,
0050 const Standard_Integer NPt = 10,
0051 const Standard_Real TolDist = 0.0001,
0052 const Standard_Real TolAng = 0.01,
0053 const Standard_Real TolCurv = 0.1);
0054
0055
0056
0057
0058 Standard_EXPORT void SetOrder(const Standard_Integer Order);
0059
0060
0061 Standard_EXPORT Standard_Integer Order() const;
0062
0063
0064
0065
0066
0067 Standard_EXPORT Standard_Integer NbPoints() const;
0068
0069
0070
0071
0072
0073 Standard_EXPORT void SetNbPoints(const Standard_Integer NewNb);
0074
0075
0076
0077
0078
0079
0080 Standard_EXPORT void SetG0Criterion(const Handle(Law_Function)& G0Crit);
0081
0082
0083
0084
0085
0086
0087 Standard_EXPORT void SetG1Criterion(const Handle(Law_Function)& G1Crit);
0088
0089 Standard_EXPORT void SetG2Criterion(const Handle(Law_Function)& G2Crit);
0090
0091
0092
0093
0094 Standard_EXPORT Standard_Real G0Criterion(const Standard_Real U) const;
0095
0096
0097
0098
0099
0100 Standard_EXPORT Standard_Real G1Criterion(const Standard_Real U) const;
0101
0102
0103
0104
0105
0106 Standard_EXPORT Standard_Real G2Criterion(const Standard_Real U) const;
0107
0108 Standard_EXPORT Standard_Real FirstParameter() const;
0109
0110 Standard_EXPORT Standard_Real LastParameter() const;
0111
0112 Standard_EXPORT Standard_Real Length() const;
0113
0114 Standard_EXPORT GeomLProp_SLProps& LPropSurf(const Standard_Real U);
0115
0116 Standard_EXPORT void D0(const Standard_Real U, gp_Pnt& P) const;
0117
0118 Standard_EXPORT void D1(const Standard_Real U, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2) const;
0119
0120 Standard_EXPORT void D2(const Standard_Real U,
0121 gp_Pnt& P,
0122 gp_Vec& V1,
0123 gp_Vec& V2,
0124 gp_Vec& V3,
0125 gp_Vec& V4,
0126 gp_Vec& V5) const;
0127
0128 Standard_EXPORT Handle(Adaptor3d_Curve) Curve3d() const;
0129
0130
0131 Standard_EXPORT void SetCurve2dOnSurf(const Handle(Geom2d_Curve)& Curve2d);
0132
0133
0134 Standard_EXPORT Handle(Geom2d_Curve) Curve2dOnSurf() const;
0135
0136
0137
0138 Standard_EXPORT void SetProjectedCurve(const Handle(Adaptor2d_Curve2d)& Curve2d,
0139 const Standard_Real TolU,
0140 const Standard_Real TolV);
0141
0142
0143
0144 Standard_EXPORT Handle(Adaptor2d_Curve2d) ProjectedCurve() const;
0145
0146 DEFINE_STANDARD_RTTIEXT(GeomPlate_CurveConstraint, Standard_Transient)
0147
0148 protected:
0149 Handle(Adaptor3d_CurveOnSurface) myFrontiere;
0150 Standard_Integer myNbPoints;
0151 Standard_Integer myOrder;
0152 Handle(Adaptor3d_Curve) my3dCurve;
0153 Standard_Integer myTang;
0154 Handle(Geom2d_Curve) my2dCurve;
0155 Handle(Adaptor2d_Curve2d) myHCurve2d;
0156 Handle(Law_Function) myG0Crit;
0157 Handle(Law_Function) myG1Crit;
0158 Handle(Law_Function) myG2Crit;
0159 Standard_Boolean myConstG0;
0160 Standard_Boolean myConstG1;
0161 Standard_Boolean myConstG2;
0162 GeomLProp_SLProps myLProp;
0163 Standard_Real myTolDist;
0164 Standard_Real myTolAng;
0165 Standard_Real myTolCurv;
0166 Standard_Real myTolU;
0167 Standard_Real myTolV;
0168 };
0169
0170 #endif