OCC Main Page | FoundationClasses | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals

FoundationClasses
TKMath
gp


gp_Dir Class Reference

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

#include <gp_Dir.hxx>


Public Member Functions

void * operator new (size_t, void *anAddress)
void * operator new (size_t size)
void operator delete (void *anAddress)
 gp_Dir ()
 Creates an indefinite direction.
.
 gp_Dir (const gp_Vec &V)
 Normalizes the vector V and creates a direction. Raises ConstructionError if V.Magnitude() <= Resolution.
.
 gp_Dir (const gp_XYZ &Coord)
 Creates a direction from a triplet of coordinates. Raises ConstructionError if Coord.Modulus() <= Resolution from gp.
.
 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.
.
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, or
- the Z coordinate if Index is 3,
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, 2, or 3.
Standard_ConstructionError if either of the following
is less than or equal to gp::Resolution():
- Sqrt(Xv*Xv + Yv*Yv + Zv*Zv), or
- the modulus of the number triple formed by the new
value Xi and the two other coordinates of this vector
that were not directly modified.
.
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.
.
void SetX (const Standard_Real X)
 Assigns the given value to the X coordinate of this unit vector.
.
void SetY (const Standard_Real Y)
 Assigns the given value to the Y coordinate of this unit vector.
.
void SetZ (const Standard_Real Z)
 Assigns the given value to the Z coordinate of this unit vector.
.
void SetXYZ (const gp_XYZ &Coord)
 Assigns the three coordinates of Coord to this unit vector.
.
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.
.
void Coord (Standard_Real &Xv, Standard_Real &Yv, Standard_Real &Zv) const
 Returns for the unit vector its three coordinates Xv, Yv, and Zv.
.
Standard_Real X () const
 Returns the X coordinate for a unit vector.
.
Standard_Real Y () const
 Returns the Y coordinate for a unit vector.
.
Standard_Real Z () const
 Returns the Z coordinate for a unit vector.
.
const gp_XYZXYZ () const
 for this unit vector, returns its three coordinates as a number triplea.

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.
.
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).
.
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).
.
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.
.
Standard_EXPORT 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]
.
Standard_EXPORT 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.
.
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.
.
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.
.
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).
- CrossCrossed creates a new unit vector.
Exceptions
Standard_ConstructionError if:
- V1 and V2 are parallel, or
- this unit vector and (V1 ^ V2) are parallel.
This is because, in these conditions, the computed vector
is null and cannot be normalized.
.
Standard_Real Dot (const gp_Dir &Other) const
 Computes the scalar product
.
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.
.
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.]
.
gp_Dir operator- () const
Standard_EXPORT void Mirror (const gp_Dir &V)
Standard_EXPORT 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.
.
Standard_EXPORT void Mirror (const gp_Ax1 &A1)
Standard_EXPORT 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.
.
Standard_EXPORT void Mirror (const gp_Ax2 &A2)
Standard_EXPORT 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).
.
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.
.
Standard_EXPORT 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.
.
const gp_XYZ_CSFDB_Getgp_Dircoord () const

Private Attributes

gp_XYZ coord

Friends

Standard_EXPORT friend Handle_Standard_Type & gp_Dir_Type_ ()


Constructor & Destructor Documentation

gp_Dir::gp_Dir  )  [inline]
 

gp_Dir::gp_Dir const gp_Vec V  )  [inline]
 

gp_Dir::gp_Dir const gp_XYZ Coord  )  [inline]
 

gp_Dir::gp_Dir const Standard_Real  Xv,
const Standard_Real  Yv,
const Standard_Real  Zv
[inline]
 


Member Function Documentation

const gp_XYZ& gp_Dir::_CSFDB_Getgp_Dircoord  )  const [inline]
 

Standard_EXPORT Standard_Real gp_Dir::Angle const gp_Dir Other  )  const
 

Standard_EXPORT Standard_Real gp_Dir::AngleWithRef const gp_Dir Other,
const gp_Dir VRef
const
 

void gp_Dir::Coord Standard_Real Xv,
Standard_Real Yv,
Standard_Real Zv
const [inline]
 

Standard_Real gp_Dir::Coord const Standard_Integer  Index  )  const [inline]
 

void gp_Dir::Cross const gp_Dir Right  )  [inline]
 

void gp_Dir::CrossCross const gp_Dir V1,
const gp_Dir V2
[inline]
 

gp_Dir gp_Dir::CrossCrossed const gp_Dir V1,
const gp_Dir V2
const [inline]
 

gp_Dir gp_Dir::Crossed const gp_Dir Right  )  const [inline]
 

Standard_Real gp_Dir::Dot const gp_Dir Other  )  const [inline]
 

Standard_Real gp_Dir::DotCross const gp_Dir V1,
const gp_Dir V2
const [inline]
 

Standard_Boolean gp_Dir::IsEqual const gp_Dir Other,
const Standard_Real  AngularTolerance
const [inline]
 

Standard_Boolean gp_Dir::IsNormal const gp_Dir Other,
const Standard_Real  AngularTolerance
const [inline]
 

Standard_Boolean gp_Dir::IsOpposite const gp_Dir Other,
const Standard_Real  AngularTolerance
const [inline]
 

Standard_Boolean gp_Dir::IsParallel const gp_Dir Other,
const Standard_Real  AngularTolerance
const [inline]
 

Standard_EXPORT void gp_Dir::Mirror const gp_Ax2 A2  ) 
 

Standard_EXPORT void gp_Dir::Mirror const gp_Ax1 A1  ) 
 

Standard_EXPORT void gp_Dir::Mirror const gp_Dir V  ) 
 

Standard_EXPORT gp_Dir gp_Dir::Mirrored const gp_Ax2 A2  )  const
 

Standard_EXPORT gp_Dir gp_Dir::Mirrored const gp_Ax1 A1  )  const
 

Standard_EXPORT gp_Dir gp_Dir::Mirrored const gp_Dir V  )  const
 

Standard_Real gp_Dir::operator * const gp_Dir Other  )  const [inline]
 

void gp_Dir::operator delete void *  anAddress  )  [inline]
 

void* gp_Dir::operator new size_t  size  )  [inline]
 

void* gp_Dir::operator new size_t  ,
void *  anAddress
[inline]
 

gp_Dir gp_Dir::operator-  )  const [inline]
 

gp_Dir gp_Dir::operator^ const gp_Dir Right  )  const [inline]
 

void gp_Dir::operator^= const gp_Dir Right  )  [inline]
 

void gp_Dir::Reverse  )  [inline]
 

gp_Dir gp_Dir::Reversed  )  const [inline]
 

void gp_Dir::Rotate const gp_Ax1 A1,
const Standard_Real  Ang
[inline]
 

gp_Dir gp_Dir::Rotated const gp_Ax1 A1,
const Standard_Real  Ang
const [inline]
 

void gp_Dir::SetCoord const Standard_Real  Xv,
const Standard_Real  Yv,
const Standard_Real  Zv
[inline]
 

void gp_Dir::SetCoord const Standard_Integer  Index,
const Standard_Real  Xi
[inline]
 

void gp_Dir::SetX const Standard_Real  X  )  [inline]
 

void gp_Dir::SetXYZ const gp_XYZ Coord  )  [inline]
 

void gp_Dir::SetY const Standard_Real  Y  )  [inline]
 

void gp_Dir::SetZ const Standard_Real  Z  )  [inline]
 

Standard_EXPORT void gp_Dir::Transform const gp_Trsf T  ) 
 

gp_Dir gp_Dir::Transformed const gp_Trsf T  )  const [inline]
 

Standard_Real gp_Dir::X  )  const [inline]
 

const gp_XYZ & gp_Dir::XYZ  )  const [inline]
 

Standard_Real gp_Dir::Y  )  const [inline]
 

Standard_Real gp_Dir::Z  )  const [inline]
 


Friends And Related Function Documentation

Standard_EXPORT friend Handle_Standard_Type& gp_Dir_Type_  )  [friend]
 


Field Documentation

gp_XYZ gp_Dir::coord [private]
 


The documentation for this class was generated from the following files:
Generated on Mon Aug 25 13:12:40 2008 for OpenCASCADE by  doxygen 1.4.1