File indexing completed on 2025-01-18 10:03:34
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #ifndef _Geom2dEvaluator_OffsetCurve_HeaderFile
0016 #define _Geom2dEvaluator_OffsetCurve_HeaderFile
0017
0018 #include <Geom2dAdaptor_Curve.hxx>
0019 #include <Geom2dEvaluator_Curve.hxx>
0020
0021
0022 class Geom2dEvaluator_OffsetCurve : public Geom2dEvaluator_Curve
0023 {
0024 public:
0025
0026 Standard_EXPORT Geom2dEvaluator_OffsetCurve(
0027 const Handle(Geom2d_Curve)& theBase,
0028 const Standard_Real theOffset);
0029
0030 Standard_EXPORT Geom2dEvaluator_OffsetCurve(
0031 const Handle(Geom2dAdaptor_Curve)& theBase,
0032 const Standard_Real theOffset);
0033
0034
0035 void SetOffsetValue(Standard_Real theOffset)
0036 { myOffset = theOffset; }
0037
0038
0039 Standard_EXPORT void D0(const Standard_Real theU,
0040 gp_Pnt2d& theValue) const Standard_OVERRIDE;
0041
0042 Standard_EXPORT void D1(const Standard_Real theU,
0043 gp_Pnt2d& theValue, gp_Vec2d& theD1) const Standard_OVERRIDE;
0044
0045 Standard_EXPORT void D2(const Standard_Real theU,
0046 gp_Pnt2d& theValue, gp_Vec2d& theD1, gp_Vec2d& theD2) const Standard_OVERRIDE;
0047
0048 Standard_EXPORT void D3(const Standard_Real theU,
0049 gp_Pnt2d& theValue, gp_Vec2d& theD1,
0050 gp_Vec2d& theD2, gp_Vec2d& theD3) const Standard_OVERRIDE;
0051
0052 Standard_EXPORT gp_Vec2d DN(const Standard_Real theU,
0053 const Standard_Integer theDeriv) const Standard_OVERRIDE;
0054
0055 Standard_EXPORT Handle(Geom2dEvaluator_Curve) ShallowCopy() const Standard_OVERRIDE;
0056
0057 DEFINE_STANDARD_RTTIEXT(Geom2dEvaluator_OffsetCurve,Geom2dEvaluator_Curve)
0058
0059 private:
0060
0061 void BaseD0(const Standard_Real theU, gp_Pnt2d& theValue) const;
0062
0063 void BaseD1(const Standard_Real theU,
0064 gp_Pnt2d& theValue, gp_Vec2d& theD1) const;
0065
0066 void BaseD2(const Standard_Real theU,
0067 gp_Pnt2d& theValue, gp_Vec2d& theD1, gp_Vec2d& theD2) const;
0068
0069 void BaseD3(const Standard_Real theU,
0070 gp_Pnt2d& theValue, gp_Vec2d& theD1, gp_Vec2d& theD2, gp_Vec2d& theD3) const;
0071
0072 void BaseD4(const Standard_Real theU,
0073 gp_Pnt2d& theValue, gp_Vec2d& theD1, gp_Vec2d& theD2, gp_Vec2d& theD3, gp_Vec2d& theD4) const;
0074
0075 gp_Vec2d BaseDN(const Standard_Real theU, const Standard_Integer theDeriv) const;
0076
0077
0078
0079 Standard_Boolean AdjustDerivative(const Standard_Integer theMaxDerivative,
0080 const Standard_Real theU,
0081 gp_Vec2d& theD1,
0082 gp_Vec2d& theD2,
0083 gp_Vec2d& theD3,
0084 gp_Vec2d& theD4) const;
0085
0086 private:
0087 Handle(Geom2d_Curve) myBaseCurve;
0088 Handle(Geom2dAdaptor_Curve) myBaseAdaptor;
0089
0090 Standard_Real myOffset;
0091 };
0092
0093 DEFINE_STANDARD_HANDLE(Geom2dEvaluator_OffsetCurve, Geom2dEvaluator_Curve)
0094
0095
0096 #endif