Bullet Collision Detection & Physics Library
Public Member Functions | Public Attributes | List of all members
btVector3 Class Reference

btVector3 can be used to represent 3D points and vectors. More...

#include <btVector3.h>

Inheritance diagram for btVector3:
Inheritance graph
[legend]

Public Member Functions

 BT_DECLARE_ALIGNED_ALLOCATOR ()
 
 btVector3 ()
 No initialization constructor. More...
 
 btVector3 (const btScalar &_x, const btScalar &_y, const btScalar &_z)
 Constructor from scalars. More...
 
btVector3operator+= (const btVector3 &v)
 Add a vector to this one. More...
 
btVector3operator-= (const btVector3 &v)
 Subtract a vector from this one. More...
 
btVector3operator*= (const btScalar &s)
 Scale the vector. More...
 
btVector3operator/= (const btScalar &s)
 Inversely scale the vector. More...
 
btScalar dot (const btVector3 &v) const
 Return the dot product. More...
 
btScalar length2 () const
 Return the length of the vector squared. More...
 
btScalar length () const
 Return the length of the vector. More...
 
btScalar distance2 (const btVector3 &v) const
 Return the distance squared between the ends of this and another vector This is symantically treating the vector like a point. More...
 
btScalar distance (const btVector3 &v) const
 Return the distance between the ends of this and another vector This is symantically treating the vector like a point. More...
 
btVector3safeNormalize ()
 
btVector3normalize ()
 Normalize this vector x^2 + y^2 + z^2 = 1. More...
 
btVector3 normalized () const
 Return a normalized version of this vector. More...
 
btVector3 rotate (const btVector3 &wAxis, const btScalar angle) const
 Return a rotated version of this vector. More...
 
btScalar angle (const btVector3 &v) const
 Return the angle between this and another vector. More...
 
btVector3 absolute () const
 Return a vector will the absolute values of each element. More...
 
btVector3 cross (const btVector3 &v) const
 Return the cross product between this and another vector. More...
 
btScalar triple (const btVector3 &v1, const btVector3 &v2) const
 
int minAxis () const
 Return the axis with the smallest value Note return values are 0,1,2 for x, y, or z. More...
 
int maxAxis () const
 Return the axis with the largest value Note return values are 0,1,2 for x, y, or z. More...
 
int furthestAxis () const
 
int closestAxis () const
 
void setInterpolate3 (const btVector3 &v0, const btVector3 &v1, btScalar rt)
 
btVector3 lerp (const btVector3 &v, const btScalar &t) const
 Return the linear interpolation between this and another vector. More...
 
btVector3operator*= (const btVector3 &v)
 Elementwise multiply this vector by the other. More...
 
const btScalargetX () const
 Return the x value. More...
 
const btScalargetY () const
 Return the y value. More...
 
const btScalargetZ () const
 Return the z value. More...
 
void setX (btScalar _x)
 Set the x value. More...
 
void setY (btScalar _y)
 Set the y value. More...
 
void setZ (btScalar _z)
 Set the z value. More...
 
void setW (btScalar _w)
 Set the w value. More...
 
const btScalarx () const
 Return the x value. More...
 
const btScalary () const
 Return the y value. More...
 
const btScalarz () const
 Return the z value. More...
 
const btScalarw () const
 Return the w value. More...
 
 operator btScalar * ()
 operator btScalar*() replaces operator[], using implicit conversion. We added operator != and operator == to avoid pointer comparisons. More...
 
 operator const btScalar * () const
 
bool operator== (const btVector3 &other) const
 
bool operator!= (const btVector3 &other) const
 
void setMax (const btVector3 &other)
 Set each element to the max of the current values and the values of another btVector3. More...
 
void setMin (const btVector3 &other)
 Set each element to the min of the current values and the values of another btVector3. More...
 
void setValue (const btScalar &_x, const btScalar &_y, const btScalar &_z)
 
void getSkewSymmetricMatrix (btVector3 *v0, btVector3 *v1, btVector3 *v2) const
 
void setZero ()
 
bool isZero () const
 
bool fuzzyZero () const
 
void serialize (struct btVector3Data &dataOut) const
 
void deSerialize (const struct btVector3Data &dataIn)
 
void serializeFloat (struct btVector3FloatData &dataOut) const
 
void deSerializeFloat (const struct btVector3FloatData &dataIn)
 
void serializeDouble (struct btVector3DoubleData &dataOut) const
 
void deSerializeDouble (const struct btVector3DoubleData &dataIn)
 
long maxDot (const btVector3 *array, long array_count, btScalar &dotOut) const
 returns index of maximum dot product between this and vectors in array[] More...
 
long minDot (const btVector3 *array, long array_count, btScalar &dotOut) const
 returns index of minimum dot product between this and vectors in array[] More...
 
btVector3 dot3 (const btVector3 &v0, const btVector3 &v1, const btVector3 &v2) const
 

Public Attributes

btScalar m_floats [4]
 

Detailed Description

btVector3 can be used to represent 3D points and vectors.

It has an un-used w component to suit 16-byte alignment when btVector3 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

Definition at line 78 of file btVector3.h.

Constructor & Destructor Documentation

btVector3::btVector3 ( )
inline

No initialization constructor.

Definition at line 114 of file btVector3.h.

btVector3::btVector3 ( const btScalar _x,
const btScalar _y,
const btScalar _z 
)
inline

Constructor from scalars.

Parameters
xX value
yY value
zZ value

Definition at line 126 of file btVector3.h.

Member Function Documentation

btVector3 btVector3::absolute ( ) const
inline

Return a vector will the absolute values of each element.

Definition at line 346 of file btVector3.h.

btScalar btVector3::angle ( const btVector3 v) const
inline

Return the angle between this and another vector.

Parameters
vThe other vector

Definition at line 338 of file btVector3.h.

btVector3::BT_DECLARE_ALIGNED_ALLOCATOR ( )
int btVector3::closestAxis ( ) const
inline

Definition at line 471 of file btVector3.h.

btVector3 btVector3::cross ( const btVector3 v) const
inline

Return the cross product between this and another vector.

Parameters
vThe other vector

Definition at line 363 of file btVector3.h.

void btVector3::deSerialize ( const struct btVector3Data dataIn)
inline

Definition at line 1336 of file btVector3.h.

void btVector3::deSerializeDouble ( const struct btVector3DoubleData dataIn)
inline

Definition at line 1322 of file btVector3.h.

void btVector3::deSerializeFloat ( const struct btVector3FloatData dataIn)
inline

Definition at line 1308 of file btVector3.h.

btScalar btVector3::distance ( const btVector3 v) const
inline

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

Definition at line 932 of file btVector3.h.

btScalar btVector3::distance2 ( const btVector3 v) const
inline

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

Definition at line 927 of file btVector3.h.

btScalar btVector3::dot ( const btVector3 v) const
inline

Return the dot product.

Parameters
vThe other vector in the dot product

Definition at line 230 of file btVector3.h.

btVector3 btVector3::dot3 ( const btVector3 v0,
const btVector3 v1,
const btVector3 v2 
) const
inline

Definition at line 704 of file btVector3.h.

int btVector3::furthestAxis ( ) const
inline

Definition at line 466 of file btVector3.h.

bool btVector3::fuzzyZero ( ) const
inline

Definition at line 674 of file btVector3.h.

void btVector3::getSkewSymmetricMatrix ( btVector3 v0,
btVector3 v1,
btVector3 v2 
) const
inline

Definition at line 634 of file btVector3.h.

const btScalar& btVector3::getX ( ) const
inline

Return the x value.

Definition at line 547 of file btVector3.h.

const btScalar& btVector3::getY ( ) const
inline

Return the y value.

Definition at line 549 of file btVector3.h.

const btScalar& btVector3::getZ ( ) const
inline

Return the z value.

Definition at line 551 of file btVector3.h.

bool btVector3::isZero ( ) const
inline

Definition at line 669 of file btVector3.h.

btScalar btVector3::length ( ) const
inline

Return the length of the vector.

Definition at line 258 of file btVector3.h.

btScalar btVector3::length2 ( ) const
inline

Return the length of the vector squared.

Definition at line 252 of file btVector3.h.

btVector3 btVector3::lerp ( const btVector3 v,
const btScalar t 
) const
inline

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 506 of file btVector3.h.

int btVector3::maxAxis ( ) const
inline

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

Definition at line 461 of file btVector3.h.

long btVector3::maxDot ( const btVector3 array,
long  array_count,
btScalar dotOut 
) const
inline

returns index of maximum dot product between this and vectors in array[]

Parameters
arrayThe other vectors
array_countThe number of other vectors
dotOutThe maximum dot product

Definition at line 990 of file btVector3.h.

int btVector3::minAxis ( ) const
inline

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

Definition at line 454 of file btVector3.h.

long btVector3::minDot ( const btVector3 array,
long  array_count,
btScalar dotOut 
) const
inline

returns index of minimum dot product between this and vectors in array[]

Parameters
arrayThe other vectors
array_countThe number of other vectors
dotOutThe minimum dot product

Definition at line 1025 of file btVector3.h.

btVector3& btVector3::normalize ( )
inline

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

Definition at line 286 of file btVector3.h.

btVector3 btVector3::normalized ( ) const
inline

Return a normalized version of this vector.

Definition at line 937 of file btVector3.h.

btVector3::operator btScalar * ( )
inline

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

Definition at line 572 of file btVector3.h.

btVector3::operator const btScalar * ( ) const
inline

Definition at line 573 of file btVector3.h.

bool btVector3::operator!= ( const btVector3 other) const
inline

Definition at line 587 of file btVector3.h.

btVector3& btVector3::operator*= ( const btScalar s)
inline

Scale the vector.

Parameters
sScale factor

Definition at line 192 of file btVector3.h.

btVector3& btVector3::operator*= ( const btVector3 v)
inline

Elementwise multiply this vector by the other.

Parameters
vThe other vector

Definition at line 532 of file btVector3.h.

btVector3& btVector3::operator+= ( const btVector3 v)
inline

Add a vector to this one.

Parameters
Thevector to add to this one

Definition at line 159 of file btVector3.h.

btVector3& btVector3::operator-= ( const btVector3 v)
inline

Subtract a vector from this one.

Parameters
Thevector to subtract

Definition at line 176 of file btVector3.h.

btVector3& btVector3::operator/= ( const btScalar s)
inline

Inversely scale the vector.

Parameters
sScale factor to divide by

Definition at line 210 of file btVector3.h.

bool btVector3::operator== ( const btVector3 other) const
inline

Definition at line 575 of file btVector3.h.

btVector3 btVector3::rotate ( const btVector3 wAxis,
const btScalar  angle 
) const
inline

Return a rotated version of this vector.

Parameters
wAxisThe axis to rotate about
angleThe angle to rotate by

Definition at line 948 of file btVector3.h.

btVector3& btVector3::safeNormalize ( )
inline

Definition at line 271 of file btVector3.h.

void btVector3::serialize ( struct btVector3Data dataOut) const
inline

could also do a memcpy, check if it is worth it

Definition at line 1329 of file btVector3.h.

void btVector3::serializeDouble ( struct btVector3DoubleData dataOut) const
inline

could also do a memcpy, check if it is worth it

Definition at line 1315 of file btVector3.h.

void btVector3::serializeFloat ( struct btVector3FloatData dataOut) const
inline

could also do a memcpy, check if it is worth it

Definition at line 1301 of file btVector3.h.

void btVector3::setInterpolate3 ( const btVector3 v0,
const btVector3 v1,
btScalar  rt 
)
inline

Definition at line 477 of file btVector3.h.

void btVector3::setMax ( const btVector3 other)
inline

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

Parameters
otherThe other btVector3 to compare with

Definition at line 595 of file btVector3.h.

void btVector3::setMin ( const btVector3 other)
inline

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

Parameters
otherThe other btVector3 to compare with

Definition at line 612 of file btVector3.h.

void btVector3::setValue ( const btScalar _x,
const btScalar _y,
const btScalar _z 
)
inline

Definition at line 626 of file btVector3.h.

void btVector3::setW ( btScalar  _w)
inline

Set the w value.

Definition at line 559 of file btVector3.h.

void btVector3::setX ( btScalar  _x)
inline

Set the x value.

Definition at line 553 of file btVector3.h.

void btVector3::setY ( btScalar  _y)
inline

Set the y value.

Definition at line 555 of file btVector3.h.

void btVector3::setZ ( btScalar  _z)
inline

Set the z value.

Definition at line 557 of file btVector3.h.

void btVector3::setZero ( )
inline

Definition at line 657 of file btVector3.h.

btScalar btVector3::triple ( const btVector3 v1,
const btVector3 v2 
) const
inline

Definition at line 402 of file btVector3.h.

const btScalar& btVector3::w ( ) const
inline

Return the w value.

Definition at line 567 of file btVector3.h.

const btScalar& btVector3::x ( ) const
inline

Return the x value.

Definition at line 561 of file btVector3.h.

const btScalar& btVector3::y ( ) const
inline

Return the y value.

Definition at line 563 of file btVector3.h.

const btScalar& btVector3::z ( ) const
inline

Return the z value.

Definition at line 565 of file btVector3.h.

Member Data Documentation

btScalar btVector3::m_floats[4]

Definition at line 107 of file btVector3.h.


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