OCCT 8.0.1
OCCT documentation

Search guides and API reference

Enter at least two characters.

    Open CASCADE Technology Reference Manual 8.0.1
    gp_Vec2d Class Reference

    Defines a non-persistent vector in 2D space. More...

    #include <gp_Vec2d.hxx>

    Public Member Functions

    constexpr gp_Vec2d () noexcept=default
     Creates a zero vector.
    constexpr gp_Vec2d (const gp_Dir2d &theV)
     Creates a unitary vector from a direction theV.
    constexpr gp_Vec2d (const gp_XY &theCoord) noexcept
     Creates a vector with a doublet of coordinates.
    constexpr gp_Vec2d (const double theXv, const double theYv) noexcept
     Creates a point with its two Cartesian coordinates.
    constexpr gp_Vec2d (const gp_Pnt2d &theP1, const gp_Pnt2d &theP2)
     Creates a vector from two points. The length of the vector is the distance between theP1 and theP2.
    constexpr void SetCoord (const int theIndex, const double theXi)
     Changes the coordinate of range theIndex theIndex = 1 => X is modified theIndex = 2 => Y is modified Raises OutOfRange if theIndex != {1, 2}.
    constexpr void SetCoord (const double theXv, const double theYv) noexcept
     For this vector, assigns the values theXv and theYv to its two coordinates.
    constexpr void SetX (const double theX) noexcept
     Assigns the given value to the X coordinate of this vector.
    constexpr void SetY (const double theY) noexcept
     Assigns the given value to the Y coordinate of this vector.
    constexpr void SetXY (const gp_XY &theCoord) noexcept
     Assigns the two coordinates of theCoord to this vector.
    constexpr double Coord (const int theIndex) const
     Returns the coordinate of range theIndex : theIndex = 1 => X is returned theIndex = 2 => Y is returned Raised if theIndex != {1, 2}.
    constexpr void Coord (double &theXv, double &theYv) const noexcept
     For this vector, returns its two coordinates theXv and theYv.
    constexpr double X () const noexcept
     For this vector, returns its X coordinate.
    constexpr double Y () const noexcept
     For this vector, returns its Y coordinate.
    constexpr const gp_XY & XY () const noexcept
     For this vector, returns its two coordinates as a number pair.
    bool IsEqual (const gp_Vec2d &theOther, const double theLinearTolerance, const double theAngularTolerance) const
     Returns True if the two vectors have the same magnitude value and the same direction. The precision values are theLinearTolerance for the magnitude and theAngularTolerance for the direction.
    bool IsNormal (const gp_Vec2d &theOther, const double theAngularTolerance) const
     Returns True if abs(std::abs(<me>.Angle(theOther)) - PI/2.) <= theAngularTolerance Raises VectorWithNullMagnitude if <me>.Magnitude() <= Resolution or theOther.Magnitude() <= Resolution from gp.
    bool IsOpposite (const gp_Vec2d &theOther, const double theAngularTolerance) const
     Returns True if PI - std::abs(<me>.Angle(theOther)) <= theAngularTolerance Raises VectorWithNullMagnitude if <me>.Magnitude() <= Resolution or theOther.Magnitude() <= Resolution from gp.
    bool IsParallel (const gp_Vec2d &theOther, const double theAngularTolerance) const
     Returns true if std::abs(Angle(<me>, theOther)) <= theAngularTolerance or PI - std::abs(Angle(<me>, theOther)) <= theAngularTolerance Two vectors with opposite directions are considered as parallel. Raises VectorWithNullMagnitude if <me>.Magnitude() <= Resolution or theOther.Magnitude() <= Resolution from gp.
    double Angle (const gp_Vec2d &theOther) const
     Computes the angular value between <me> and <theOther> returns the angle value between -PI and PI in radian. The orientation is from <me> to theOther. The positive sense is the trigonometric sense. Raises VectorWithNullMagnitude if <me>.Magnitude() <= Resolution from gp or theOther.Magnitude() <= Resolution because the angular value is indefinite if one of the vectors has a null magnitude.
    double Magnitude () const
     Computes the magnitude of this vector.
    double SquareMagnitude () const
     Computes the square magnitude of this vector.
    void Add (const gp_Vec2d &theOther)
    void operator+= (const gp_Vec2d &theOther)
    gp_Vec2d Added (const gp_Vec2d &theOther) const
     Adds two vectors.
    gp_Vec2d operator+ (const gp_Vec2d &theOther) const
    double Crossed (const gp_Vec2d &theRight) const
     Computes the crossing product between two vectors.
    double operator^ (const gp_Vec2d &theRight) const
    double CrossMagnitude (const gp_Vec2d &theRight) const
     Computes the magnitude of the cross product between <me> and theRight. Returns || <me> ^ theRight ||.
    double CrossSquareMagnitude (const gp_Vec2d &theRight) const
     Computes the square magnitude of the cross product between <me> and theRight. Returns || <me> ^ theRight ||**2.
    void Divide (const double theScalar)
    void operator/= (const double theScalar)
    gp_Vec2d Divided (const double theScalar) const
     divides a vector by a scalar
    gp_Vec2d operator/ (const double theScalar) const
    double Dot (const gp_Vec2d &theOther) const
     Computes the scalar product.
    double operator* (const gp_Vec2d &theOther) const
    gp_Vec2d GetNormal () const
    void Multiply (const double theScalar)
    void operator*= (const double theScalar)
    gp_Vec2d Multiplied (const double theScalar) const
     Normalizes a vector Raises an exception if the magnitude of the vector is lower or equal to Resolution from package gp.
    gp_Vec2d operator* (const double theScalar) const
    void Normalize ()
    gp_Vec2d Normalized () const
     Normalizes a vector Raises an exception if the magnitude of the vector is lower or equal to Resolution from package gp. Reverses the direction of a vector.
    void Reverse ()
    gp_Vec2d Reversed () const
     Reverses the direction of a vector.
    gp_Vec2d operator- () const
    void Subtract (const gp_Vec2d &theRight)
     Subtracts two vectors.
    void operator-= (const gp_Vec2d &theRight)
    gp_Vec2d Subtracted (const gp_Vec2d &theRight) const
     Subtracts two vectors.
    gp_Vec2d operator- (const gp_Vec2d &theRight) const
    void SetLinearForm (const double theA1, const gp_Vec2d &theV1, const double theA2, const gp_Vec2d &theV2, const gp_Vec2d &theV3)
     <me> is set to the following linear form : theA1 * theV1 + theA2 * theV2 + theV3
    void SetLinearForm (const double theA1, const gp_Vec2d &theV1, const double theA2, const gp_Vec2d &theV2)
     <me> is set to the following linear form : theA1 * theV1 + theA2 * theV2
    void SetLinearForm (const double theA1, const gp_Vec2d &theV1, const gp_Vec2d &theV2)
     <me> is set to the following linear form : theA1 * theV1 + theV2
    void SetLinearForm (const gp_Vec2d &theV1, const gp_Vec2d &theV2)
     <me> is set to the following linear form : theV1 + theV2
    void Mirror (const gp_Vec2d &theV)
     Performs the symmetrical transformation of a vector with respect to the vector theV which is the center of the symmetry.
    gp_Vec2d Mirrored (const gp_Vec2d &theV) const
     Performs the symmetrical transformation of a vector with respect to the vector theV which is the center of the symmetry.
    void Mirror (const gp_Ax2d &theA1)
     Performs the symmetrical transformation of a vector with respect to an axis placement which is the axis of the symmetry.
    gp_Vec2d Mirrored (const gp_Ax2d &theA1) const
     Performs the symmetrical transformation of a vector with respect to an axis placement which is the axis of the symmetry.
    void Rotate (const double theAng)
    gp_Vec2d Rotated (const double theAng) const
     Rotates a vector. theAng is the angular value of the rotation in radians.
    void Scale (const double theS)
    gp_Vec2d Scaled (const double theS) const
     Scales a vector. theS is the scaling value.
    void Transform (const gp_Trsf2d &theT) noexcept
    gp_Vec2d Transformed (const gp_Trsf2d &theT) const
     Transforms a vector with a Trsf from gp.

    Detailed Description

    Defines a non-persistent vector in 2D space.

    Constructor & Destructor Documentation

    ◆ gp_Vec2d() [1/5]

    gp_Vec2d::gp_Vec2d ( )
    constexprdefaultnoexcept

    Creates a zero vector.

    ◆ gp_Vec2d() [2/5]

    gp_Vec2d::gp_Vec2d ( const gp_Dir2d & theV)
    inlineconstexpr

    Creates a unitary vector from a direction theV.

    ◆ gp_Vec2d() [3/5]

    gp_Vec2d::gp_Vec2d ( const gp_XY & theCoord)
    inlineconstexprnoexcept

    Creates a vector with a doublet of coordinates.

    ◆ gp_Vec2d() [4/5]

    gp_Vec2d::gp_Vec2d ( const double theXv,
    const double theYv )
    inlineconstexprnoexcept

    Creates a point with its two Cartesian coordinates.

    ◆ gp_Vec2d() [5/5]

    gp_Vec2d::gp_Vec2d ( const gp_Pnt2d & theP1,
    const gp_Pnt2d & theP2 )
    inlineconstexpr

    Creates a vector from two points. The length of the vector is the distance between theP1 and theP2.

    Member Function Documentation

    ◆ Add()

    void gp_Vec2d::Add ( const gp_Vec2d & theOther)
    inline

    ◆ Added()

    gp_Vec2d gp_Vec2d::Added ( const gp_Vec2d & theOther) const
    inlinenodiscard

    Adds two vectors.

    ◆ Angle()

    double gp_Vec2d::Angle ( const gp_Vec2d & theOther) const

    Computes the angular value between <me> and <theOther> returns the angle value between -PI and PI in radian. The orientation is from <me> to theOther. The positive sense is the trigonometric sense. Raises VectorWithNullMagnitude if <me>.Magnitude() <= Resolution from gp or theOther.Magnitude() <= Resolution because the angular value is indefinite if one of the vectors has a null magnitude.

    ◆ Coord() [1/2]

    double gp_Vec2d::Coord ( const int theIndex) const
    inlineconstexpr

    Returns the coordinate of range theIndex : theIndex = 1 => X is returned theIndex = 2 => Y is returned Raised if theIndex != {1, 2}.

    ◆ Coord() [2/2]

    void gp_Vec2d::Coord ( double & theXv,
    double & theYv ) const
    inlineconstexprnoexcept

    For this vector, returns its two coordinates theXv and theYv.

    ◆ Crossed()

    double gp_Vec2d::Crossed ( const gp_Vec2d & theRight) const
    inlinenodiscard

    Computes the crossing product between two vectors.

    ◆ CrossMagnitude()

    double gp_Vec2d::CrossMagnitude ( const gp_Vec2d & theRight) const
    inline

    Computes the magnitude of the cross product between <me> and theRight. Returns || <me> ^ theRight ||.

    ◆ CrossSquareMagnitude()

    double gp_Vec2d::CrossSquareMagnitude ( const gp_Vec2d & theRight) const
    inline

    Computes the square magnitude of the cross product between <me> and theRight. Returns || <me> ^ theRight ||**2.

    ◆ Divide()

    void gp_Vec2d::Divide ( const double theScalar)
    inline

    ◆ Divided()

    gp_Vec2d gp_Vec2d::Divided ( const double theScalar) const
    inlinenodiscard

    divides a vector by a scalar

    ◆ Dot()

    double gp_Vec2d::Dot ( const gp_Vec2d & theOther) const
    inline

    Computes the scalar product.

    ◆ GetNormal()

    gp_Vec2d gp_Vec2d::GetNormal ( ) const
    inline

    ◆ IsEqual()

    bool gp_Vec2d::IsEqual ( const gp_Vec2d & theOther,
    const double theLinearTolerance,
    const double theAngularTolerance ) const

    Returns True if the two vectors have the same magnitude value and the same direction. The precision values are theLinearTolerance for the magnitude and theAngularTolerance for the direction.

    ◆ IsNormal()

    bool gp_Vec2d::IsNormal ( const gp_Vec2d & theOther,
    const double theAngularTolerance ) const
    inline

    Returns True if abs(std::abs(<me>.Angle(theOther)) - PI/2.) <= theAngularTolerance Raises VectorWithNullMagnitude if <me>.Magnitude() <= Resolution or theOther.Magnitude() <= Resolution from gp.

    ◆ IsOpposite()

    bool gp_Vec2d::IsOpposite ( const gp_Vec2d & theOther,
    const double theAngularTolerance ) const
    inline

    Returns True if PI - std::abs(<me>.Angle(theOther)) <= theAngularTolerance Raises VectorWithNullMagnitude if <me>.Magnitude() <= Resolution or theOther.Magnitude() <= Resolution from gp.

    ◆ IsParallel()

    bool gp_Vec2d::IsParallel ( const gp_Vec2d & theOther,
    const double theAngularTolerance ) const
    inline

    Returns true if std::abs(Angle(<me>, theOther)) <= theAngularTolerance or PI - std::abs(Angle(<me>, theOther)) <= theAngularTolerance Two vectors with opposite directions are considered as parallel. Raises VectorWithNullMagnitude if <me>.Magnitude() <= Resolution or theOther.Magnitude() <= Resolution from gp.

    ◆ Magnitude()

    double gp_Vec2d::Magnitude ( ) const
    inline

    Computes the magnitude of this vector.

    ◆ Mirror() [1/2]

    void gp_Vec2d::Mirror ( const gp_Ax2d & theA1)

    Performs the symmetrical transformation of a vector with respect to an axis placement which is the axis of the symmetry.

    ◆ Mirror() [2/2]

    void gp_Vec2d::Mirror ( const gp_Vec2d & theV)

    Performs the symmetrical transformation of a vector with respect to the vector theV which is the center of the symmetry.

    ◆ Mirrored() [1/2]

    gp_Vec2d gp_Vec2d::Mirrored ( const gp_Ax2d & theA1) const
    nodiscard

    Performs the symmetrical transformation of a vector with respect to an axis placement which is the axis of the symmetry.

    ◆ Mirrored() [2/2]

    gp_Vec2d gp_Vec2d::Mirrored ( const gp_Vec2d & theV) const
    nodiscard

    Performs the symmetrical transformation of a vector with respect to the vector theV which is the center of the symmetry.

    ◆ Multiplied()

    gp_Vec2d gp_Vec2d::Multiplied ( const double theScalar) const
    inlinenodiscard

    Normalizes a vector Raises an exception if the magnitude of the vector is lower or equal to Resolution from package gp.

    ◆ Multiply()

    void gp_Vec2d::Multiply ( const double theScalar)
    inline

    ◆ Normalize()

    void gp_Vec2d::Normalize ( )
    inline

    ◆ Normalized()

    gp_Vec2d gp_Vec2d::Normalized ( ) const
    inlinenodiscard

    Normalizes a vector Raises an exception if the magnitude of the vector is lower or equal to Resolution from package gp. Reverses the direction of a vector.

    ◆ operator*() [1/2]

    gp_Vec2d gp_Vec2d::operator* ( const double theScalar) const
    inlinenodiscard

    ◆ operator*() [2/2]

    double gp_Vec2d::operator* ( const gp_Vec2d & theOther) const
    inline

    ◆ operator*=()

    void gp_Vec2d::operator*= ( const double theScalar)
    inline

    ◆ operator+()

    gp_Vec2d gp_Vec2d::operator+ ( const gp_Vec2d & theOther) const
    inlinenodiscard

    ◆ operator+=()

    void gp_Vec2d::operator+= ( const gp_Vec2d & theOther)
    inline

    ◆ operator-() [1/2]

    gp_Vec2d gp_Vec2d::operator- ( ) const
    inlinenodiscard

    ◆ operator-() [2/2]

    gp_Vec2d gp_Vec2d::operator- ( const gp_Vec2d & theRight) const
    inlinenodiscard

    ◆ operator-=()

    void gp_Vec2d::operator-= ( const gp_Vec2d & theRight)
    inline

    ◆ operator/()

    gp_Vec2d gp_Vec2d::operator/ ( const double theScalar) const
    inlinenodiscard

    ◆ operator/=()

    void gp_Vec2d::operator/= ( const double theScalar)
    inline

    ◆ operator^()

    double gp_Vec2d::operator^ ( const gp_Vec2d & theRight) const
    inlinenodiscard

    ◆ Reverse()

    void gp_Vec2d::Reverse ( )
    inline

    ◆ Reversed()

    gp_Vec2d gp_Vec2d::Reversed ( ) const
    inlinenodiscard

    Reverses the direction of a vector.

    ◆ Rotate()

    void gp_Vec2d::Rotate ( const double theAng)
    inline

    ◆ Rotated()

    gp_Vec2d gp_Vec2d::Rotated ( const double theAng) const
    inlinenodiscard

    Rotates a vector. theAng is the angular value of the rotation in radians.

    ◆ Scale()

    void gp_Vec2d::Scale ( const double theS)
    inline

    ◆ Scaled()

    gp_Vec2d gp_Vec2d::Scaled ( const double theS) const
    inlinenodiscard

    Scales a vector. theS is the scaling value.

    ◆ SetCoord() [1/2]

    void gp_Vec2d::SetCoord ( const double theXv,
    const double theYv )
    inlineconstexprnoexcept

    For this vector, assigns the values theXv and theYv to its two coordinates.

    ◆ SetCoord() [2/2]

    void gp_Vec2d::SetCoord ( const int theIndex,
    const double theXi )
    inlineconstexpr

    Changes the coordinate of range theIndex theIndex = 1 => X is modified theIndex = 2 => Y is modified Raises OutOfRange if theIndex != {1, 2}.

    ◆ SetLinearForm() [1/4]

    void gp_Vec2d::SetLinearForm ( const double theA1,
    const gp_Vec2d & theV1,
    const double theA2,
    const gp_Vec2d & theV2 )
    inline

    <me> is set to the following linear form : theA1 * theV1 + theA2 * theV2

    ◆ SetLinearForm() [2/4]

    void gp_Vec2d::SetLinearForm ( const double theA1,
    const gp_Vec2d & theV1,
    const double theA2,
    const gp_Vec2d & theV2,
    const gp_Vec2d & theV3 )
    inline

    <me> is set to the following linear form : theA1 * theV1 + theA2 * theV2 + theV3

    ◆ SetLinearForm() [3/4]

    void gp_Vec2d::SetLinearForm ( const double theA1,
    const gp_Vec2d & theV1,
    const gp_Vec2d & theV2 )
    inline

    <me> is set to the following linear form : theA1 * theV1 + theV2

    ◆ SetLinearForm() [4/4]

    void gp_Vec2d::SetLinearForm ( const gp_Vec2d & theV1,
    const gp_Vec2d & theV2 )
    inline

    <me> is set to the following linear form : theV1 + theV2

    ◆ SetX()

    void gp_Vec2d::SetX ( const double theX)
    inlineconstexprnoexcept

    Assigns the given value to the X coordinate of this vector.

    ◆ SetXY()

    void gp_Vec2d::SetXY ( const gp_XY & theCoord)
    inlineconstexprnoexcept

    Assigns the two coordinates of theCoord to this vector.

    ◆ SetY()

    void gp_Vec2d::SetY ( const double theY)
    inlineconstexprnoexcept

    Assigns the given value to the Y coordinate of this vector.

    ◆ SquareMagnitude()

    double gp_Vec2d::SquareMagnitude ( ) const
    inline

    Computes the square magnitude of this vector.

    ◆ Subtract()

    void gp_Vec2d::Subtract ( const gp_Vec2d & theRight)
    inline

    Subtracts two vectors.

    ◆ Subtracted()

    gp_Vec2d gp_Vec2d::Subtracted ( const gp_Vec2d & theRight) const
    inlinenodiscard

    Subtracts two vectors.

    ◆ Transform()

    void gp_Vec2d::Transform ( const gp_Trsf2d & theT)
    noexcept

    ◆ Transformed()

    gp_Vec2d gp_Vec2d::Transformed ( const gp_Trsf2d & theT) const
    inlinenodiscard

    Transforms a vector with a Trsf from gp.

    ◆ X()

    double gp_Vec2d::X ( ) const
    inlineconstexprnoexcept

    For this vector, returns its X coordinate.

    ◆ XY()

    const gp_XY & gp_Vec2d::XY ( ) const
    inlineconstexprnoexcept

    For this vector, returns its two coordinates as a number pair.

    ◆ Y()

    double gp_Vec2d::Y ( ) const
    inlineconstexprnoexcept

    For this vector, returns its Y coordinate.


    The documentation for this class was generated from the following file: