# 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. More...

`#include <gp_Dir2d.hxx>`

## Public Member Functions

gp_Dir2d ()
Creates a direction corresponding to X axis. More...

gp_Dir2d (const gp_Vec2d &theV)
Normalizes the vector theV and creates a Direction. Raises ConstructionError if theV.Magnitude() <= Resolution from gp. More...

gp_Dir2d (const gp_XY &theCoord)
Creates a Direction from a doublet of coordinates. Raises ConstructionError if theCoord.Modulus() <= Resolution from gp. More...

gp_Dir2d (const Standard_Real theXv, const Standard_Real theYv)
Creates a Direction with its 2 cartesian coordinates. Raises ConstructionError if Sqrt(theXv*theXv + theYv*theYv) <= Resolution from gp. More...

void SetCoord (const Standard_Integer theIndex, const Standard_Real theXi)
For this unit vector, assigns: the value theXi to: More...

void SetCoord (const Standard_Real theXv, const Standard_Real theYv)
For this unit vector, assigns: More...

void SetX (const Standard_Real theX)
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(): More...

void SetY (const Standard_Real theY)
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(): More...

void SetXY (const gp_XY &theCoord)
Assigns: More...

Standard_Real Coord (const Standard_Integer theIndex) const
For this unit vector returns the coordinate of range theIndex : theIndex = 1 => X is returned theIndex = 2 => Y is returned Raises OutOfRange if theIndex != {1, 2}. More...

void Coord (Standard_Real &theXv, Standard_Real &theYv) const
For this unit vector returns its two coordinates theXv and theYv. Raises OutOfRange if theIndex != {1, 2}. More...

Standard_Real X () const
For this unit vector, returns its X coordinate. More...

Standard_Real Y () const
For this unit vector, returns its Y coordinate. More...

const gp_XYXY () const
For this unit vector, returns its two coordinates as a number pair. Comparison between Directions The precision value is an input data. More...

Standard_Boolean IsEqual (const gp_Dir2d &theOther, const Standard_Real theAngularTolerance) const
Returns True if the two vectors have the same direction i.e. the angle between this unit vector and the unit vector theOther is less than or equal to theAngularTolerance. More...

Standard_Boolean IsNormal (const gp_Dir2d &theOther, const Standard_Real theAngularTolerance) const
Returns True if the angle between this unit vector and the unit vector theOther is equal to Pi/2 or -Pi/2 (normal) i.e. Abs(Abs(<me>.Angle(theOther)) - PI/2.) <= theAngularTolerance. More...

Standard_Boolean IsOpposite (const gp_Dir2d &theOther, const Standard_Real theAngularTolerance) const
Returns True if the angle between this unit vector and the unit vector theOther is equal to Pi or -Pi (opposite). i.e. PI - Abs(<me>.Angle(theOther)) <= theAngularTolerance. More...

Standard_Boolean IsParallel (const gp_Dir2d &theOther, const Standard_Real theAngularTolerance) const
returns true if the angle between this unit vector and unit vector theOther is equal to 0, Pi or -Pi. i.e. Abs(Angle(<me>, theOther)) <= theAngularTolerance or PI - Abs(Angle(<me>, theOther)) <= theAngularTolerance More...

Standard_Real Angle (const gp_Dir2d &theOther) const
Computes the angular value in radians between <me> and <theOther>. Returns the angle in the range [-PI, PI]. More...

Standard_Real Crossed (const gp_Dir2d &theRight) const
Computes the cross product between two directions. More...

Standard_Real operator^ (const gp_Dir2d &theRight) const

Standard_Real Dot (const gp_Dir2d &theOther) const
Computes the scalar product. More...

Standard_Real operator* (const gp_Dir2d &theOther) const

void Reverse ()

gp_Dir2d Reversed () const
Reverses the orientation of a direction. More...

gp_Dir2d operator- () const

void Mirror (const gp_Dir2d &theV)

gp_Dir2d Mirrored (const gp_Dir2d &theV) const
Performs the symmetrical transformation of a direction with respect to the direction theV which is the center of the symmetry. More...

void Mirror (const gp_Ax2d &theA)

gp_Dir2d Mirrored (const gp_Ax2d &theA) const
Performs the symmetrical transformation of a direction with respect to an axis placement which is the axis of the symmetry. More...

void Rotate (const Standard_Real Ang)

gp_Dir2d Rotated (const Standard_Real theAng) const
Rotates a direction. theAng is the angular value of the rotation in radians. More...

void Transform (const gp_Trsf2d &theT)

gp_Dir2d Transformed (const gp_Trsf2d &theT) const
Transforms a direction with the "Trsf" theT. Warnings : If the scale factor of the "Trsf" theT is negative then the direction <me> is reversed. More...

void DumpJson (Standard_OStream &theOStream, Standard_Integer theDepth=-1) const
Dumps the content of me into the stream. More...

## Detailed Description

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.

## ◆ gp_Dir2d() [1/4]

 gp_Dir2d::gp_Dir2d ( )
inline

Creates a direction corresponding to X axis.

## ◆ gp_Dir2d() [2/4]

 gp_Dir2d::gp_Dir2d ( const gp_Vec2d & theV )
inline

Normalizes the vector theV and creates a Direction. Raises ConstructionError if theV.Magnitude() <= Resolution from gp.

## ◆ gp_Dir2d() [3/4]

 gp_Dir2d::gp_Dir2d ( const gp_XY & theCoord )
inline

Creates a Direction from a doublet of coordinates. Raises ConstructionError if theCoord.Modulus() <= Resolution from gp.

## ◆ gp_Dir2d() [4/4]

 gp_Dir2d::gp_Dir2d ( const Standard_Real theXv, const Standard_Real theYv )
inline

Creates a Direction with its 2 cartesian coordinates. Raises ConstructionError if Sqrt(theXv*theXv + theYv*theYv) <= Resolution from gp.

## ◆ Angle()

 Standard_Real gp_Dir2d::Angle ( const gp_Dir2d & theOther ) const

Computes the angular value in radians between <me> and <theOther>. Returns the angle in the range [-PI, PI].

## ◆ Coord() [1/2]

 Standard_Real gp_Dir2d::Coord ( const Standard_Integer theIndex ) const
inline

For this unit vector returns the coordinate of range theIndex : theIndex = 1 => X is returned theIndex = 2 => Y is returned Raises OutOfRange if theIndex != {1, 2}.

## ◆ Coord() [2/2]

 void gp_Dir2d::Coord ( Standard_Real & theXv, Standard_Real & theYv ) const
inline

For this unit vector returns its two coordinates theXv and theYv. Raises OutOfRange if theIndex != {1, 2}.

## ◆ Crossed()

 Standard_Real gp_Dir2d::Crossed ( const gp_Dir2d & theRight ) const
inline

Computes the cross product between two directions.

## ◆ Dot()

 Standard_Real gp_Dir2d::Dot ( const gp_Dir2d & theOther ) const
inline

Computes the scalar product.

## ◆ DumpJson()

 void gp_Dir2d::DumpJson ( Standard_OStream & theOStream, Standard_Integer theDepth = `-1` ) const

Dumps the content of me into the stream.

## ◆ IsEqual()

 Standard_Boolean gp_Dir2d::IsEqual ( const gp_Dir2d & theOther, const Standard_Real theAngularTolerance ) const
inline

Returns True if the two vectors have the same direction i.e. the angle between this unit vector and the unit vector theOther is less than or equal to theAngularTolerance.

## ◆ IsNormal()

 Standard_Boolean gp_Dir2d::IsNormal ( const gp_Dir2d & theOther, const Standard_Real theAngularTolerance ) const
inline

Returns True if the angle between this unit vector and the unit vector theOther is equal to Pi/2 or -Pi/2 (normal) i.e. Abs(Abs(<me>.Angle(theOther)) - PI/2.) <= theAngularTolerance.

## ◆ IsOpposite()

 Standard_Boolean gp_Dir2d::IsOpposite ( const gp_Dir2d & theOther, const Standard_Real theAngularTolerance ) const
inline

Returns True if the angle between this unit vector and the unit vector theOther is equal to Pi or -Pi (opposite). i.e. PI - Abs(<me>.Angle(theOther)) <= theAngularTolerance.

## ◆ IsParallel()

 Standard_Boolean gp_Dir2d::IsParallel ( const gp_Dir2d & theOther, const Standard_Real theAngularTolerance ) const
inline

returns true if the angle between this unit vector and unit vector theOther is equal to 0, Pi or -Pi. i.e. Abs(Angle(<me>, theOther)) <= theAngularTolerance or PI - Abs(Angle(<me>, theOther)) <= theAngularTolerance

## ◆ Mirror() [1/2]

 void gp_Dir2d::Mirror ( const gp_Ax2d & theA )

## ◆ Mirror() [2/2]

 void gp_Dir2d::Mirror ( const gp_Dir2d & theV )

## ◆ Mirrored() [1/2]

 gp_Dir2d gp_Dir2d::Mirrored ( const gp_Ax2d & theA ) const

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

## ◆ Mirrored() [2/2]

 gp_Dir2d gp_Dir2d::Mirrored ( const gp_Dir2d & theV ) const

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

## ◆ operator*()

 Standard_Real gp_Dir2d::operator* ( const gp_Dir2d & theOther ) const
inline

## ◆ operator-()

 gp_Dir2d gp_Dir2d::operator- ( ) const
inline

## ◆ operator^()

 Standard_Real gp_Dir2d::operator^ ( const gp_Dir2d & theRight ) const
inline

## ◆ Reverse()

 void gp_Dir2d::Reverse ( )
inline

## ◆ Reversed()

 gp_Dir2d gp_Dir2d::Reversed ( ) const
inline

Reverses the orientation of a direction.

## ◆ Rotate()

 void gp_Dir2d::Rotate ( const Standard_Real Ang )
inline

## ◆ Rotated()

 gp_Dir2d gp_Dir2d::Rotated ( const Standard_Real theAng ) const
inline

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

## ◆ SetCoord() [1/2]

 void gp_Dir2d::SetCoord ( const Standard_Integer theIndex, const Standard_Real theXi )
inline

For this unit vector, assigns: the value theXi to:

• the X coordinate if theIndex is 1, or
• the Y coordinate if theIndex 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 theIndex is not 1 or 2. Standard_ConstructionError if either of the following is less than or equal to gp::Resolution():
• Sqrt(theXv*theXv + theYv*theYv), or
• the modulus of the number pair formed by the new value theXi and the other coordinate of this vector that was not directly modified. Raises OutOfRange if theIndex != {1, 2}.

## ◆ SetCoord() [2/2]

 void gp_Dir2d::SetCoord ( const Standard_Real theXv, const Standard_Real theYv )
inline

For this unit vector, assigns:

• the values theXv and theYv 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 theIndex is not 1 or 2. Standard_ConstructionError if either of the following is less than or equal to gp::Resolution():
• Sqrt(theXv*theXv + theYv*theYv), 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 theIndex != {1, 2}.

## ◆ SetX()

 void gp_Dir2d::SetX ( const Standard_Real theX )
inline

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.

## ◆ SetXY()

 void gp_Dir2d::SetXY ( const gp_XY & theCoord )
inline

Assigns:

• the two coordinates of theCoord 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 theCoord, 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.

## ◆ SetY()

 void gp_Dir2d::SetY ( const Standard_Real theY )
inline

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.

## ◆ Transform()

 void gp_Dir2d::Transform ( const gp_Trsf2d & theT )

## ◆ Transformed()

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

Transforms a direction with the "Trsf" theT. Warnings : If the scale factor of the "Trsf" theT is negative then the direction <me> is reversed.

## ◆ X()

 Standard_Real gp_Dir2d::X ( ) const
inline

For this unit vector, returns its X coordinate.

## ◆ XY()

 const gp_XY& gp_Dir2d::XY ( ) const
inline

For this unit vector, returns its two coordinates as a number pair. Comparison between Directions The precision value is an input data.

## ◆ Y()

 Standard_Real gp_Dir2d::Y ( ) const
inline

For this unit vector, returns its Y coordinate.

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