Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
Public Member Functions
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_XYXY () 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]

constexpr gp_Vec2d::gp_Vec2d ( )
constexprdefaultnoexcept

Creates a zero vector.

◆ gp_Vec2d() [2/5]

constexpr gp_Vec2d::gp_Vec2d ( const gp_Dir2d & theV)
inlineconstexpr

Creates a unitary vector from a direction theV.

◆ gp_Vec2d() [3/5]

constexpr gp_Vec2d::gp_Vec2d ( const gp_XY & theCoord)
inlineconstexprnoexcept

Creates a vector with a doublet of coordinates.

◆ gp_Vec2d() [4/5]

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

Creates a point with its two Cartesian coordinates.

◆ gp_Vec2d() [5/5]

constexpr 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
inline

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]

constexpr 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]

constexpr 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
inline

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
inline

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

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

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
inline

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
inline

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
inline

◆ 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
inline

◆ operator+=()

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

◆ operator-() [1/2]

gp_Vec2d gp_Vec2d::operator- ( ) const
inline

◆ operator-() [2/2]

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

◆ operator-=()

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

◆ operator/()

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

◆ operator/=()

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

◆ operator^()

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

◆ Reverse()

void gp_Vec2d::Reverse ( )
inline

◆ Reversed()

gp_Vec2d gp_Vec2d::Reversed ( ) const
inline

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
inline

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
inline

Scales a vector. theS is the scaling value.

◆ SetCoord() [1/2]

constexpr 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]

constexpr 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()

constexpr void gp_Vec2d::SetX ( const double theX)
inlineconstexprnoexcept

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

◆ SetXY()

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

Assigns the two coordinates of theCoord to this vector.

◆ SetY()

constexpr 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
inline

Subtracts two vectors.

◆ Transform()

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

◆ Transformed()

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

Transforms a vector with a Trsf from gp.

◆ X()

constexpr double gp_Vec2d::X ( ) const
inlineconstexprnoexcept

For this vector, returns its X coordinate.

◆ XY()

constexpr const gp_XY & gp_Vec2d::XY ( ) const
inlineconstexprnoexcept

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

◆ Y()

constexpr double gp_Vec2d::Y ( ) const
inlineconstexprnoexcept

For this vector, returns its Y coordinate.


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