File indexing completed on 2026-09-25 09:19:41
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _Geom2d_VectorWithMagnitude_HeaderFile
0018 #define _Geom2d_VectorWithMagnitude_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_Type.hxx>
0022
0023 #include <Geom2d_Vector.hxx>
0024 class gp_Vec2d;
0025 class gp_Pnt2d;
0026 class gp_Trsf2d;
0027 class Geom2d_Geometry;
0028
0029
0030
0031 class Geom2d_VectorWithMagnitude : public Geom2d_Vector
0032 {
0033
0034 public:
0035
0036 Standard_EXPORT Geom2d_VectorWithMagnitude(const gp_Vec2d& V);
0037
0038
0039 Standard_EXPORT Geom2d_VectorWithMagnitude(const double X, const double Y);
0040
0041
0042
0043 Standard_EXPORT Geom2d_VectorWithMagnitude(const gp_Pnt2d& P1, const gp_Pnt2d& P2);
0044
0045
0046 Standard_EXPORT void SetCoord(const double X, const double Y);
0047
0048 Standard_EXPORT void SetVec2d(const gp_Vec2d& V);
0049
0050
0051 Standard_EXPORT void SetX(const double X);
0052
0053
0054 Standard_EXPORT void SetY(const double Y);
0055
0056
0057 Standard_EXPORT double Magnitude() const override;
0058
0059
0060 Standard_EXPORT double SquareMagnitude() const override;
0061
0062
0063 Standard_EXPORT void Add(const occ::handle<Geom2d_Vector>& Other);
0064
0065 void operator+=(const occ::handle<Geom2d_Vector>& Other) { Add(Other); }
0066
0067
0068 [[nodiscard]] Standard_EXPORT occ::handle<Geom2d_VectorWithMagnitude> Added(
0069 const occ::handle<Geom2d_Vector>& Other) const;
0070
0071 [[nodiscard]] occ::handle<Geom2d_VectorWithMagnitude> operator+(
0072 const occ::handle<Geom2d_Vector>& Other) const
0073 {
0074 return Added(Other);
0075 }
0076
0077
0078
0079 Standard_EXPORT double Crossed(const occ::handle<Geom2d_Vector>& Other) const override;
0080
0081 double operator^(const occ::handle<Geom2d_Vector>& Other) const { return Crossed(Other); }
0082
0083
0084 Standard_EXPORT void Divide(const double Scalar);
0085
0086 void operator/=(const double Scalar) { Divide(Scalar); }
0087
0088
0089 [[nodiscard]] Standard_EXPORT occ::handle<Geom2d_VectorWithMagnitude> Divided(
0090 const double Scalar) const;
0091
0092 [[nodiscard]] occ::handle<Geom2d_VectorWithMagnitude> operator/(const double Scalar) const
0093 {
0094 return Divided(Scalar);
0095 }
0096
0097
0098
0099
0100
0101
0102 [[nodiscard]] Standard_EXPORT occ::handle<Geom2d_VectorWithMagnitude> Multiplied(
0103 const double Scalar) const;
0104
0105
0106 Standard_EXPORT void Multiply(const double Scalar);
0107
0108 void operator*=(const double Scalar) { Multiply(Scalar); }
0109
0110
0111
0112
0113
0114 Standard_EXPORT void Normalize();
0115
0116
0117
0118
0119
0120 [[nodiscard]] Standard_EXPORT occ::handle<Geom2d_VectorWithMagnitude> Normalized() const;
0121
0122
0123 Standard_EXPORT void Subtract(const occ::handle<Geom2d_Vector>& Other);
0124
0125 void operator-=(const occ::handle<Geom2d_Vector>& Other) { Subtract(Other); }
0126
0127
0128 [[nodiscard]] Standard_EXPORT occ::handle<Geom2d_VectorWithMagnitude> Subtracted(
0129 const occ::handle<Geom2d_Vector>& Other) const;
0130
0131 [[nodiscard]] occ::handle<Geom2d_VectorWithMagnitude> operator-(
0132 const occ::handle<Geom2d_Vector>& Other) const
0133 {
0134 return Subtracted(Other);
0135 }
0136
0137
0138 Standard_EXPORT void Transform(const gp_Trsf2d& T) override;
0139
0140
0141 Standard_EXPORT occ::handle<Geom2d_Geometry> Copy() const override;
0142
0143 DEFINE_STANDARD_RTTIEXT(Geom2d_VectorWithMagnitude, Geom2d_Vector)
0144 };
0145
0146 #endif