File indexing completed on 2025-01-18 10:03:06
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _BRepAdaptor_CompCurve_HeaderFile
0018 #define _BRepAdaptor_CompCurve_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023
0024 #include <TopoDS_Wire.hxx>
0025 #include <Standard_Real.hxx>
0026 #include <BRepAdaptor_HArray1OfCurve.hxx>
0027 #include <TColStd_HArray1OfReal.hxx>
0028 #include <Standard_Integer.hxx>
0029 #include <Standard_Boolean.hxx>
0030 #include <Adaptor3d_Curve.hxx>
0031 #include <GeomAbs_Shape.hxx>
0032 #include <TColStd_Array1OfReal.hxx>
0033 #include <GeomAbs_CurveType.hxx>
0034
0035 class TopoDS_Edge;
0036 class gp_Pnt;
0037 class gp_Vec;
0038 class gp_Lin;
0039 class gp_Circ;
0040 class gp_Elips;
0041 class gp_Hypr;
0042 class gp_Parab;
0043 class Geom_BezierCurve;
0044 class Geom_BSplineCurve;
0045
0046 DEFINE_STANDARD_HANDLE(BRepAdaptor_CompCurve, Adaptor3d_Curve)
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058 class BRepAdaptor_CompCurve : public Adaptor3d_Curve
0059 {
0060 DEFINE_STANDARD_RTTIEXT(BRepAdaptor_CompCurve, Adaptor3d_Curve)
0061 public:
0062
0063
0064 Standard_EXPORT BRepAdaptor_CompCurve();
0065
0066 Standard_EXPORT BRepAdaptor_CompCurve(const TopoDS_Wire& W, const Standard_Boolean KnotByCurvilinearAbcissa = Standard_False);
0067
0068
0069
0070 Standard_EXPORT BRepAdaptor_CompCurve(const TopoDS_Wire& W, const Standard_Boolean KnotByCurvilinearAbcissa, const Standard_Real First, const Standard_Real Last, const Standard_Real Tol);
0071
0072
0073 Standard_EXPORT virtual Handle(Adaptor3d_Curve) ShallowCopy() const Standard_OVERRIDE;
0074
0075
0076 Standard_EXPORT void Initialize (const TopoDS_Wire& W, const Standard_Boolean KnotByCurvilinearAbcissa);
0077
0078
0079 Standard_EXPORT void Initialize (const TopoDS_Wire& W, const Standard_Boolean KnotByCurvilinearAbcissa, const Standard_Real First, const Standard_Real Last, const Standard_Real Tol);
0080
0081
0082 Standard_EXPORT const TopoDS_Wire& Wire() const;
0083
0084
0085
0086 Standard_EXPORT void Edge (const Standard_Real U, TopoDS_Edge& E, Standard_Real& UonE) const;
0087
0088 Standard_EXPORT Standard_Real FirstParameter() const Standard_OVERRIDE;
0089
0090 Standard_EXPORT Standard_Real LastParameter() const Standard_OVERRIDE;
0091
0092 Standard_EXPORT GeomAbs_Shape Continuity() const Standard_OVERRIDE;
0093
0094
0095
0096 Standard_EXPORT Standard_Integer NbIntervals (const GeomAbs_Shape S) const Standard_OVERRIDE;
0097
0098
0099
0100
0101
0102
0103 Standard_EXPORT void Intervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const Standard_OVERRIDE;
0104
0105
0106
0107
0108
0109 Standard_EXPORT Handle(Adaptor3d_Curve) Trim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const Standard_OVERRIDE;
0110
0111 Standard_EXPORT Standard_Boolean IsClosed() const Standard_OVERRIDE;
0112
0113 Standard_EXPORT Standard_Boolean IsPeriodic() const Standard_OVERRIDE;
0114
0115 Standard_EXPORT Standard_Real Period() const Standard_OVERRIDE;
0116
0117
0118 Standard_EXPORT gp_Pnt Value (const Standard_Real U) const Standard_OVERRIDE;
0119
0120
0121 Standard_EXPORT void D0 (const Standard_Real U, gp_Pnt& P) const Standard_OVERRIDE;
0122
0123
0124
0125
0126
0127 Standard_EXPORT void D1 (const Standard_Real U, gp_Pnt& P, gp_Vec& V) const Standard_OVERRIDE;
0128
0129
0130
0131
0132
0133
0134 Standard_EXPORT void D2 (const Standard_Real U, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2) const Standard_OVERRIDE;
0135
0136
0137
0138
0139
0140
0141 Standard_EXPORT void D3 (const Standard_Real U, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2, gp_Vec& V3) const Standard_OVERRIDE;
0142
0143
0144
0145
0146
0147
0148
0149 Standard_EXPORT gp_Vec DN (const Standard_Real U, const Standard_Integer N) const Standard_OVERRIDE;
0150
0151
0152 Standard_EXPORT Standard_Real Resolution (const Standard_Real R3d) const Standard_OVERRIDE;
0153
0154 Standard_EXPORT GeomAbs_CurveType GetType() const Standard_OVERRIDE;
0155
0156 Standard_EXPORT gp_Lin Line() const Standard_OVERRIDE;
0157
0158 Standard_EXPORT gp_Circ Circle() const Standard_OVERRIDE;
0159
0160 Standard_EXPORT gp_Elips Ellipse() const Standard_OVERRIDE;
0161
0162 Standard_EXPORT gp_Hypr Hyperbola() const Standard_OVERRIDE;
0163
0164 Standard_EXPORT gp_Parab Parabola() const Standard_OVERRIDE;
0165
0166 Standard_EXPORT Standard_Integer Degree() const Standard_OVERRIDE;
0167
0168 Standard_EXPORT Standard_Boolean IsRational() const Standard_OVERRIDE;
0169
0170 Standard_EXPORT Standard_Integer NbPoles() const Standard_OVERRIDE;
0171
0172 Standard_EXPORT Standard_Integer NbKnots() const Standard_OVERRIDE;
0173
0174 Standard_EXPORT Handle(Geom_BezierCurve) Bezier() const Standard_OVERRIDE;
0175
0176 Standard_EXPORT Handle(Geom_BSplineCurve) BSpline() const Standard_OVERRIDE;
0177
0178
0179
0180
0181 protected:
0182
0183
0184
0185
0186
0187 private:
0188
0189
0190 Standard_EXPORT void Prepare (Standard_Real& W, Standard_Real& D, Standard_Integer& ind) const;
0191
0192 Standard_EXPORT void InvPrepare (const Standard_Integer ind, Standard_Real& F, Standard_Real& D) const;
0193
0194
0195 TopoDS_Wire myWire;
0196 Standard_Real TFirst;
0197 Standard_Real TLast;
0198 Standard_Real PTol;
0199 Handle(BRepAdaptor_HArray1OfCurve) myCurves;
0200 Handle(TColStd_HArray1OfReal) myKnots;
0201 Standard_Integer CurIndex;
0202 Standard_Boolean Forward;
0203 Standard_Boolean IsbyAC;
0204 };
0205
0206
0207
0208
0209
0210
0211
0212 #endif