Open CASCADE Technology
7.4.0

Describes a unit vector in 3D space. This unit vector is also called "Direction". See Also gce_MakeDir which provides functions for more complex unit vector constructions Geom_Direction which provides additional functions for constructing unit vectors and works, in particular, with the parametric equations of unit vectors. More...
#include <gp_Dir.hxx>
Public Member Functions  
gp_Dir ()  
Creates a direction corresponding to X axis. More...  
gp_Dir (const gp_Vec &V)  
Normalizes the vector V and creates a direction. Raises ConstructionError if V.Magnitude() <= Resolution. More...  
gp_Dir (const gp_XYZ &Coord)  
Creates a direction from a triplet of coordinates. Raises ConstructionError if Coord.Modulus() <= Resolution from gp. More...  
gp_Dir (const Standard_Real Xv, const Standard_Real Yv, const Standard_Real Zv)  
Creates a direction with its 3 cartesian coordinates. Raises ConstructionError if Sqrt(Xv*Xv + Yv*Yv + Zv*Zv) <= Resolution Modification of the direction's coordinates If Sqrt (X*X + Y*Y + Z*Z) <= Resolution from gp where X, Y ,Z are the new coordinates it is not possible to construct the direction and the method raises the exception ConstructionError. More...  
void  SetCoord (const Standard_Integer Index, const Standard_Real Xi) 
For this unit vector, assigns the value Xi to: More...  
void  SetCoord (const Standard_Real Xv, const Standard_Real Yv, const Standard_Real Zv) 
For this unit vector, assigns the values Xv, Yv and Zv to its three coordinates. Remember that all the coordinates of a unit vector are implicitly modified when any single one is changed directly. More...  
void  SetX (const Standard_Real X) 
Assigns the given value to the X coordinate of this unit vector. More...  
void  SetY (const Standard_Real Y) 
Assigns the given value to the Y coordinate of this unit vector. More...  
void  SetZ (const Standard_Real Z) 
Assigns the given value to the Z coordinate of this unit vector. More...  
void  SetXYZ (const gp_XYZ &Coord) 
Assigns the three coordinates of Coord to this unit vector. More...  
Standard_Real  Coord (const Standard_Integer Index) const 
Returns the coordinate of range Index : Index = 1 => X is returned Index = 2 => Y is returned Index = 3 => Z is returned Exceptions Standard_OutOfRange if Index is not 1, 2, or 3. More...  
void  Coord (Standard_Real &Xv, Standard_Real &Yv, Standard_Real &Zv) const 
Returns for the unit vector its three coordinates Xv, Yv, and Zv. More...  
Standard_Real  X () const 
Returns the X coordinate for a unit vector. More...  
Standard_Real  Y () const 
Returns the Y coordinate for a unit vector. More...  
Standard_Real  Z () const 
Returns the Z coordinate for a unit vector. More...  
const gp_XYZ &  XYZ () const 
for this unit vector, returns its three coordinates as a number triplea. More...  
Standard_Boolean  IsEqual (const gp_Dir &Other, const Standard_Real AngularTolerance) const 
Returns True if the angle between the two directions is lower or equal to AngularTolerance. More...  
Standard_Boolean  IsNormal (const gp_Dir &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 (normal). More...  
Standard_Boolean  IsOpposite (const gp_Dir &Other, const Standard_Real AngularTolerance) const 
Returns True if the angle between this unit vector and the unit vector Other is equal to Pi (opposite). More...  
Standard_Boolean  IsParallel (const gp_Dir &Other, const Standard_Real AngularTolerance) const 
Returns true if the angle between this unit vector and the unit vector Other is equal to 0 or to Pi. Note: the tolerance criterion is given by AngularTolerance. More...  
Standard_Real  Angle (const gp_Dir &Other) const 
Computes the angular value in radians between <me> and <Other>. This value is always positive in 3D space. Returns the angle in the range [0, PI]. More...  
Standard_Real  AngleWithRef (const gp_Dir &Other, const gp_Dir &VRef) const 
Computes the angular value between <me> and <Other>. <VRef> is the direction of reference normal to <me> and <Other> and its orientation gives the positive sense of rotation. If the cross product <me> ^ <Other> has the same orientation as <VRef> the angular value is positive else negative. Returns the angular value in the range PI and PI (in radians). Raises DomainError if <me> and <Other> are not parallel this exception is raised when <VRef> is in the same plane as <me> and <Other> The tolerance criterion is Resolution from package gp. More...  
void  Cross (const gp_Dir &Right) 
Computes the cross product between two directions Raises the exception ConstructionError if the two directions are parallel because the computed vector cannot be normalized to create a direction. More...  
void  operator^= (const gp_Dir &Right) 
gp_Dir  Crossed (const gp_Dir &Right) const 
Computes the triple vector product. <me> ^ (V1 ^ V2) Raises the exception ConstructionError if V1 and V2 are parallel or <me> and (V1^V2) are parallel because the computed vector can't be normalized to create a direction. More...  
gp_Dir  operator^ (const gp_Dir &Right) const 
void  CrossCross (const gp_Dir &V1, const gp_Dir &V2) 
gp_Dir  CrossCrossed (const gp_Dir &V1, const gp_Dir &V2) const 
Computes the double vector product this ^ (V1 ^ V2). More...  
Standard_Real  Dot (const gp_Dir &Other) const 
Computes the scalar product. More...  
Standard_Real  operator* (const gp_Dir &Other) const 
Standard_Real  DotCross (const gp_Dir &V1, const gp_Dir &V2) const 
Computes the triple scalar product <me> * (V1 ^ V2). Warnings : The computed vector V1' = V1 ^ V2 is not normalized to create a unitary vector. So this method never raises an exception even if V1 and V2 are parallel. More...  
void  Reverse () 
gp_Dir  Reversed () const 
Reverses the orientation of a direction geometric transformations Performs the symmetrical transformation of a direction with respect to the direction V which is the center of the symmetry.]. More...  
gp_Dir  operator () const 
void  Mirror (const gp_Dir &V) 
gp_Dir  Mirrored (const gp_Dir &V) const 
Performs the symmetrical transformation of a direction with respect to the direction V which is the center of the symmetry. More...  
void  Mirror (const gp_Ax1 &A1) 
gp_Dir  Mirrored (const gp_Ax1 &A1) const 
Performs the symmetrical transformation of a direction with respect to an axis placement which is the axis of the symmetry. More...  
void  Mirror (const gp_Ax2 &A2) 
gp_Dir  Mirrored (const gp_Ax2 &A2) const 
Performs the symmetrical transformation of a direction with respect to a plane. The axis placement A2 locates the plane of the symmetry : (Location, XDirection, YDirection). More...  
void  Rotate (const gp_Ax1 &A1, const Standard_Real Ang) 
gp_Dir  Rotated (const gp_Ax1 &A1, const Standard_Real Ang) const 
Rotates a direction. A1 is the axis of the rotation. Ang is the angular value of the rotation in radians. More...  
void  Transform (const gp_Trsf &T) 
gp_Dir  Transformed (const gp_Trsf &T) const 
Transforms a direction with a "Trsf" from gp. Warnings : If the scale factor of the "Trsf" T is negative then the direction <me> is reversed. More...  
Describes a unit vector in 3D space. This unit vector is also called "Direction". See Also gce_MakeDir which provides functions for more complex unit vector constructions Geom_Direction which provides additional functions for constructing unit vectors and works, in particular, with the parametric equations of unit vectors.
gp_Dir::gp_Dir  (  ) 
Creates a direction corresponding to X axis.
gp_Dir::gp_Dir  (  const gp_Vec &  V  ) 
Normalizes the vector V and creates a direction. Raises ConstructionError if V.Magnitude() <= Resolution.
gp_Dir::gp_Dir  (  const gp_XYZ &  Coord  ) 
Creates a direction from a triplet of coordinates. Raises ConstructionError if Coord.Modulus() <= Resolution from gp.
gp_Dir::gp_Dir  (  const Standard_Real  Xv, 
const Standard_Real  Yv,  
const Standard_Real  Zv  
) 
Creates a direction with its 3 cartesian coordinates. Raises ConstructionError if Sqrt(Xv*Xv + Yv*Yv + Zv*Zv) <= Resolution Modification of the direction's coordinates If Sqrt (X*X + Y*Y + Z*Z) <= Resolution from gp where X, Y ,Z are the new coordinates it is not possible to construct the direction and the method raises the exception ConstructionError.
Standard_Real gp_Dir::Angle  (  const gp_Dir &  Other  )  const 
Computes the angular value in radians between <me> and <Other>. This value is always positive in 3D space. Returns the angle in the range [0, PI].
Standard_Real gp_Dir::AngleWithRef  (  const gp_Dir &  Other, 
const gp_Dir &  VRef  
)  const 
Computes the angular value between <me> and <Other>. <VRef> is the direction of reference normal to <me> and <Other> and its orientation gives the positive sense of rotation. If the cross product <me> ^ <Other> has the same orientation as <VRef> the angular value is positive else negative. Returns the angular value in the range PI and PI (in radians). Raises DomainError if <me> and <Other> are not parallel this exception is raised when <VRef> is in the same plane as <me> and <Other> The tolerance criterion is Resolution from package gp.
Standard_Real gp_Dir::Coord  (  const Standard_Integer  Index  )  const 
Returns the coordinate of range Index : Index = 1 => X is returned Index = 2 => Y is returned Index = 3 => Z is returned Exceptions Standard_OutOfRange if Index is not 1, 2, or 3.
void gp_Dir::Coord  (  Standard_Real &  Xv, 
Standard_Real &  Yv,  
Standard_Real &  Zv  
)  const 
Returns for the unit vector its three coordinates Xv, Yv, and Zv.
void gp_Dir::Cross  (  const gp_Dir &  Right  ) 
Computes the cross product between two directions Raises the exception ConstructionError if the two directions are parallel because the computed vector cannot be normalized to create a direction.
Computes the double vector product this ^ (V1 ^ V2).
Computes the triple vector product. <me> ^ (V1 ^ V2) Raises the exception ConstructionError if V1 and V2 are parallel or <me> and (V1^V2) are parallel because the computed vector can't be normalized to create a direction.
Standard_Real gp_Dir::Dot  (  const gp_Dir &  Other  )  const 
Computes the scalar product.
Standard_Real gp_Dir::DotCross  (  const gp_Dir &  V1, 
const gp_Dir &  V2  
)  const 
Computes the triple scalar product <me> * (V1 ^ V2). Warnings : The computed vector V1' = V1 ^ V2 is not normalized to create a unitary vector. So this method never raises an exception even if V1 and V2 are parallel.
Standard_Boolean gp_Dir::IsEqual  (  const gp_Dir &  Other, 
const Standard_Real  AngularTolerance  
)  const 
Returns True if the angle between the two directions is lower or equal to AngularTolerance.
Standard_Boolean gp_Dir::IsNormal  (  const gp_Dir &  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 (normal).
Standard_Boolean gp_Dir::IsOpposite  (  const gp_Dir &  Other, 
const Standard_Real  AngularTolerance  
)  const 
Returns True if the angle between this unit vector and the unit vector Other is equal to Pi (opposite).
Standard_Boolean gp_Dir::IsParallel  (  const gp_Dir &  Other, 
const Standard_Real  AngularTolerance  
)  const 
Returns true if the angle between this unit vector and the unit vector Other is equal to 0 or to Pi. Note: the tolerance criterion is given by AngularTolerance.
void gp_Dir::Mirror  (  const gp_Dir &  V  ) 
void gp_Dir::Mirror  (  const gp_Ax1 &  A1  ) 
void gp_Dir::Mirror  (  const gp_Ax2 &  A2  ) 
Performs the symmetrical transformation of a direction with respect to the direction V which is the center of the symmetry.
Performs the symmetrical transformation of a direction with respect to an axis placement which is the axis of the symmetry.
Performs the symmetrical transformation of a direction with respect to a plane. The axis placement A2 locates the plane of the symmetry : (Location, XDirection, YDirection).

inline 

inline 

inline 
void gp_Dir::Reverse  (  ) 
gp_Dir gp_Dir::Reversed  (  )  const 
Reverses the orientation of a direction geometric transformations Performs the symmetrical transformation of a direction with respect to the direction V which is the center of the symmetry.].
void gp_Dir::Rotate  (  const gp_Ax1 &  A1, 
const Standard_Real  Ang  
) 
gp_Dir gp_Dir::Rotated  (  const gp_Ax1 &  A1, 
const Standard_Real  Ang  
)  const 
Rotates a direction. A1 is the axis of the rotation. Ang is the angular value of the rotation in radians.
void gp_Dir::SetCoord  (  const Standard_Integer  Index, 
const Standard_Real  Xi  
) 
For this unit vector, assigns the value Xi to:
void gp_Dir::SetCoord  (  const Standard_Real  Xv, 
const Standard_Real  Yv,  
const Standard_Real  Zv  
) 
For this unit vector, assigns the values Xv, Yv and Zv to its three coordinates. Remember that all the coordinates of a unit vector are implicitly modified when any single one is changed directly.
void gp_Dir::SetX  (  const Standard_Real  X  ) 
Assigns the given value to the X coordinate of this unit vector.
void gp_Dir::SetXYZ  (  const gp_XYZ &  Coord  ) 
Assigns the three coordinates of Coord to this unit vector.
void gp_Dir::SetY  (  const Standard_Real  Y  ) 
Assigns the given value to the Y coordinate of this unit vector.
void gp_Dir::SetZ  (  const Standard_Real  Z  ) 
Assigns the given value to the Z coordinate of this unit vector.
void gp_Dir::Transform  (  const gp_Trsf &  T  ) 
Transforms a direction with a "Trsf" from gp. Warnings : If the scale factor of the "Trsf" T is negative then the direction <me> is reversed.
Standard_Real gp_Dir::X  (  )  const 
Returns the X coordinate for a unit vector.
const gp_XYZ& gp_Dir::XYZ  (  )  const 
for this unit vector, returns its three coordinates as a number triplea.
Standard_Real gp_Dir::Y  (  )  const 
Returns the Y coordinate for a unit vector.
Standard_Real gp_Dir::Z  (  )  const 
Returns the Z coordinate for a unit vector.