OpenLexocad
28.0
|
Defines a non-persistent vector in 2D space.
More...
#include <Vec2d.h>
Public Member Functions | |
Vec2d () | |
Creates an indefinite vector. More... | |
Vec2d (const Dir2d &V) | |
Creates a unitary vector from a direction V. More... | |
Vec2d (const XY &Coord) | |
Creates a vector with a doublet of coordinates. More... | |
Vec2d (const double Xv, const double Yv) | |
Creates a point with its two cartesian coordinates. More... | |
Vec2d (const Pnt2d &P1, const Pnt2d &P2) | |
void | add (const Vec2d &Other) |
Vec2d | added (const Vec2d &Other) const |
Adds two vectors More... | |
double | angle (const Vec2d &Other) const |
double | coord (const int Index) const |
void | coord (double &Xv, double &Yv) const |
For this vector, returns its two coordinates Xv and Yv More... | |
double | crossed (const Vec2d &Right) const |
Computes the crossing product between two vectors More... | |
double | crossMagnitude (const Vec2d &Right) const |
double | crossSquareMagnitude (const Vec2d &Right) const |
void | divide (const double Scalar) |
Vec2d | divided (const double Scalar) const |
divides a vector by a scalar More... | |
double | dot (const Vec2d &Other) const |
Computes the scalar product More... | |
bool | isEqual (const Vec2d &Other, const double LinearTolerance, const double AngularTolerance) const |
bool | isNormal (const Vec2d &Other, const double AngularTolerance) const |
Returns True if abs(abs(<me>.angle(Other)) - PI/2.) <= AngularTolerance More... | |
bool | isOpposite (const Vec2d &Other, const double AngularTolerance) const |
Returns True if PI - abs(<me>.angle(Other)) <= AngularTolerance More... | |
bool | isParallel (const Vec2d &Other, const double AngularTolerance) const |
double | magnitude () const |
Computes the magnitude of this vector. More... | |
double | squareMagnitude () const |
Computes the square magnitude of this vector. More... | |
void | operator+= (const Vec2d &Other) |
Vec2d | operator+ (const Vec2d &Other) const |
void | operator-= (const Vec2d &Right) |
Vec2d | operator- () const |
Vec2d | operator- (const Vec2d &Right) const |
void | operator*= (const double Scalar) |
double | operator* (const Vec2d &Other) const |
Vec2d | operator* (const double Scalar) const |
void | operator/= (const double Scalar) |
Vec2d | operator/ (const double Scalar) const |
double | operator^ (const Vec2d &Right) const |
void | multiply (const double Scalar) |
Vec2d | multiplied (const double Scalar) const |
void | mirror (const Vec2d &V) |
void | mirror (const Ax2d &A1) |
Vec2d | mirrored (const Ax2d &A1) const |
Vec2d | mirrored (const Vec2d &V) const |
void | normalize () |
Vec2d | normalized () const |
void | reverse () |
Vec2d | reversed () const |
Reverses the direction of a vector //! Subtracts two vectors More... | |
void | rotate (const double Ang) |
Vec2d | rotated (const double Ang) const |
void | scale (const double S) |
Vec2d | scaled (const double S) const |
Scales a vector. S is the scaling value. More... | |
void | setCoord (const int Index, const double Xi) |
void | setCoord (const double Xv, const double Yv) |
void | setLinearForm (const double A1, const Vec2d &V1, const double A2, const Vec2d &V2, const Vec2d &V3) |
void | setLinearForm (const double A1, const Vec2d &V1, const double A2, const Vec2d &V2) |
<me> is setted to the following linear form : A1 * V1 + A2 * V2 More... | |
void | setLinearForm (const double A1, const Vec2d &V1, const Vec2d &V2) |
<me> is setted to the following linear form : A1 * V1 + V2 More... | |
void | setLinearForm (const Vec2d &Left, const Vec2d &Right) |
void | setX (const double X) |
Assigns the given value to the X coordinate of this vector. More... | |
void | setXY (const XY &Coord) |
Assigns the two coordinates of Coord to this vector. More... | |
void | setY (const double Y) |
Assigns the given value to the Y coordinate of this vector. More... | |
void | subtract (const Vec2d &Right) |
Vec2d | subtracted (const Vec2d &Right) const |
Subtracts two vectors More... | |
void | transform (const Trsf2d &T) |
Vec2d | transformed (const Trsf2d &T) const |
double | x () const |
For this vector, returns its X coordinate. More... | |
const XY & | xy () const |
For this vector, returns its two coordinates as a number pair More... | |
double | y () const |
For this vector, returns its Y coordinate. More... | |
Defines a non-persistent vector in 2D space.
Geom::Vec2d::Vec2d | ( | ) |
Creates an indefinite vector.
Geom::Vec2d::Vec2d | ( | const Dir2d & | V | ) |
Creates a unitary vector from a direction V.
Geom::Vec2d::Vec2d | ( | const XY & | Coord | ) |
Creates a vector with a doublet of coordinates.
Geom::Vec2d::Vec2d | ( | const double | Xv, |
const double | Yv | ||
) |
Creates a point with its two cartesian coordinates.
Creates a vector from two points. The length of the vector
is the distance between P1 and P2
void Geom::Vec2d::add | ( | const Vec2d & | Other | ) |
double Geom::Vec2d::angle | ( | const Vec2d & | Other | ) | const |
Computes the angular value between <me> and <Other>
returns the angle value between -PI and PI in radian.
The orientation is from <me> to Other. The positive sense is the
trigonometric sense.
double Geom::Vec2d::coord | ( | const int | Index | ) | const |
Returns the coordinate of range Index :
Index = 1 => X is returned
Index = 2 => Y is returned
//! Raised if Index != {1, 2}.
void Geom::Vec2d::coord | ( | double & | Xv, |
double & | Yv | ||
) | const |
For this vector, returns its two coordinates Xv and Yv
double Geom::Vec2d::crossed | ( | const Vec2d & | Right | ) | const |
Computes the crossing product between two vectors
double Geom::Vec2d::crossMagnitude | ( | const Vec2d & | Right | ) | const |
Computes the magnitude of the cross product between <me> and
Right. Returns || <me> ^ Right ||
double Geom::Vec2d::crossSquareMagnitude | ( | const Vec2d & | Right | ) | const |
Computes the square magnitude of the cross product between <me> and
Right. Returns || <me> ^ Right ||**2
void Geom::Vec2d::divide | ( | const double | Scalar | ) |
Vec2d Geom::Vec2d::divided | ( | const double | Scalar | ) | const |
divides a vector by a scalar
double Geom::Vec2d::dot | ( | const Vec2d & | Other | ) | const |
Computes the scalar product
bool Geom::Vec2d::isEqual | ( | const Vec2d & | Other, |
const double | LinearTolerance, | ||
const double | AngularTolerance | ||
) | const |
Returns True if the two vectors have the same magnitude value
and the same direction. The precision values are LinearTolerance
for the magnitude and AngularTolerance for the direction.
bool Geom::Vec2d::isNormal | ( | const Vec2d & | Other, |
const double | AngularTolerance | ||
) | const |
Returns True if abs(abs(<me>.angle(Other)) - PI/2.) <= AngularTolerance
bool Geom::Vec2d::isOpposite | ( | const Vec2d & | Other, |
const double | AngularTolerance | ||
) | const |
Returns True if PI - abs(<me>.angle(Other)) <= AngularTolerance
bool Geom::Vec2d::isParallel | ( | const Vec2d & | Other, |
const double | AngularTolerance | ||
) | const |
Returns true if abs(angle(<me>, Other)) <= AngularTolerance or
PI - abs(angle(<me>, Other)) <= AngularTolerance
Two vectors with opposite directions are considered as parallel.
double Geom::Vec2d::magnitude | ( | ) | const |
Computes the magnitude of this vector.
void Geom::Vec2d::mirror | ( | const Ax2d & | A1 | ) |
void Geom::Vec2d::mirror | ( | const Vec2d & | V | ) |
Performs the symmetrical transformation of a vector
with respect to the vector V which is the center of
the symmetry.
Performs the symmetrical transformation of a vector
with respect to an axis placement which is the axis
of the symmetry.
Vec2d Geom::Vec2d::multiplied | ( | const double | Scalar | ) | const |
Normalizes a vector
Raises an exception if the magnitude of the vector is
lower or equal to Resolution from package gp.
void Geom::Vec2d::multiply | ( | const double | Scalar | ) |
void Geom::Vec2d::normalize | ( | ) |
Vec2d Geom::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
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
void Geom::Vec2d::reverse | ( | ) |
Vec2d Geom::Vec2d::reversed | ( | ) | const |
Reverses the direction of a vector
//! Subtracts two vectors
void Geom::Vec2d::rotate | ( | const double | Ang | ) |
Vec2d Geom::Vec2d::rotated | ( | const double | Ang | ) | const |
Rotates a vector. Ang is the angular value of the
rotation in radians.
void Geom::Vec2d::scale | ( | const double | S | ) |
Vec2d Geom::Vec2d::scaled | ( | const double | S | ) | const |
Scales a vector. S is the scaling value.
void Geom::Vec2d::setCoord | ( | const double | Xv, |
const double | Yv | ||
) |
For this vector, assigns
the values Xv and Yv to its two coordinates
void Geom::Vec2d::setCoord | ( | const int | Index, |
const double | Xi | ||
) |
Changes the coordinate of range Index
Index = 1 => X is modified
Index = 2 => Y is modified
Raises OutOfRange if Index != {1, 2}.
void Geom::Vec2d::setLinearForm | ( | const double | A1, |
const Vec2d & | V1, | ||
const double | A2, | ||
const Vec2d & | V2 | ||
) |
<me> is setted to the following linear form : A1 * V1 + A2 * V2
void Geom::Vec2d::setLinearForm | ( | const double | A1, |
const Vec2d & | V1, | ||
const double | A2, | ||
const Vec2d & | V2, | ||
const Vec2d & | V3 | ||
) |
<me> is setted to the following linear form :
A1 * V1 + A2 * V2 + V3
<me> is setted to the following linear form : A1 * V1 + V2
<me> is setted to the following linear form : Left + Right
Performs the symmetrical transformation of a vector
with respect to the vector V which is the center of
the symmetry.
void Geom::Vec2d::setX | ( | const double | X | ) |
Assigns the given value to the X coordinate of this vector.
void Geom::Vec2d::setXY | ( | const XY & | Coord | ) |
Assigns the two coordinates of Coord to this vector.
void Geom::Vec2d::setY | ( | const double | Y | ) |
Assigns the given value to the Y coordinate of this vector.
double Geom::Vec2d::squareMagnitude | ( | ) | const |
Computes the square magnitude of this vector.
void Geom::Vec2d::subtract | ( | const Vec2d & | Right | ) |
void Geom::Vec2d::transform | ( | const Trsf2d & | T | ) |
double Geom::Vec2d::x | ( | ) | const |
For this vector, returns its X coordinate.
const XY& Geom::Vec2d::xy | ( | ) | const |
For this vector, returns its two coordinates as a number pair
double Geom::Vec2d::y | ( | ) | const |
For this vector, returns its Y coordinate.