Loading...
Searching...
No Matches
vec3d.h File Reference
+ Include dependency graph for vec3d.h:

Go to the source code of this file.

Classes

class  GfVec3d
 Basic type for a vector of 3 double components. More...
 

Functions

GF_API std::ostream & operator<< (std::ostream &, GfVec3d const &)
 Output a GfVec3d.
 
GfVec3d GfCompMult (GfVec3d const &v1, GfVec3d const &v2)
 Returns component-wise multiplication of vectors v1 and v2.
 
GfVec3d GfCompDiv (GfVec3d const &v1, GfVec3d const &v2)
 Returns component-wise quotient of vectors v1 and v2.
 
double GfDot (GfVec3d const &v1, GfVec3d const &v2)
 Returns the dot (inner) product of two vectors.
 
double GfGetLength (GfVec3d const &v)
 Returns the geometric length of v.
 
double GfNormalize (GfVec3d *v, double eps=GF_MIN_VECTOR_LENGTH)
 Normalizes *v in place to unit length, returning the length before normalization.
 
GfVec3d GfGetNormalized (GfVec3d const &v, double eps=GF_MIN_VECTOR_LENGTH)
 Returns a normalized (unit-length) vector with the same direction as v.
 
GfVec3d GfGetProjection (GfVec3d const &a, GfVec3d const &b)
 Returns the projection of a onto b.
 
GfVec3d GfGetComplement (GfVec3d const &a, GfVec3d const &b)
 Returns the orthogonal complement of a.GetProjection(b).
 
bool GfIsClose (GfVec3d const &v1, GfVec3d const &v2, double tolerance)
 Tests for equality within a given tolerance, returning true if the length of the difference vector is less than or equal to tolerance.
 
GF_API bool GfOrthogonalizeBasis (GfVec3d *tx, GfVec3d *ty, GfVec3d *tz, bool normalize, double eps=GF_MIN_ORTHO_TOLERANCE)
 
GF_API void GfBuildOrthonormalFrame (GfVec3d const &v0, GfVec3d *v1, GfVec3d *v2, double eps=GF_MIN_VECTOR_LENGTH)
 
GfVec3d GfCross (GfVec3d const &v1, GfVec3d const &v2)
 Returns the cross product of v1 and v2.
 
GfVec3d operator^ (GfVec3d const &v1, GfVec3d const &v2)
 Returns the cross product of v1 and v2.
 
GF_API GfVec3d GfSlerp (double alpha, GfVec3d const &v0, GfVec3d const &v1)
 Spherical linear interpolation in three dimensions.
 

Function Documentation

◆ GfCompDiv()

GfVec3d GfCompDiv ( GfVec3d const & v1,
GfVec3d const & v2 )
inline

Returns component-wise quotient of vectors v1 and v2.

Definition at line 507 of file vec3d.h.

◆ GfCompMult()

GfVec3d GfCompMult ( GfVec3d const & v1,
GfVec3d const & v2 )
inline

Returns component-wise multiplication of vectors v1 and v2.

Definition at line 497 of file vec3d.h.

◆ GfCross()

GfVec3d GfCross ( GfVec3d const & v1,
GfVec3d const & v2 )
inline

Returns the cross product of v1 and v2.

Definition at line 589 of file vec3d.h.

◆ GfDot()

double GfDot ( GfVec3d const & v1,
GfVec3d const & v2 )
inline

Returns the dot (inner) product of two vectors.

Definition at line 517 of file vec3d.h.

◆ GfGetComplement()

GfVec3d GfGetComplement ( GfVec3d const & a,
GfVec3d const & b )
inline

Returns the orthogonal complement of a.GetProjection(b).

That is:

a - a.GetProjection(b)

Definition at line 562 of file vec3d.h.

◆ GfGetLength()

double GfGetLength ( GfVec3d const & v)
inline

Returns the geometric length of v.

Definition at line 524 of file vec3d.h.

◆ GfGetNormalized()

GfVec3d GfGetNormalized ( GfVec3d const & v,
double eps = GF_MIN_VECTOR_LENGTH )
inline

Returns a normalized (unit-length) vector with the same direction as v.

If the length of this vector is smaller than eps, the vector divided by eps is returned.

Definition at line 542 of file vec3d.h.

◆ GfGetProjection()

GfVec3d GfGetProjection ( GfVec3d const & a,
GfVec3d const & b )
inline

Returns the projection of a onto b.

That is:

b * (a * b)

Definition at line 552 of file vec3d.h.

◆ GfIsClose()

bool GfIsClose ( GfVec3d const & v1,
GfVec3d const & v2,
double tolerance )
inline

Tests for equality within a given tolerance, returning true if the length of the difference vector is less than or equal to tolerance.

Definition at line 570 of file vec3d.h.

◆ GfNormalize()

double GfNormalize ( GfVec3d * v,
double eps = GF_MIN_VECTOR_LENGTH )
inline

Normalizes *v in place to unit length, returning the length before normalization.

If the length of *v is smaller than eps then *v is set to *v/eps. The original length of *v is returned.

Definition at line 533 of file vec3d.h.

◆ GfSlerp()

GF_API GfVec3d GfSlerp ( double alpha,
GfVec3d const & v0,
GfVec3d const & v1 )

Spherical linear interpolation in three dimensions.

◆ operator^()

GfVec3d operator^ ( GfVec3d const & v1,
GfVec3d const & v2 )
inline

Returns the cross product of v1 and v2.

See also
GfCross()

Definition at line 600 of file vec3d.h.