Classes | Namespaces | Defines | Functions | Variables
Vector3.h File Reference
#include "Scalar.h"
#include "MinMax.h"
Include dependency graph for Vector3.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  tf::tfVector4
class  tf::Vector3
 Vector3 can be used to represent 3D points and vectors. It has an un-used w component to suit 16-byte alignment when Vector3 is stored in containers. This extra component can be used by derived classes (Quaternion?) or by user Ideally, this class should be replaced by a platform optimized SIMD version that keeps the data in registers. More...
struct  tf::Vector3DoubleData
struct  tf::Vector3FloatData

Namespaces

namespace  tf

Defines

#define Vector3Data   Vector3DoubleData
#define Vector3DataName   "Vector3DoubleData"

Functions

class tf::Vector3 tf::__attribute__ ((aligned(16)))
TFSIMD_FORCE_INLINE Vector3 absolute () const
 Return a vector will the absolute values of each element.
TFSIMD_FORCE_INLINE tfScalar angle (const Vector3 &v) const
 Return the angle between this and another vector.
TFSIMD_FORCE_INLINE int closestAxis () const
TFSIMD_FORCE_INLINE Vector3 cross (const Vector3 &v) const
 Return the cross product between this and another vector.
TFSIMD_FORCE_INLINE void deSerialize (const struct Vector3Data &dataIn)
TFSIMD_FORCE_INLINE void deSerializeDouble (const struct Vector3DoubleData &dataIn)
TFSIMD_FORCE_INLINE void deSerializeFloat (const struct Vector3FloatData &dataIn)
TFSIMD_FORCE_INLINE tfScalar distance (const Vector3 &v) const
 Return the distance between the ends of this and another vector This is symantically treating the vector like a point.
TFSIMD_FORCE_INLINE tfScalar distance2 (const Vector3 &v) const
 Return the distance squared between the ends of this and another vector This is symantically treating the vector like a point.
TFSIMD_FORCE_INLINE tfScalar dot (const Vector3 &v) const
 Return the dot product.
TFSIMD_FORCE_INLINE int furthestAxis () const
TFSIMD_FORCE_INLINE bool fuzzyZero () const
void getSkewSymmetricMatrix (Vector3 *v0, Vector3 *v1, Vector3 *v2) const
TFSIMD_FORCE_INLINE const
tfScalar
getX () const
 Return the x value.
TFSIMD_FORCE_INLINE const
tfScalar
getY () const
 Return the y value.
TFSIMD_FORCE_INLINE const
tfScalar
getZ () const
 Return the z value.
TFSIMD_FORCE_INLINE bool isZero () const
TFSIMD_FORCE_INLINE tfScalar length () const
 Return the length of the vector.
TFSIMD_FORCE_INLINE tfScalar length2 () const
 Return the length of the vector squared.
TFSIMD_FORCE_INLINE Vector3 tf::lerp (const Vector3 &v1, const Vector3 &v2, const tfScalar &t)
 Return the linear interpolation between two vectors.
TFSIMD_FORCE_INLINE Vector3 lerp (const Vector3 &v, const tfScalar &t) const
 Return the linear interpolation between this and another vector.
TFSIMD_FORCE_INLINE int maxAxis () const
 Return the axis with the largest value Note return values are 0,1,2 for x, y, or z.
TFSIMD_FORCE_INLINE int minAxis () const
 Return the axis with the smallest value Note return values are 0,1,2 for x, y, or z.
TFSIMD_FORCE_INLINE Vector3normalize ()
 Normalize this vector x^2 + y^2 + z^2 = 1.
TFSIMD_FORCE_INLINE Vector3 normalized () const
 Return a normalized version of this vector.
TFSIMD_FORCE_INLINE operator const tfScalar * () const
TFSIMD_FORCE_INLINE operator tfScalar * ()
 operator tfScalar*() replaces operator[], using implicit conversion. We added operator != and operator == to avoid pointer comparisons.
TFSIMD_FORCE_INLINE bool operator!= (const Vector3 &other) const
TFSIMD_FORCE_INLINE Vector3 tf::operator* (const Vector3 &v1, const Vector3 &v2)
 Return the elementwise product of two vectors.
TFSIMD_FORCE_INLINE Vector3 tf::operator* (const Vector3 &v, const tfScalar &s)
 Return the vector scaled by s.
TFSIMD_FORCE_INLINE Vector3 tf::operator* (const tfScalar &s, const Vector3 &v)
 Return the vector scaled by s.
TFSIMD_FORCE_INLINE Vector3operator*= (const tfScalar &s)
 Scale the vector.
TFSIMD_FORCE_INLINE Vector3operator*= (const Vector3 &v)
 Elementwise multiply this vector by the other.
TFSIMD_FORCE_INLINE Vector3 tf::operator+ (const Vector3 &v1, const Vector3 &v2)
 Return the sum of two vectors (Point symantics)
TFSIMD_FORCE_INLINE Vector3operator+= (const Vector3 &v)
 Add a vector to this one.
TFSIMD_FORCE_INLINE Vector3 tf::operator- (const Vector3 &v1, const Vector3 &v2)
 Return the difference between two vectors.
TFSIMD_FORCE_INLINE Vector3 tf::operator- (const Vector3 &v)
 Return the negative of the vector.
TFSIMD_FORCE_INLINE Vector3operator-= (const Vector3 &v)
 Sutfract a vector from this one.
TFSIMD_FORCE_INLINE Vector3 tf::operator/ (const Vector3 &v, const tfScalar &s)
 Return the vector inversely scaled by s.
TFSIMD_FORCE_INLINE Vector3 tf::operator/ (const Vector3 &v1, const Vector3 &v2)
 Return the vector inversely scaled by s.
TFSIMD_FORCE_INLINE Vector3operator/= (const tfScalar &s)
 Inversely scale the vector.
TFSIMD_FORCE_INLINE bool operator== (const Vector3 &other) const
TFSIMD_FORCE_INLINE Vector3 rotate (const Vector3 &wAxis, const tfScalar angle) const
 Rotate this vector.
TFSIMD_FORCE_INLINE void serialize (struct Vector3Data &dataOut) const
TFSIMD_FORCE_INLINE void serializeDouble (struct Vector3DoubleData &dataOut) const
TFSIMD_FORCE_INLINE void serializeFloat (struct Vector3FloatData &dataOut) const
TFSIMD_FORCE_INLINE void setInterpolate3 (const Vector3 &v0, const Vector3 &v1, tfScalar rt)
TFSIMD_FORCE_INLINE void setMax (const Vector3 &other)
 Set each element to the max of the current values and the values of another Vector3.
TFSIMD_FORCE_INLINE void setMin (const Vector3 &other)
 Set each element to the min of the current values and the values of another Vector3.
TFSIMD_FORCE_INLINE void setValue (const tfScalar &x, const tfScalar &y, const tfScalar &z)
TFSIMD_FORCE_INLINE void setW (tfScalar w)
 Set the w value.
TFSIMD_FORCE_INLINE void setX (tfScalar x)
 Set the x value.
TFSIMD_FORCE_INLINE void setY (tfScalar y)
 Set the y value.
TFSIMD_FORCE_INLINE void setZ (tfScalar z)
 Set the z value.
void setZero ()
TFSIMD_FORCE_INLINE tfScalar tf::tfAngle (const Vector3 &v1, const Vector3 &v2)
 Return the angle between two vectors.
TFSIMD_FORCE_INLINE Vector3 tf::tfCross (const Vector3 &v1, const Vector3 &v2)
 Return the cross product of two vectors.
TFSIMD_FORCE_INLINE tfScalar tf::tfDistance (const Vector3 &v1, const Vector3 &v2)
 Return the distance between two vectors.
TFSIMD_FORCE_INLINE tfScalar tf::tfDistance2 (const Vector3 &v1, const Vector3 &v2)
 Return the distance squared between two vectors.
TFSIMD_FORCE_INLINE tfScalar tf::tfDot (const Vector3 &v1, const Vector3 &v2)
 Return the dot product between two vectors.
TFSIMD_FORCE_INLINE void tf::tfPlaneSpace1 (const Vector3 &n, Vector3 &p, Vector3 &q)
TFSIMD_FORCE_INLINE void tf::tfSwapScalarEndian (const tfScalar &sourceVal, tfScalar &destVal)
 tfSwapVector3Endian swaps vector endianness, useful for network and cross-platform serialization
TFSIMD_FORCE_INLINE void tf::tfSwapVector3Endian (const Vector3 &sourceVec, Vector3 &destVec)
 tfSwapVector3Endian swaps vector endianness, useful for network and cross-platform serialization
TFSIMD_FORCE_INLINE tfScalar tf::tfTriple (const Vector3 &v1, const Vector3 &v2, const Vector3 &v3)
TFSIMD_FORCE_INLINE void tf::tfUnSwapVector3Endian (Vector3 &vector)
 tfUnSwapVector3Endian swaps vector endianness, useful for network and cross-platform serialization
TFSIMD_FORCE_INLINE tfScalar triple (const Vector3 &v1, const Vector3 &v2) const
TFSIMD_FORCE_INLINE Vector3 ()
 No initialization constructor.
TFSIMD_FORCE_INLINE Vector3 (const tfScalar &x, const tfScalar &y, const tfScalar &z)
 Constructor from scalars.
TFSIMD_FORCE_INLINE const
tfScalar
w () const
 Return the w value.
TFSIMD_FORCE_INLINE const
tfScalar
x () const
 Return the x value.
TFSIMD_FORCE_INLINE const
tfScalar
y () const
 Return the y value.
TFSIMD_FORCE_INLINE const
tfScalar
z () const
 Return the z value.

Variables

tf::tfVector4 tf::__attribute__
tfScalar m_floats [4]

Define Documentation

#define Vector3Data   Vector3DoubleData

Definition at line 26 of file Vector3.h.

#define Vector3DataName   "Vector3DoubleData"

Definition at line 27 of file Vector3.h.


Function Documentation

Return a vector will the absolute values of each element.

Definition at line 483 of file Vector3.h.

Return the angle between this and another vector.

Parameters:
vThe other vector

Definition at line 476 of file Vector3.h.

Definition at line 526 of file Vector3.h.

Return the cross product between this and another vector.

Parameters:
vThe other vector

Definition at line 492 of file Vector3.h.

TFSIMD_FORCE_INLINE void __attribute__::deSerializeDouble ( const struct Vector3DoubleData &  dataIn)
TFSIMD_FORCE_INLINE void __attribute__::deSerializeFloat ( const struct Vector3FloatData &  dataIn)

Return the distance between the ends of this and another vector This is symantically treating the vector like a point.

Return the distance squared between the ends of this and another vector This is symantically treating the vector like a point.

Return the dot product.

Parameters:
vThe other vector in the dot product

Definition at line 434 of file Vector3.h.

Definition at line 521 of file Vector3.h.

Definition at line 644 of file Vector3.h.

void __attribute__::getSkewSymmetricMatrix ( Vector3 v0,
Vector3 v1,
Vector3 v2 
) const

Definition at line 627 of file Vector3.h.

Return the x value.

Definition at line 560 of file Vector3.h.

Return the y value.

Definition at line 562 of file Vector3.h.

Return the z value.

Definition at line 564 of file Vector3.h.

Definition at line 639 of file Vector3.h.

Return the length of the vector.

Definition at line 446 of file Vector3.h.

Return the length of the vector squared.

Definition at line 440 of file Vector3.h.

TFSIMD_FORCE_INLINE Vector3 __attribute__::lerp ( const Vector3 v,
const tfScalar t 
) const

Return the linear interpolation between this and another vector.

Parameters:
vThe other vector
tThe ration of this to v (t = 0 => return this, t=1 => return other)

Definition at line 544 of file Vector3.h.

Return the axis with the largest value Note return values are 0,1,2 for x, y, or z.

Definition at line 516 of file Vector3.h.

Return the axis with the smallest value Note return values are 0,1,2 for x, y, or z.

Definition at line 509 of file Vector3.h.

Normalize this vector x^2 + y^2 + z^2 = 1.

Definition at line 461 of file Vector3.h.

Return a normalized version of this vector.

TFSIMD_FORCE_INLINE __attribute__::operator const tfScalar * ( ) const

Definition at line 586 of file Vector3.h.

TFSIMD_FORCE_INLINE __attribute__::operator tfScalar * ( )

operator tfScalar*() replaces operator[], using implicit conversion. We added operator != and operator == to avoid pointer comparisons.

Definition at line 585 of file Vector3.h.

TFSIMD_FORCE_INLINE bool __attribute__::operator!= ( const Vector3 other) const

Definition at line 593 of file Vector3.h.

TFSIMD_FORCE_INLINE Vector3& __attribute__::operator*= ( const tfScalar s)

Scale the vector.

Parameters:
sScale factor

Definition at line 418 of file Vector3.h.

TFSIMD_FORCE_INLINE Vector3& __attribute__::operator*= ( const Vector3 v)

Elementwise multiply this vector by the other.

Parameters:
vThe other vector

Definition at line 553 of file Vector3.h.

TFSIMD_FORCE_INLINE Vector3& __attribute__::operator+= ( const Vector3 v)

Add a vector to this one.

Parameters:
Thevector to add to this one

Definition at line 401 of file Vector3.h.

TFSIMD_FORCE_INLINE Vector3& __attribute__::operator-= ( const Vector3 v)

Sutfract a vector from this one.

Parameters:
Thevector to sutfract

Definition at line 411 of file Vector3.h.

TFSIMD_FORCE_INLINE Vector3& __attribute__::operator/= ( const tfScalar s)

Inversely scale the vector.

Parameters:
sScale factor to divide by

Definition at line 426 of file Vector3.h.

TFSIMD_FORCE_INLINE bool __attribute__::operator== ( const Vector3 other) const

Definition at line 588 of file Vector3.h.

TFSIMD_FORCE_INLINE Vector3 __attribute__::rotate ( const Vector3 wAxis,
const tfScalar  angle 
) const

Rotate this vector.

Parameters:
wAxisThe axis to rotate about
angleThe angle to rotate by
TFSIMD_FORCE_INLINE void __attribute__::serialize ( struct Vector3Data dataOut) const
TFSIMD_FORCE_INLINE void __attribute__::serializeDouble ( struct Vector3DoubleData &  dataOut) const
TFSIMD_FORCE_INLINE void __attribute__::serializeFloat ( struct Vector3FloatData &  dataOut) const
TFSIMD_FORCE_INLINE void __attribute__::setInterpolate3 ( const Vector3 v0,
const Vector3 v1,
tfScalar  rt 
)

Definition at line 531 of file Vector3.h.

Set each element to the max of the current values and the values of another Vector3.

Parameters:
otherThe other Vector3 to compare with

Definition at line 601 of file Vector3.h.

Set each element to the min of the current values and the values of another Vector3.

Parameters:
otherThe other Vector3 to compare with

Definition at line 611 of file Vector3.h.

TFSIMD_FORCE_INLINE void __attribute__::setValue ( const tfScalar x,
const tfScalar y,
const tfScalar z 
)

Definition at line 619 of file Vector3.h.

Set the w value.

Definition at line 572 of file Vector3.h.

Set the x value.

Definition at line 566 of file Vector3.h.

Set the y value.

Definition at line 568 of file Vector3.h.

Set the z value.

Definition at line 570 of file Vector3.h.

Definition at line 634 of file Vector3.h.

TFSIMD_FORCE_INLINE tfScalar __attribute__::triple ( const Vector3 v1,
const Vector3 v2 
) const

Definition at line 500 of file Vector3.h.

No initialization constructor.

Definition at line 383 of file Vector3.h.

TFSIMD_FORCE_INLINE __attribute__::Vector3 ( const tfScalar x,
const tfScalar y,
const tfScalar z 
)

Constructor from scalars.

Parameters:
xX value
yY value
zZ value

Definition at line 391 of file Vector3.h.

Return the w value.

Definition at line 580 of file Vector3.h.

Return the x value.

Definition at line 574 of file Vector3.h.

Return the y value.

Definition at line 576 of file Vector3.h.

Return the z value.

Definition at line 578 of file Vector3.h.


Variable Documentation

Definition at line 376 of file Vector3.h.



tf
Author(s): Tully Foote, Eitan Marder-Eppstein, Wim Meeussen
autogenerated on Thu Jun 6 2019 18:45:32