File indexing completed on 2025-01-18 10:02:52
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _Adaptor3d_CurveOnSurface_HeaderFile
0018 #define _Adaptor3d_CurveOnSurface_HeaderFile
0019
0020 #include <Adaptor2d_Curve2d.hxx>
0021 #include <Adaptor3d_Surface.hxx>
0022 #include <GeomAbs_CurveType.hxx>
0023 #include <GeomAbs_Shape.hxx>
0024 #include <TColStd_Array1OfReal.hxx>
0025 #include <TColStd_HSequenceOfReal.hxx>
0026
0027 DEFINE_STANDARD_HANDLE(Adaptor3d_CurveOnSurface, Adaptor3d_Curve)
0028
0029
0030
0031
0032
0033
0034 class Adaptor3d_CurveOnSurface : public Adaptor3d_Curve
0035 {
0036 DEFINE_STANDARD_RTTIEXT(Adaptor3d_CurveOnSurface, Adaptor3d_Curve)
0037 public:
0038
0039 Standard_EXPORT Adaptor3d_CurveOnSurface();
0040
0041 Standard_EXPORT Adaptor3d_CurveOnSurface(const Handle(Adaptor3d_Surface)& S);
0042
0043
0044
0045 Standard_EXPORT Adaptor3d_CurveOnSurface(const Handle(Adaptor2d_Curve2d)& C, const Handle(Adaptor3d_Surface)& S);
0046
0047
0048 Standard_EXPORT virtual Handle(Adaptor3d_Curve) ShallowCopy() const Standard_OVERRIDE;
0049
0050
0051 Standard_EXPORT void Load (const Handle(Adaptor3d_Surface)& S);
0052
0053
0054 Standard_EXPORT void Load (const Handle(Adaptor2d_Curve2d)& C);
0055
0056
0057 Standard_EXPORT void Load (const Handle(Adaptor2d_Curve2d)& C, const Handle(Adaptor3d_Surface)& S);
0058
0059 Standard_EXPORT const Handle(Adaptor2d_Curve2d)& GetCurve() const;
0060
0061 Standard_EXPORT const Handle(Adaptor3d_Surface)& GetSurface() const;
0062
0063 Standard_EXPORT Handle(Adaptor2d_Curve2d)& ChangeCurve();
0064
0065 Standard_EXPORT Handle(Adaptor3d_Surface)& ChangeSurface();
0066
0067 Standard_EXPORT Standard_Real FirstParameter() const Standard_OVERRIDE;
0068
0069 Standard_EXPORT Standard_Real LastParameter() const Standard_OVERRIDE;
0070
0071 Standard_EXPORT GeomAbs_Shape Continuity() const Standard_OVERRIDE;
0072
0073
0074
0075 Standard_EXPORT Standard_Integer NbIntervals (const GeomAbs_Shape S) const Standard_OVERRIDE;
0076
0077
0078
0079
0080
0081
0082 Standard_EXPORT void Intervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const Standard_OVERRIDE;
0083
0084
0085
0086
0087
0088 Standard_EXPORT Handle(Adaptor3d_Curve) Trim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const Standard_OVERRIDE;
0089
0090 Standard_EXPORT Standard_Boolean IsClosed() const Standard_OVERRIDE;
0091
0092 Standard_EXPORT Standard_Boolean IsPeriodic() const Standard_OVERRIDE;
0093
0094 Standard_EXPORT Standard_Real Period() const Standard_OVERRIDE;
0095
0096
0097 Standard_EXPORT gp_Pnt Value (const Standard_Real U) const Standard_OVERRIDE;
0098
0099
0100 Standard_EXPORT void D0 (const Standard_Real U, gp_Pnt& P) const Standard_OVERRIDE;
0101
0102
0103
0104
0105
0106 Standard_EXPORT void D1 (const Standard_Real U, gp_Pnt& P, gp_Vec& V) const Standard_OVERRIDE;
0107
0108
0109
0110
0111
0112
0113 Standard_EXPORT void D2 (const Standard_Real U, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2) const Standard_OVERRIDE;
0114
0115
0116
0117
0118
0119
0120 Standard_EXPORT void D3 (const Standard_Real U, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2, gp_Vec& V3) const Standard_OVERRIDE;
0121
0122
0123
0124
0125
0126
0127
0128 Standard_EXPORT gp_Vec DN (const Standard_Real U, const Standard_Integer N) const Standard_OVERRIDE;
0129
0130
0131
0132 Standard_EXPORT Standard_Real Resolution (const Standard_Real R3d) const Standard_OVERRIDE;
0133
0134
0135
0136
0137 Standard_EXPORT GeomAbs_CurveType GetType() const Standard_OVERRIDE;
0138
0139 Standard_EXPORT gp_Lin Line() const Standard_OVERRIDE;
0140
0141 Standard_EXPORT gp_Circ Circle() const Standard_OVERRIDE;
0142
0143 Standard_EXPORT gp_Elips Ellipse() const Standard_OVERRIDE;
0144
0145 Standard_EXPORT gp_Hypr Hyperbola() const Standard_OVERRIDE;
0146
0147 Standard_EXPORT gp_Parab Parabola() const Standard_OVERRIDE;
0148
0149 Standard_EXPORT Standard_Integer Degree() const Standard_OVERRIDE;
0150
0151 Standard_EXPORT Standard_Boolean IsRational() const Standard_OVERRIDE;
0152
0153 Standard_EXPORT Standard_Integer NbPoles() const Standard_OVERRIDE;
0154
0155 Standard_EXPORT Standard_Integer NbKnots() const Standard_OVERRIDE;
0156
0157 Standard_EXPORT Handle(Geom_BezierCurve) Bezier() const Standard_OVERRIDE;
0158
0159 Standard_EXPORT Handle(Geom_BSplineCurve) BSpline() const Standard_OVERRIDE;
0160
0161 private:
0162
0163 Standard_EXPORT void EvalKPart();
0164
0165
0166
0167
0168
0169
0170 Standard_EXPORT void EvalFirstLastSurf();
0171
0172 Standard_EXPORT void LocatePart (const gp_Pnt2d& UV, const gp_Vec2d& DUV, const Handle(Adaptor3d_Surface)& S, gp_Pnt2d& LeftBot, gp_Pnt2d& RightTop) const;
0173
0174 Standard_EXPORT Standard_Boolean LocatePart_RevExt (const gp_Pnt2d& UV, const gp_Vec2d& DUV, const Handle(Adaptor3d_Surface)& S, gp_Pnt2d& LeftBot, gp_Pnt2d& RightTop) const;
0175
0176 Standard_EXPORT Standard_Boolean LocatePart_Offset (const gp_Pnt2d& UV, const gp_Vec2d& DUV, const Handle(Adaptor3d_Surface)& S, gp_Pnt2d& LeftBot, gp_Pnt2d& RightTop) const;
0177
0178
0179
0180
0181 Standard_EXPORT void FindBounds (const TColStd_Array1OfReal& Arr, const Standard_Real XYComp, const Standard_Real DUVComp, Standard_Integer& Bnd1, Standard_Integer& Bnd2, Standard_Boolean& DerIsNull) const;
0182
0183 private:
0184
0185 Handle(Adaptor3d_Surface) mySurface;
0186 Handle(Adaptor2d_Curve2d) myCurve;
0187 GeomAbs_CurveType myType;
0188 gp_Circ myCirc;
0189 gp_Lin myLin;
0190 Handle(Adaptor3d_Surface) myFirstSurf;
0191 Handle(Adaptor3d_Surface) myLastSurf;
0192 Handle(TColStd_HSequenceOfReal) myIntervals;
0193 GeomAbs_Shape myIntCont;
0194
0195 };
0196
0197 #endif