# FoundationClasses
TKMath
gp

# gp_Dir2d Class Reference

Describes a unit vector in the plane (2D space). This unit
vector is also called "Direction".
See Also
gce_MakeDir2d which provides functions for more
complex unit vector constructions
Geom2d_Direction which provides additional functions
for constructing unit vectors and works, in particular, with
the parametric equations of unit vectors
.

`#include <gp_Dir2d.hxx>`

## Public Member Functions

void * | operator new (size_t, void *anAddress)
void * | operator new (size_t size)
void | operator delete (void *anAddress)
| gp_Dir2d ()
| Creates an indefinite Direction. .
| gp_Dir2d (const gp_Vec2d &V)
| Normalizes the vector V and creates a Direction. Raises ConstructionError if V.Magnitude() <= Resolution from gp. .
| gp_Dir2d (const gp_XY &Coord)
| Creates a Direction from a doublet of coordinates. Raises ConstructionError if Coord.Modulus() <= Resolution from gp. .
| gp_Dir2d (const Standard_Real Xv, const Standard_Real Yv)
| Creates a Direction with its 2 cartesian coordinates. Raises ConstructionError if Sqrt(Xv*Xv + Yv*Yv) <= Resolution from gp. .
void | SetCoord (const Standard_Integer Index, const Standard_Real Xi)

For this unit vector, assigns:
the value Xi to:
- the X coordinate if Index is 1, or
- the Y coordinate if Index is 2, and then normalizes it.
Warning
Remember that all the coordinates of a unit vector are
implicitly modified when any single one is changed directly.
Exceptions
Standard_OutOfRange if Index is not 1 or 2.
Standard_ConstructionError if either of the following
is less than or equal to gp::Resolution():
- Sqrt(Xv*Xv + Yv*Yv), or
- the modulus of the number pair formed by the new
value Xi and the other coordinate of this vector that
was not directly modified.
Raises OutOfRange if Index != {1, 2}.
.

void | SetCoord (const Standard_Real Xv, const Standard_Real Yv)

For this unit vector, assigns:
- the values Xv and Yv to its two coordinates,
Warning
Remember that all the coordinates of a unit vector are
implicitly modified when any single one is changed directly.
Exceptions
Standard_OutOfRange if Index is not 1 or 2.
Standard_ConstructionError if either of the following
is less than or equal to gp::Resolution():
- Sqrt(Xv*Xv + Yv*Yv), or
- the modulus of the number pair formed by the new
value Xi and the other coordinate of this vector that
was not directly modified.
Raises OutOfRange if Index != {1, 2}.
.

void | SetX (const Standard_Real X)

Assigns the given value to the X coordinate of this unit vector,
and then normalizes it.
Warning
Remember that all the coordinates of a unit vector are
implicitly modified when any single one is changed directly.
Exceptions
Standard_ConstructionError if either of the following
is less than or equal to gp::Resolution():
- the modulus of Coord, or
- the modulus of the number pair formed from the new
X or Y coordinate and the other coordinate of this
vector that was not directly modified.
.

void | SetY (const Standard_Real Y)

Assigns the given value to the Y coordinate of this unit vector,
and then normalizes it.
Warning
Remember that all the coordinates of a unit vector are
implicitly modified when any single one is changed directly.
Exceptions
Standard_ConstructionError if either of the following
is less than or equal to gp::Resolution():
- the modulus of Coord, or
- the modulus of the number pair formed from the new
X or Y coordinate and the other coordinate of this
vector that was not directly modified.
.

void | SetXY (const gp_XY &Coord)

Assigns:
- the two coordinates of Coord to this unit vector,
and then normalizes it.
Warning
Remember that all the coordinates of a unit vector are
implicitly modified when any single one is changed directly.
Exceptions
Standard_ConstructionError if either of the following
is less than or equal to gp::Resolution():
- the modulus of Coord, or
- the modulus of the number pair formed from the new
X or Y coordinate and the other coordinate of this
vector that was not directly modified.
.

Standard_Real | Coord (const Standard_Integer Index) const
| For this unit vector returns the coordinate of range Index : Index = 1 => X is returned Index = 2 => Y is returned Raises OutOfRange if Index != {1, 2}. .
void | Coord (Standard_Real &Xv, Standard_Real &Yv) const
| For this unit vector returns its two coordinates Xv and Yv. Raises OutOfRange if Index != {1, 2}. .
Standard_Real | X () const
| For this unit vector, returns its X coordinate. .
Standard_Real | Y () const
| For this unit vector, returns its Y coordinate. .
const gp_XY & | XY () const
| For this unit vector, returns its two coordinates as a number pair. //! Comparison between Directions The precision value is an input data. .
Standard_Boolean | IsEqual (const gp_Dir2d &Other, const Standard_Real AngularTolerance) const
| Returns True if the two vectors have the same direction i.e. the angle between this unit vector and the unit vector Other is less than or equal to AngularTolerance. .
Standard_Boolean | IsNormal (const gp_Dir2d &Other, const Standard_Real AngularTolerance) const
| Returns True if the angle between this unit vector and the unit vector Other is equal to Pi/2 or -Pi/2 (normal) i.e. Abs(Abs(<me>.Angle(Other)) - PI/2.) <= AngularTolerance .
Standard_Boolean | IsOpposite (const gp_Dir2d &Other, const Standard_Real AngularTolerance) const
| Returns True if the angle between this unit vector and the unit vector Other is equal to Pi or -Pi (opposite). i.e. PI - Abs(<me>.Angle(Other)) <= AngularTolerance .
Standard_Boolean | IsParallel (const gp_Dir2d &Other, const Standard_Real AngularTolerance) const
| returns true if if the angle between this unit vector and unit vector Other is equal to 0, Pi or -Pi. i.e. Abs(Angle(<me>, Other)) <= AngularTolerance or PI - Abs(Angle(<me>, Other)) <= AngularTolerance
Standard_EXPORT Standard_Real | Angle (const gp_Dir2d &Other) const
| Computes the angular value in radians between <me> and <other>. Returns the angle in the range [-PI, PI]. .
Standard_Real | Crossed (const gp_Dir2d &Right) const
| Computes the cross product between two directions. .
Standard_Real | operator^ (const gp_Dir2d &Right) const
Standard_Real | Dot (const gp_Dir2d &Other) const
| Computes the scalar product .
Standard_Real | operator * (const gp_Dir2d &Other) const
void | Reverse ()
gp_Dir2d | Reversed () const
| Reverses the orientation of a direction .
gp_Dir2d | operator- () const
Standard_EXPORT void | Mirror (const gp_Dir2d &V)
Standard_EXPORT gp_Dir2d | Mirrored (const gp_Dir2d &V) const
| Performs the symmetrical transformation of a direction with respect to the direction V which is the center of the symmetry. .
Standard_EXPORT void | Mirror (const gp_Ax2d &A)
Standard_EXPORT gp_Dir2d | Mirrored (const gp_Ax2d &A) const
| Performs the symmetrical transformation of a direction with respect to an axis placement which is the axis of the symmetry. .
void | Rotate (const Standard_Real Ang)
gp_Dir2d | Rotated (const Standard_Real Ang) const
| Rotates a direction. Ang is the angular value of the rotation in radians. .
Standard_EXPORT void | Transform (const gp_Trsf2d &T)
gp_Dir2d | Transformed (const gp_Trsf2d &T) const
| Transforms a direction with the "Trsf" T. Warnings : If the scale factor of the "Trsf" T is negative then the direction <me> is reversed. .
const gp_XY & | _CSFDB_Getgp_Dir2dcoord () const

## Private Attributes

gp_XY | coord

## Friends

Standard_EXPORT friend Handle_Standard_Type & | gp_Dir2d_Type_ ()

## Constructor & Destructor Documentation

gp_Dir2d::gp_Dir2d | ( |  | ) | `[inline]`

gp_Dir2d::gp_Dir2d | ( | const gp_Vec2d & | V | ) | `[inline]`

gp_Dir2d::gp_Dir2d | ( | const gp_XY & | Coord | ) | `[inline]`

gp_Dir2d::gp_Dir2d | ( | const Standard_Real | Xv,
|  | const Standard_Real | Yv
| ) | `[inline]`

## Member Function Documentation

const gp_XY& gp_Dir2d::_CSFDB_Getgp_Dir2dcoord | ( |  | ) | const`[inline]`

Standard_EXPORT Standard_Real gp_Dir2d::Angle | ( | const gp_Dir2d & | Other | ) | const

void gp_Dir2d::Coord | ( | Standard_Real & | Xv,
|  | Standard_Real & | Yv
| ) | const`[inline]`

Standard_Real gp_Dir2d::Coord | ( | const Standard_Integer | Index | ) | const`[inline]`

Standard_Real gp_Dir2d::Crossed | ( | const gp_Dir2d & | Right | ) | const`[inline]`

Standard_Real gp_Dir2d::Dot | ( | const gp_Dir2d & | Other | ) | const`[inline]`

Standard_Boolean gp_Dir2d::IsEqual | ( | const gp_Dir2d & | Other,
|  | const Standard_Real | AngularTolerance
| ) | const`[inline]`

Standard_Boolean gp_Dir2d::IsNormal | ( | const gp_Dir2d & | Other,
|  | const Standard_Real | AngularTolerance
| ) | const`[inline]`

Standard_Boolean gp_Dir2d::IsOpposite | ( | const gp_Dir2d & | Other,
|  | const Standard_Real | AngularTolerance
| ) | const`[inline]`

Standard_Boolean gp_Dir2d::IsParallel | ( | const gp_Dir2d & | Other,
|  | const Standard_Real | AngularTolerance
| ) | const`[inline]`

Standard_EXPORT void gp_Dir2d::Mirror | ( | const gp_Ax2d & | A | ) |

Standard_EXPORT void gp_Dir2d::Mirror | ( | const gp_Dir2d & | V | ) |

Standard_EXPORT gp_Dir2d gp_Dir2d::Mirrored | ( | const gp_Ax2d & | A | ) | const

Standard_EXPORT gp_Dir2d gp_Dir2d::Mirrored | ( | const gp_Dir2d & | V | ) | const

Standard_Real gp_Dir2d::operator * | ( | const gp_Dir2d & | Other | ) | const`[inline]`

void gp_Dir2d::operator delete | ( | void * | anAddress | ) | `[inline]`

void* gp_Dir2d::operator new | ( | size_t | size | ) | `[inline]`

void* gp_Dir2d::operator new | ( | size_t | ,
|  | void * | anAddress
| ) | `[inline]`

gp_Dir2d gp_Dir2d::operator- | ( |  | ) | const`[inline]`

Standard_Real gp_Dir2d::operator^ | ( | const gp_Dir2d & | Right | ) | const`[inline]`

void gp_Dir2d::Reverse | ( |  | ) | `[inline]`

gp_Dir2d gp_Dir2d::Reversed | ( |  | ) | const`[inline]`

void gp_Dir2d::Rotate | ( | const Standard_Real | Ang | ) | `[inline]`

gp_Dir2d gp_Dir2d::Rotated | ( | const Standard_Real | Ang | ) | const`[inline]`

void gp_Dir2d::SetCoord | ( | const Standard_Real | Xv,
|  | const Standard_Real | Yv
| ) | `[inline]`

void gp_Dir2d::SetCoord | ( | const Standard_Integer | Index,
|  | const Standard_Real | Xi
| ) | `[inline]`

void gp_Dir2d::SetX | ( | const Standard_Real | X | ) | `[inline]`

void gp_Dir2d::SetXY | ( | const gp_XY & | Coord | ) | `[inline]`

void gp_Dir2d::SetY | ( | const Standard_Real | Y | ) | `[inline]`

Standard_EXPORT void gp_Dir2d::Transform | ( | const gp_Trsf2d & | T | ) |

gp_Dir2d gp_Dir2d::Transformed | ( | const gp_Trsf2d & | T | ) | const`[inline]`

Standard_Real gp_Dir2d::X | ( |  | ) | const`[inline]`

const gp_XY & gp_Dir2d::XY | ( |  | ) | const`[inline]`

Standard_Real gp_Dir2d::Y | ( |  | ) | const`[inline]`

## Friends And Related Function Documentation

Standard_EXPORT friend Handle_Standard_Type& gp_Dir2d_Type_ | ( |  | ) | `[friend]`

## Field Documentation

gp_XY gp_Dir2d::coord `[private]`

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

- gp_Dir2d.hxx
- gp_Dir2d.lxx