File indexing completed on 2025-01-18 10:04:39
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _ProjLib_ProjectedCurve_HeaderFile
0018 #define _ProjLib_ProjectedCurve_HeaderFile
0019
0020 #include <Adaptor2d_Curve2d.hxx>
0021 #include <Adaptor3d_Surface.hxx>
0022 #include <AppParCurves_Constraint.hxx>
0023 #include <GeomAbs_CurveType.hxx>
0024 #include <GeomAbs_Shape.hxx>
0025 #include <ProjLib_Projector.hxx>
0026 #include <TColStd_Array1OfReal.hxx>
0027
0028 class gp_Pnt2d;
0029 class gp_Vec2d;
0030 class gp_Lin2d;
0031 class gp_Circ2d;
0032 class gp_Elips2d;
0033 class gp_Hypr2d;
0034 class gp_Parab2d;
0035 class Geom2d_BezierCurve;
0036 class Geom2d_BSplineCurve;
0037
0038 DEFINE_STANDARD_HANDLE(ProjLib_ProjectedCurve, Adaptor2d_Curve2d)
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049 class ProjLib_ProjectedCurve : public Adaptor2d_Curve2d
0050 {
0051 DEFINE_STANDARD_RTTIEXT(ProjLib_ProjectedCurve, Adaptor2d_Curve2d)
0052 public:
0053
0054
0055 Standard_EXPORT ProjLib_ProjectedCurve();
0056
0057
0058 Standard_EXPORT ProjLib_ProjectedCurve(const Handle(Adaptor3d_Surface)& S);
0059
0060
0061
0062
0063 Standard_EXPORT ProjLib_ProjectedCurve(const Handle(Adaptor3d_Surface)& S, const Handle(Adaptor3d_Curve)& C);
0064
0065
0066
0067 Standard_EXPORT ProjLib_ProjectedCurve(const Handle(Adaptor3d_Surface)& S, const Handle(Adaptor3d_Curve)& C, const Standard_Real Tol);
0068
0069
0070 Standard_EXPORT virtual Handle(Adaptor2d_Curve2d) ShallowCopy() const Standard_OVERRIDE;
0071
0072
0073
0074 Standard_EXPORT void Load (const Standard_Real Tolerance);
0075
0076
0077 Standard_EXPORT void Load (const Handle(Adaptor3d_Surface)& S);
0078
0079
0080
0081
0082
0083 Standard_EXPORT void Perform (const Handle(Adaptor3d_Curve)& C);
0084
0085
0086
0087
0088 Standard_EXPORT void SetDegree(const Standard_Integer theDegMin, const Standard_Integer theDegMax);
0089
0090
0091
0092
0093 Standard_EXPORT void SetMaxSegments(const Standard_Integer theMaxSegments);
0094
0095
0096
0097
0098 Standard_EXPORT void SetBndPnt(const AppParCurves_Constraint theBndPnt);
0099
0100
0101
0102
0103
0104 Standard_EXPORT void SetMaxDist(const Standard_Real theMaxDist);
0105
0106 Standard_EXPORT const Handle(Adaptor3d_Surface)& GetSurface() const;
0107
0108 Standard_EXPORT const Handle(Adaptor3d_Curve)& GetCurve() const;
0109
0110
0111
0112 Standard_EXPORT Standard_Real GetTolerance() const;
0113
0114 Standard_EXPORT Standard_Real FirstParameter() const Standard_OVERRIDE;
0115
0116 Standard_EXPORT Standard_Real LastParameter() const Standard_OVERRIDE;
0117
0118 Standard_EXPORT GeomAbs_Shape Continuity() const Standard_OVERRIDE;
0119
0120
0121
0122
0123 Standard_EXPORT Standard_Integer NbIntervals (const GeomAbs_Shape S) const Standard_OVERRIDE;
0124
0125
0126
0127
0128
0129
0130 Standard_EXPORT void Intervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const Standard_OVERRIDE;
0131
0132
0133
0134
0135
0136 Standard_EXPORT Handle(Adaptor2d_Curve2d) Trim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const Standard_OVERRIDE;
0137
0138 Standard_EXPORT Standard_Boolean IsClosed() const Standard_OVERRIDE;
0139
0140 Standard_EXPORT Standard_Boolean IsPeriodic() const Standard_OVERRIDE;
0141
0142 Standard_EXPORT Standard_Real Period() const Standard_OVERRIDE;
0143
0144
0145 Standard_EXPORT gp_Pnt2d Value (const Standard_Real U) const Standard_OVERRIDE;
0146
0147
0148 Standard_EXPORT void D0 (const Standard_Real U, gp_Pnt2d& P) const Standard_OVERRIDE;
0149
0150
0151
0152
0153
0154 Standard_EXPORT void D1 (const Standard_Real U, gp_Pnt2d& P, gp_Vec2d& V) const Standard_OVERRIDE;
0155
0156
0157
0158
0159
0160
0161 Standard_EXPORT void D2 (const Standard_Real U, gp_Pnt2d& P, gp_Vec2d& V1, gp_Vec2d& V2) const Standard_OVERRIDE;
0162
0163
0164
0165
0166
0167
0168 Standard_EXPORT void D3 (const Standard_Real U, gp_Pnt2d& P, gp_Vec2d& V1, gp_Vec2d& V2, gp_Vec2d& V3) const Standard_OVERRIDE;
0169
0170
0171
0172
0173
0174
0175
0176 Standard_EXPORT gp_Vec2d DN (const Standard_Real U, const Standard_Integer N) const Standard_OVERRIDE;
0177
0178
0179
0180 Standard_EXPORT Standard_Real Resolution (const Standard_Real R3d) const Standard_OVERRIDE;
0181
0182
0183
0184
0185 Standard_EXPORT GeomAbs_CurveType GetType() const Standard_OVERRIDE;
0186
0187 Standard_EXPORT gp_Lin2d Line() const Standard_OVERRIDE;
0188
0189 Standard_EXPORT gp_Circ2d Circle() const Standard_OVERRIDE;
0190
0191 Standard_EXPORT gp_Elips2d Ellipse() const Standard_OVERRIDE;
0192
0193 Standard_EXPORT gp_Hypr2d Hyperbola() const Standard_OVERRIDE;
0194
0195 Standard_EXPORT gp_Parab2d Parabola() const Standard_OVERRIDE;
0196
0197 Standard_EXPORT Standard_Integer Degree() const Standard_OVERRIDE;
0198
0199 Standard_EXPORT Standard_Boolean IsRational() const Standard_OVERRIDE;
0200
0201 Standard_EXPORT Standard_Integer NbPoles() const Standard_OVERRIDE;
0202
0203 Standard_EXPORT Standard_Integer NbKnots() const Standard_OVERRIDE;
0204
0205
0206
0207
0208
0209 Standard_EXPORT Handle(Geom2d_BezierCurve) Bezier() const Standard_OVERRIDE;
0210
0211
0212
0213
0214
0215 Standard_EXPORT Handle(Geom2d_BSplineCurve) BSpline() const Standard_OVERRIDE;
0216
0217 private:
0218
0219 Standard_Real myTolerance;
0220 Handle(Adaptor3d_Surface) mySurface;
0221 Handle(Adaptor3d_Curve) myCurve;
0222 ProjLib_Projector myResult;
0223 Standard_Integer myDegMin;
0224 Standard_Integer myDegMax;
0225 Standard_Integer myMaxSegments;
0226 Standard_Real myMaxDist;
0227 AppParCurves_Constraint myBndPnt;
0228 };
0229
0230 #endif