gp_Vec Class Reference

Defines a non-persistent vector in 3D space. More...

`#include <gp_Vec.hxx>`

Public Member Functions

gp_Vec ()
Creates a zero vector. More...

gp_Vec (const gp_Dir &theV)
Creates a unitary vector from a direction theV. More...

gp_Vec (const gp_XYZ &theCoord)
Creates a vector with a triplet of coordinates. More...

gp_Vec (const Standard_Real theXv, const Standard_Real theYv, const Standard_Real theZv)
Creates a point with its three cartesian coordinates. More...

gp_Vec (const gp_Pnt &theP1, const gp_Pnt &theP2)
Creates a vector from two points. The length of the vector is the distance between theP1 and theP2. More...

void SetCoord (const Standard_Integer theIndex, const Standard_Real theXi)
Changes the coordinate of range theIndex theIndex = 1 => X is modified theIndex = 2 => Y is modified theIndex = 3 => Z is modified Raised if theIndex != {1, 2, 3}. More...

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

void SetX (const Standard_Real theX)
Assigns the given value to the X coordinate of this vector. More...

void SetY (const Standard_Real theY)
Assigns the given value to the X coordinate of this vector. More...

void SetZ (const Standard_Real theZ)
Assigns the given value to the X coordinate of this vector. More...

void SetXYZ (const gp_XYZ &theCoord)
Assigns the three coordinates of theCoord to this vector. More...

Standard_Real Coord (const Standard_Integer theIndex) const
Returns the coordinate of range theIndex : theIndex = 1 => X is returned theIndex = 2 => Y is returned theIndex = 3 => Z is returned Raised if theIndex != {1, 2, 3}. More...

void Coord (Standard_Real &theXv, Standard_Real &theYv, Standard_Real &theZv) const
For this vector returns its three coordinates theXv, theYv, and theZv inline. More...

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

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

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

const gp_XYZXYZ () const
For this vector, returns. More...

Standard_Boolean IsEqual (const gp_Vec &theOther, const Standard_Real theLinearTolerance, const Standard_Real theAngularTolerance) const
Returns True if the two vectors have the same magnitude value and the same direction. The precision values are theLinearTolerance for the magnitude and theAngularTolerance for the direction. More...

Standard_Boolean IsNormal (const gp_Vec &theOther, const Standard_Real theAngularTolerance) const
Returns True if abs(<me>.Angle(theOther) - PI/2.) <= theAngularTolerance Raises VectorWithNullMagnitude if <me>.Magnitude() <= Resolution or theOther.Magnitude() <= Resolution from gp. More...

Standard_Boolean IsOpposite (const gp_Vec &theOther, const Standard_Real theAngularTolerance) const
Returns True if PI - <me>.Angle(theOther) <= theAngularTolerance Raises VectorWithNullMagnitude if <me>.Magnitude() <= Resolution or Other.Magnitude() <= Resolution from gp. More...

Standard_Boolean IsParallel (const gp_Vec &theOther, const Standard_Real theAngularTolerance) const
Returns True if Angle(<me>, theOther) <= theAngularTolerance or PI - Angle(<me>, theOther) <= theAngularTolerance This definition means that two parallel vectors cannot define a plane but two vectors with opposite directions are considered as parallel. Raises VectorWithNullMagnitude if <me>.Magnitude() <= Resolution or Other.Magnitude() <= Resolution from gp. More...

Standard_Real Angle (const gp_Vec &theOther) const
Computes the angular value between <me> and <theOther> Returns the angle value between 0 and PI in radian. Raises VectorWithNullMagnitude if <me>.Magnitude() <= Resolution from gp or theOther.Magnitude() <= Resolution because the angular value is indefinite if one of the vectors has a null magnitude. More...

Standard_Real AngleWithRef (const gp_Vec &theOther, const gp_Vec &theVRef) const
Computes the angle, in radians, between this vector and vector theOther. The result is a value between -Pi and Pi. For this, theVRef defines the positive sense of rotation: the angular value is positive, if the cross product this ^ theOther has the same orientation as theVRef relative to the plane defined by the vectors this and theOther. Otherwise, the angular value is negative. Exceptions gp_VectorWithNullMagnitude if the magnitude of this vector, the vector theOther, or the vector theVRef is less than or equal to gp::Resolution(). Standard_DomainError if this vector, the vector theOther, and the vector theVRef are coplanar, unless this vector and the vector theOther are parallel. More...

Standard_Real Magnitude () const
Computes the magnitude of this vector. More...

Standard_Real SquareMagnitude () const
Computes the square magnitude of this vector. More...

void operator+= (const gp_Vec &theOther)

gp_Vec Added (const gp_Vec &theOther) const

gp_Vec operator+ (const gp_Vec &theOther) const

void Subtract (const gp_Vec &theRight)
Subtracts two vectors. More...

void operator-= (const gp_Vec &theRight)

gp_Vec Subtracted (const gp_Vec &theRight) const
Subtracts two vectors. More...

gp_Vec operator- (const gp_Vec &theRight) const

void Multiply (const Standard_Real theScalar)
Multiplies a vector by a scalar. More...

void operator*= (const Standard_Real theScalar)

gp_Vec Multiplied (const Standard_Real theScalar) const
Multiplies a vector by a scalar. More...

gp_Vec operator* (const Standard_Real theScalar) const

void Divide (const Standard_Real theScalar)
Divides a vector by a scalar. More...

void operator/= (const Standard_Real theScalar)

gp_Vec Divided (const Standard_Real theScalar) const
Divides a vector by a scalar. More...

gp_Vec operator/ (const Standard_Real theScalar) const

void Cross (const gp_Vec &theRight)
computes the cross product between two vectors More...

void operator^= (const gp_Vec &theRight)

gp_Vec Crossed (const gp_Vec &theRight) const
computes the cross product between two vectors More...

gp_Vec operator^ (const gp_Vec &theRight) const

Standard_Real CrossMagnitude (const gp_Vec &theRight) const
Computes the magnitude of the cross product between <me> and theRight. Returns || <me> ^ theRight ||. More...

Standard_Real CrossSquareMagnitude (const gp_Vec &theRight) const
Computes the square magnitude of the cross product between <me> and theRight. Returns || <me> ^ theRight ||**2. More...

void CrossCross (const gp_Vec &theV1, const gp_Vec &theV2)
Computes the triple vector product. <me> ^= (theV1 ^ theV2) More...

gp_Vec CrossCrossed (const gp_Vec &theV1, const gp_Vec &theV2) const
Computes the triple vector product. <me> ^ (theV1 ^ theV2) More...

Standard_Real Dot (const gp_Vec &theOther) const
computes the scalar product More...

Standard_Real operator* (const gp_Vec &theOther) const

Standard_Real DotCross (const gp_Vec &theV1, const gp_Vec &theV2) const
Computes the triple scalar product <me> * (theV1 ^ theV2). More...

void Normalize ()
normalizes a vector Raises an exception if the magnitude of the vector is lower or equal to Resolution from gp. More...

gp_Vec Normalized () const
normalizes a vector Raises an exception if the magnitude of the vector is lower or equal to Resolution from gp. More...

void Reverse ()
Reverses the direction of a vector. More...

gp_Vec Reversed () const
Reverses the direction of a vector. More...

gp_Vec operator- () const

void SetLinearForm (const Standard_Real theA1, const gp_Vec &theV1, const Standard_Real theA2, const gp_Vec &theV2, const Standard_Real theA3, const gp_Vec &theV3, const gp_Vec &theV4)
<me> is set to the following linear form : theA1 * theV1 + theA2 * theV2 + theA3 * theV3 + theV4 More...

void SetLinearForm (const Standard_Real theA1, const gp_Vec &theV1, const Standard_Real theA2, const gp_Vec &theV2, const Standard_Real theA3, const gp_Vec &theV3)
<me> is set to the following linear form : theA1 * theV1 + theA2 * theV2 + theA3 * theV3 More...

void SetLinearForm (const Standard_Real theA1, const gp_Vec &theV1, const Standard_Real theA2, const gp_Vec &theV2, const gp_Vec &theV3)
<me> is set to the following linear form : theA1 * theV1 + theA2 * theV2 + theV3 More...

void SetLinearForm (const Standard_Real theA1, const gp_Vec &theV1, const Standard_Real theA2, const gp_Vec &theV2)
<me> is set to the following linear form : theA1 * theV1 + theA2 * theV2 More...

void SetLinearForm (const Standard_Real theA1, const gp_Vec &theV1, const gp_Vec &theV2)
<me> is set to the following linear form : theA1 * theV1 + theV2 More...

void SetLinearForm (const gp_Vec &theV1, const gp_Vec &theV2)
<me> is set to the following linear form : theV1 + theV2 More...

void Mirror (const gp_Vec &theV)

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

void Mirror (const gp_Ax1 &theA1)

gp_Vec Mirrored (const gp_Ax1 &theA1) const
Performs the symmetrical transformation of a vector with respect to an axis placement which is the axis of the symmetry. More...

void Mirror (const gp_Ax2 &theA2)

gp_Vec Mirrored (const gp_Ax2 &theA2) const
Performs the symmetrical transformation of a vector with respect to a plane. The axis placement theA2 locates the plane of the symmetry : (Location, XDirection, YDirection). More...

void Rotate (const gp_Ax1 &theA1, const Standard_Real theAng)

gp_Vec Rotated (const gp_Ax1 &theA1, const Standard_Real theAng) const
Rotates a vector. theA1 is the axis of the rotation. theAng is the angular value of the rotation in radians. More...

void Scale (const Standard_Real theS)

gp_Vec Scaled (const Standard_Real theS) const
Scales a vector. theS is the scaling value. More...

void Transform (const gp_Trsf &theT)
Transforms a vector with the transformation theT. More...

gp_Vec Transformed (const gp_Trsf &theT) const
Transforms a vector with the transformation theT. More...

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

Detailed Description

Defines a non-persistent vector in 3D space.

◆ gp_Vec() [1/5]

 gp_Vec::gp_Vec ( )
inline

Creates a zero vector.

◆ gp_Vec() [2/5]

 gp_Vec::gp_Vec ( const gp_Dir & theV )
inline

Creates a unitary vector from a direction theV.

◆ gp_Vec() [3/5]

 gp_Vec::gp_Vec ( const gp_XYZ & theCoord )
inline

Creates a vector with a triplet of coordinates.

◆ gp_Vec() [4/5]

 gp_Vec::gp_Vec ( const Standard_Real theXv, const Standard_Real theYv, const Standard_Real theZv )
inline

Creates a point with its three cartesian coordinates.

◆ gp_Vec() [5/5]

 gp_Vec::gp_Vec ( const gp_Pnt & theP1, const gp_Pnt & theP2 )
inline

Creates a vector from two points. The length of the vector is the distance between theP1 and theP2.

Member Function Documentation

 void gp_Vec::Add ( const gp_Vec & theOther )
inline

 gp_Vec gp_Vec::Added ( const gp_Vec & theOther ) const
inline

◆ Angle()

 Standard_Real gp_Vec::Angle ( const gp_Vec & theOther ) const
inline

Computes the angular value between <me> and <theOther> Returns the angle value between 0 and PI in radian. Raises VectorWithNullMagnitude if <me>.Magnitude() <= Resolution from gp or theOther.Magnitude() <= Resolution because the angular value is indefinite if one of the vectors has a null magnitude.

◆ AngleWithRef()

 Standard_Real gp_Vec::AngleWithRef ( const gp_Vec & theOther, const gp_Vec & theVRef ) const
inline

Computes the angle, in radians, between this vector and vector theOther. The result is a value between -Pi and Pi. For this, theVRef defines the positive sense of rotation: the angular value is positive, if the cross product this ^ theOther has the same orientation as theVRef relative to the plane defined by the vectors this and theOther. Otherwise, the angular value is negative. Exceptions gp_VectorWithNullMagnitude if the magnitude of this vector, the vector theOther, or the vector theVRef is less than or equal to gp::Resolution(). Standard_DomainError if this vector, the vector theOther, and the vector theVRef are coplanar, unless this vector and the vector theOther are parallel.

◆ Coord() [1/2]

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

Returns the coordinate of range theIndex : theIndex = 1 => X is returned theIndex = 2 => Y is returned theIndex = 3 => Z is returned Raised if theIndex != {1, 2, 3}.

◆ Coord() [2/2]

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

For this vector returns its three coordinates theXv, theYv, and theZv inline.

◆ Cross()

 void gp_Vec::Cross ( const gp_Vec & theRight )
inline

computes the cross product between two vectors

◆ CrossCross()

 void gp_Vec::CrossCross ( const gp_Vec & theV1, const gp_Vec & theV2 )
inline

Computes the triple vector product. <me> ^= (theV1 ^ theV2)

◆ CrossCrossed()

 gp_Vec gp_Vec::CrossCrossed ( const gp_Vec & theV1, const gp_Vec & theV2 ) const
inline

Computes the triple vector product. <me> ^ (theV1 ^ theV2)

◆ Crossed()

 gp_Vec gp_Vec::Crossed ( const gp_Vec & theRight ) const
inline

computes the cross product between two vectors

◆ CrossMagnitude()

 Standard_Real gp_Vec::CrossMagnitude ( const gp_Vec & theRight ) const
inline

Computes the magnitude of the cross product between <me> and theRight. Returns || <me> ^ theRight ||.

◆ CrossSquareMagnitude()

 Standard_Real gp_Vec::CrossSquareMagnitude ( const gp_Vec & theRight ) const
inline

Computes the square magnitude of the cross product between <me> and theRight. Returns || <me> ^ theRight ||**2.

◆ Divide()

 void gp_Vec::Divide ( const Standard_Real theScalar )
inline

Divides a vector by a scalar.

◆ Divided()

 gp_Vec gp_Vec::Divided ( const Standard_Real theScalar ) const
inline

Divides a vector by a scalar.

◆ Dot()

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

computes the scalar product

◆ DotCross()

 Standard_Real gp_Vec::DotCross ( const gp_Vec & theV1, const gp_Vec & theV2 ) const
inline

Computes the triple scalar product <me> * (theV1 ^ theV2).

◆ DumpJson()

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

Dumps the content of me into the stream.

◆ IsEqual()

 Standard_Boolean gp_Vec::IsEqual ( const gp_Vec & theOther, const Standard_Real theLinearTolerance, const Standard_Real theAngularTolerance ) const

Returns True if the two vectors have the same magnitude value and the same direction. The precision values are theLinearTolerance for the magnitude and theAngularTolerance for the direction.

◆ IsNormal()

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

Returns True if abs(<me>.Angle(theOther) - PI/2.) <= theAngularTolerance Raises VectorWithNullMagnitude if <me>.Magnitude() <= Resolution or theOther.Magnitude() <= Resolution from gp.

◆ IsOpposite()

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

Returns True if PI - <me>.Angle(theOther) <= theAngularTolerance Raises VectorWithNullMagnitude if <me>.Magnitude() <= Resolution or Other.Magnitude() <= Resolution from gp.

◆ IsParallel()

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

Returns True if Angle(<me>, theOther) <= theAngularTolerance or PI - Angle(<me>, theOther) <= theAngularTolerance This definition means that two parallel vectors cannot define a plane but two vectors with opposite directions are considered as parallel. Raises VectorWithNullMagnitude if <me>.Magnitude() <= Resolution or Other.Magnitude() <= Resolution from gp.

◆ Magnitude()

 Standard_Real gp_Vec::Magnitude ( ) const
inline

Computes the magnitude of this vector.

◆ Mirror() [1/3]

 void gp_Vec::Mirror ( const gp_Ax1 & theA1 )

◆ Mirror() [2/3]

 void gp_Vec::Mirror ( const gp_Ax2 & theA2 )

◆ Mirror() [3/3]

 void gp_Vec::Mirror ( const gp_Vec & theV )

◆ Mirrored() [1/3]

 gp_Vec gp_Vec::Mirrored ( const gp_Ax1 & theA1 ) const

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

◆ Mirrored() [2/3]

 gp_Vec gp_Vec::Mirrored ( const gp_Ax2 & theA2 ) const

Performs the symmetrical transformation of a vector with respect to a plane. The axis placement theA2 locates the plane of the symmetry : (Location, XDirection, YDirection).

◆ Mirrored() [3/3]

 gp_Vec gp_Vec::Mirrored ( const gp_Vec & theV ) const

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

◆ Multiplied()

 gp_Vec gp_Vec::Multiplied ( const Standard_Real theScalar ) const
inline

Multiplies a vector by a scalar.

◆ Multiply()

 void gp_Vec::Multiply ( const Standard_Real theScalar )
inline

Multiplies a vector by a scalar.

◆ Normalize()

 void gp_Vec::Normalize ( )
inline

normalizes a vector Raises an exception if the magnitude of the vector is lower or equal to Resolution from gp.

◆ Normalized()

 gp_Vec gp_Vec::Normalized ( ) const
inline

normalizes a vector Raises an exception if the magnitude of the vector is lower or equal to Resolution from gp.

◆ operator*() [1/2]

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

◆ operator*() [2/2]

 gp_Vec gp_Vec::operator* ( const Standard_Real theScalar ) const
inline

◆ operator*=()

 void gp_Vec::operator*= ( const Standard_Real theScalar )
inline

◆ operator+()

 gp_Vec gp_Vec::operator+ ( const gp_Vec & theOther ) const
inline

◆ operator+=()

 void gp_Vec::operator+= ( const gp_Vec & theOther )
inline

◆ operator-() [1/2]

 gp_Vec gp_Vec::operator- ( ) const
inline

◆ operator-() [2/2]

 gp_Vec gp_Vec::operator- ( const gp_Vec & theRight ) const
inline

◆ operator-=()

 void gp_Vec::operator-= ( const gp_Vec & theRight )
inline

◆ operator/()

 gp_Vec gp_Vec::operator/ ( const Standard_Real theScalar ) const
inline

◆ operator/=()

 void gp_Vec::operator/= ( const Standard_Real theScalar )
inline

◆ operator^()

 gp_Vec gp_Vec::operator^ ( const gp_Vec & theRight ) const
inline

◆ operator^=()

 void gp_Vec::operator^= ( const gp_Vec & theRight )
inline

◆ Reverse()

 void gp_Vec::Reverse ( )
inline

Reverses the direction of a vector.

◆ Reversed()

 gp_Vec gp_Vec::Reversed ( ) const
inline

Reverses the direction of a vector.

◆ Rotate()

 void gp_Vec::Rotate ( const gp_Ax1 & theA1, const Standard_Real theAng )
inline

◆ Rotated()

 gp_Vec gp_Vec::Rotated ( const gp_Ax1 & theA1, const Standard_Real theAng ) const
inline

Rotates a vector. theA1 is the axis of the rotation. theAng is the angular value of the rotation in radians.

◆ Scale()

 void gp_Vec::Scale ( const Standard_Real theS )
inline

◆ Scaled()

 gp_Vec gp_Vec::Scaled ( const Standard_Real theS ) const
inline

Scales a vector. theS is the scaling value.

◆ SetCoord() [1/2]

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

Changes the coordinate of range theIndex theIndex = 1 => X is modified theIndex = 2 => Y is modified theIndex = 3 => Z is modified Raised if theIndex != {1, 2, 3}.

◆ SetCoord() [2/2]

 void gp_Vec::SetCoord ( const Standard_Real theXv, const Standard_Real theYv, const Standard_Real theZv )
inline

For this vector, assigns.

• the values theXv, theYv and theZv to its three coordinates.

◆ SetLinearForm() [1/6]

 void gp_Vec::SetLinearForm ( const gp_Vec & theV1, const gp_Vec & theV2 )
inline

<me> is set to the following linear form : theV1 + theV2

◆ SetLinearForm() [2/6]

 void gp_Vec::SetLinearForm ( const Standard_Real theA1, const gp_Vec & theV1, const gp_Vec & theV2 )
inline

<me> is set to the following linear form : theA1 * theV1 + theV2

◆ SetLinearForm() [3/6]

 void gp_Vec::SetLinearForm ( const Standard_Real theA1, const gp_Vec & theV1, const Standard_Real theA2, const gp_Vec & theV2 )
inline

<me> is set to the following linear form : theA1 * theV1 + theA2 * theV2

◆ SetLinearForm() [4/6]

 void gp_Vec::SetLinearForm ( const Standard_Real theA1, const gp_Vec & theV1, const Standard_Real theA2, const gp_Vec & theV2, const gp_Vec & theV3 )
inline

<me> is set to the following linear form : theA1 * theV1 + theA2 * theV2 + theV3

◆ SetLinearForm() [5/6]

 void gp_Vec::SetLinearForm ( const Standard_Real theA1, const gp_Vec & theV1, const Standard_Real theA2, const gp_Vec & theV2, const Standard_Real theA3, const gp_Vec & theV3 )
inline

<me> is set to the following linear form : theA1 * theV1 + theA2 * theV2 + theA3 * theV3

◆ SetLinearForm() [6/6]

 void gp_Vec::SetLinearForm ( const Standard_Real theA1, const gp_Vec & theV1, const Standard_Real theA2, const gp_Vec & theV2, const Standard_Real theA3, const gp_Vec & theV3, const gp_Vec & theV4 )
inline

<me> is set to the following linear form : theA1 * theV1 + theA2 * theV2 + theA3 * theV3 + theV4

◆ SetX()

 void gp_Vec::SetX ( const Standard_Real theX )
inline

Assigns the given value to the X coordinate of this vector.

◆ SetXYZ()

 void gp_Vec::SetXYZ ( const gp_XYZ & theCoord )
inline

Assigns the three coordinates of theCoord to this vector.

◆ SetY()

 void gp_Vec::SetY ( const Standard_Real theY )
inline

Assigns the given value to the X coordinate of this vector.

◆ SetZ()

 void gp_Vec::SetZ ( const Standard_Real theZ )
inline

Assigns the given value to the X coordinate of this vector.

◆ SquareMagnitude()

 Standard_Real gp_Vec::SquareMagnitude ( ) const
inline

Computes the square magnitude of this vector.

◆ Subtract()

 void gp_Vec::Subtract ( const gp_Vec & theRight )
inline

Subtracts two vectors.

◆ Subtracted()

 gp_Vec gp_Vec::Subtracted ( const gp_Vec & theRight ) const
inline

Subtracts two vectors.

◆ Transform()

 void gp_Vec::Transform ( const gp_Trsf & theT )

Transforms a vector with the transformation theT.

◆ Transformed()

 gp_Vec gp_Vec::Transformed ( const gp_Trsf & theT ) const
inline

Transforms a vector with the transformation theT.

◆ X()

 Standard_Real gp_Vec::X ( ) const
inline

For this vector, returns its X coordinate.

◆ XYZ()

 const gp_XYZ& gp_Vec::XYZ ( ) const
inline

For this vector, returns.

• its three coordinates as a number triple

◆ Y()

 Standard_Real gp_Vec::Y ( ) const
inline

For this vector, returns its Y coordinate.

◆ Z()

 Standard_Real gp_Vec::Z ( ) const
inline

For this vector, returns its Z coordinate.

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