Open CASCADE Technology
6.9.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... | |
const gp_XYZ & | _CSFDB_Getgp_Dircoord () const |
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.
|
inline |
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.