Warning, file /include/opencascade/ProjLib_ProjectOnPlane.hxx was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _ProjLib_ProjectOnPlane_HeaderFile
0018 #define _ProjLib_ProjectOnPlane_HeaderFile
0019
0020 #include <Adaptor3d_Curve.hxx>
0021 #include <gp_Ax3.hxx>
0022 #include <gp_Dir.hxx>
0023 #include <GeomAbs_CurveType.hxx>
0024 #include <GeomAdaptor_Curve.hxx>
0025 #include <GeomAbs_Shape.hxx>
0026 #include <NCollection_Array1.hxx>
0027
0028 class gp_Pnt;
0029 class gp_Vec;
0030 class gp_Lin;
0031 class gp_Circ;
0032 class gp_Elips;
0033 class gp_Hypr;
0034 class gp_Parab;
0035 class Geom_BezierCurve;
0036 class Geom_BSplineCurve;
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046 class ProjLib_ProjectOnPlane : public Adaptor3d_Curve
0047 {
0048 public:
0049 DEFINE_STANDARD_ALLOC
0050
0051
0052 Standard_EXPORT ProjLib_ProjectOnPlane();
0053
0054
0055
0056 Standard_EXPORT ProjLib_ProjectOnPlane(const gp_Ax3& Pl);
0057
0058
0059
0060
0061
0062 Standard_EXPORT ProjLib_ProjectOnPlane(const gp_Ax3& Pl, const gp_Dir& D);
0063
0064
0065 Standard_EXPORT occ::handle<Adaptor3d_Curve> ShallowCopy() const override;
0066
0067
0068
0069
0070
0071
0072
0073 Standard_EXPORT void Load(const occ::handle<Adaptor3d_Curve>& C,
0074 const double Tolerance,
0075 const bool KeepParametrization = true);
0076
0077 Standard_EXPORT const gp_Ax3& GetPlane() const;
0078
0079 Standard_EXPORT const gp_Dir& GetDirection() const;
0080
0081 Standard_EXPORT const occ::handle<Adaptor3d_Curve>& GetCurve() const;
0082
0083 Standard_EXPORT const occ::handle<GeomAdaptor_Curve>& GetResult() const;
0084
0085 Standard_EXPORT double FirstParameter() const override;
0086
0087 Standard_EXPORT double LastParameter() const override;
0088
0089 Standard_EXPORT GeomAbs_Shape Continuity() const override;
0090
0091
0092
0093
0094 Standard_EXPORT int NbIntervals(const GeomAbs_Shape S) const override;
0095
0096
0097
0098
0099
0100 Standard_EXPORT void Intervals(NCollection_Array1<double>& T,
0101 const GeomAbs_Shape S) const override;
0102
0103
0104
0105
0106
0107 Standard_EXPORT occ::handle<Adaptor3d_Curve> Trim(const double First,
0108 const double Last,
0109 const double Tol) const override;
0110
0111 Standard_EXPORT bool IsClosed() const override;
0112
0113 Standard_EXPORT bool IsPeriodic() const override;
0114
0115 Standard_EXPORT double Period() const override;
0116
0117
0118 [[nodiscard]] Standard_EXPORT gp_Pnt EvalD0(const double theU) const final;
0119
0120
0121
0122 [[nodiscard]] Standard_EXPORT Geom_Curve::ResD1 EvalD1(const double theU) const final;
0123
0124
0125
0126 [[nodiscard]] Standard_EXPORT Geom_Curve::ResD2 EvalD2(const double theU) const final;
0127
0128
0129
0130 [[nodiscard]] Standard_EXPORT Geom_Curve::ResD3 EvalD3(const double theU) const final;
0131
0132
0133
0134
0135 [[nodiscard]] Standard_EXPORT gp_Vec EvalDN(const double theU, const int theN) const final;
0136
0137
0138
0139 Standard_EXPORT double Resolution(const double R3d) const override;
0140
0141
0142
0143
0144 Standard_EXPORT GeomAbs_CurveType GetType() const override;
0145
0146 Standard_EXPORT gp_Lin Line() const override;
0147
0148 Standard_EXPORT gp_Circ Circle() const override;
0149
0150 Standard_EXPORT gp_Elips Ellipse() const override;
0151
0152 Standard_EXPORT gp_Hypr Hyperbola() const override;
0153
0154 Standard_EXPORT gp_Parab Parabola() const override;
0155
0156 Standard_EXPORT int Degree() const override;
0157
0158 Standard_EXPORT bool IsRational() const override;
0159
0160 Standard_EXPORT int NbPoles() const override;
0161
0162 Standard_EXPORT int NbKnots() const override;
0163
0164
0165
0166
0167
0168
0169 Standard_EXPORT occ::handle<Geom_BezierCurve> Bezier() const override;
0170
0171
0172
0173
0174
0175
0176 Standard_EXPORT occ::handle<Geom_BSplineCurve> BSpline() const override;
0177
0178 protected:
0179 void GetTrimmedResult(const occ::handle<Geom_Curve>& theProjCurve);
0180
0181 bool BuildParabolaByApex(occ::handle<Geom_Curve>& theGeomParabolaPtr);
0182 bool BuildHyperbolaByApex(occ::handle<Geom_Curve>& theGeomParabolaPtr);
0183
0184 void BuildByApprox(const double theLimitParameter);
0185
0186 private:
0187 occ::handle<Adaptor3d_Curve> myCurve;
0188 gp_Ax3 myPlane;
0189 gp_Dir myDirection;
0190 bool myKeepParam;
0191 double myFirstPar;
0192 double myLastPar;
0193 double myTolerance;
0194 GeomAbs_CurveType myType;
0195 occ::handle<GeomAdaptor_Curve> myResult;
0196 bool myIsApprox;
0197 };
0198
0199 #endif