csVector3 Class Reference
[Geometry utilities]
A 3D vector.
More...
#include <csgeom/vector3.h>
Public Member Functions | |
void | Cross (const csVector3 &px, const csVector3 &py) |
Take cross product of two vectors and put result in this vector. | |
csVector3 (const csDVector3 &) | |
Conversion from double precision vector to single. | |
csVector3 (const csVector3 &v) | |
Copy Constructor. | |
csVector3 (float ix, float iy, float iz=0) | |
Make a new vector and initialize with the given values. | |
csVector3 (float m) | |
Make a new initialized vector. | |
csVector3 () | |
Make a new vector. | |
csString | Description () const |
Return a textual representation of the vector in the form "x,y,z". | |
size_t | DominantAxis () const |
Return index of the largest axis. | |
void | Get (float *v) |
Get the value of this vector. | |
bool | IsZero (float precision=SMALL_EPSILON) const |
Query if the vector is zero. | |
float | Norm () const |
Returns the norm of this vector. | |
void | Normalize () |
Scale this vector to length = 1.0;. | |
csVector3 & | operator *= (float f) |
Multiply this vector by a scalar. | |
csVector3 | operator+ () const |
Unary + operator. | |
csVector3 & | operator+= (const csVector3 &v) |
Add another vector to this vector. | |
csVector3 | operator- () const |
Unary - operator. | |
csVector3 & | operator-= (const csVector3 &v) |
Subtract another vector from this vector. | |
csVector3 & | operator/= (float f) |
Divide this vector by a scalar. | |
float & | operator[] (size_t n) |
Returns n-th component of the vector. | |
float | operator[] (size_t n) const |
Returns n-th component of the vector. | |
void | Set (float v) |
Set the value of this vector so that all components are the same. | |
void | Set (float const *v) |
Set the value of this vector. | |
void | Set (csVector3 const &v) |
Set the value of this vector. | |
void | Set (float sx, float sy, float sz) |
Set the value of this vector. | |
float | SquaredNorm () const |
Return the squared norm (magnitude) of this vector. | |
csVector3 | Unit () const |
Returns the unit vector in the direction of this vector. | |
csVector3 | UnitAxisClamped () const |
Return a version of the vector clamped to closest unit vector (+-xyz). | |
Static Public Member Functions | |
static float | Norm (const csVector3 &v) |
Returns the norm (magnitude) of a vector. | |
static csVector3 | Unit (const csVector3 &v) |
Normalizes a vector to a unit vector. | |
Friends | |
csVector3 | operator * (int f, const csVector3 &v) |
Multiply a vector and a scalar int. | |
csVector3 | operator * (const csVector3 &v, int f) |
Multiply a vector and a scalar int. | |
csDVector3 | operator * (double f, const csVector3 &v) |
Multiply a vector and a scalar double. Upgrade v to DVector. | |
csDVector3 | operator * (const csVector3 &v, double f) |
Multiply a vector and a scalar double. Upgrade v to DVector. | |
csVector3 | operator * (float f, const csVector3 &v) |
Multiply a vector and a scalar. | |
csVector3 | operator * (const csVector3 &v, float f) |
Multiply a vector and a scalar. | |
float | operator * (const csVector3 &v1, const csVector3 &v2) |
Take the dot product of two vectors. | |
bool | operator!= (const csVector3 &v1, const csVector3 &v2) |
Check if two vectors are not equal. | |
csVector3 | operator% (const csVector3 &v1, const csVector3 &v2) |
Take the cross product of two vectors. | |
csDVector3 | operator+ (const csVector3 &v1, const csDVector3 &v2) |
Add two vectors of differing type, raise the csVector3 to DVector3. | |
csDVector3 | operator+ (const csDVector3 &v1, const csVector3 &v2) |
Add two vectors of differing type, raise the csVector3 to DVector3. | |
csVector3 | operator+ (const csVector3 &v1, const csVector3 &v2) |
Add two vectors. | |
csDVector3 | operator- (const csDVector3 &v1, const csVector3 &v2) |
Subtract two vectors of differing type, cast to double. | |
csDVector3 | operator- (const csVector3 &v1, const csDVector3 &v2) |
Subtract two vectors of differing type, cast to double. | |
csVector3 | operator- (const csVector3 &v1, const csVector3 &v2) |
Subtract two vectors. | |
csVector3 | operator/ (const csVector3 &v, int f) |
Divide a vector by a scalar int. | |
csDVector3 | operator/ (const csVector3 &v, double f) |
Divide a vector by a scalar double. Upgrade v to DVector. | |
csVector3 | operator/ (const csVector3 &v, float f) |
Divide a vector by a scalar. | |
bool | operator< (const csVector3 &v, float f) |
Test if each component of a vector is less than a small epsilon value. | |
csVector3 | operator<< (const csVector3 &v1, const csVector3 &v2) |
Project one vector onto another. | |
bool | operator== (const csVector3 &v1, const csVector3 &v2) |
Check if two vectors are equal. | |
bool | operator> (float f, const csVector3 &v) |
Test if each component of a vector is less than a small epsilon value. | |
csVector3 | operator>> (const csVector3 &v1, const csVector3 &v2) |
Project one vector onto another. |
Detailed Description
A 3D vector.
Definition at line 56 of file vector3.h.
Constructor & Destructor Documentation
csVector3::csVector3 | ( | ) | [inline] |
csVector3::csVector3 | ( | float | m | ) | [inline] |
csVector3::csVector3 | ( | float | ix, | |
float | iy, | |||
float | iz = 0 | |||
) | [inline] |
csVector3::csVector3 | ( | const csVector3 & | v | ) | [inline] |
csVector3::csVector3 | ( | const csDVector3 & | ) |
Conversion from double precision vector to single.
Member Function Documentation
csString csVector3::Description | ( | ) | const |
Return a textual representation of the vector in the form "x,y,z".
size_t csVector3::DominantAxis | ( | ) | const [inline] |
void csVector3::Get | ( | float * | v | ) | [inline] |
bool csVector3::IsZero | ( | float | precision = SMALL_EPSILON |
) | const [inline] |
static float csVector3::Norm | ( | const csVector3 & | v | ) | [inline, static] |
float csVector3::Norm | ( | ) | const |
Returns the norm of this vector.
Referenced by csMath3::DoubleArea3(), Norm(), and CS::Math::Ode45::Step().
void csVector3::Normalize | ( | ) |
Scale this vector to length = 1.0;.
csVector3& csVector3::operator *= | ( | float | f | ) | [inline] |
csVector3 csVector3::operator+ | ( | ) | const [inline] |
csVector3 csVector3::operator- | ( | ) | const [inline] |
csVector3& csVector3::operator/= | ( | float | f | ) | [inline] |
float& csVector3::operator[] | ( | size_t | n | ) | [inline] |
float csVector3::operator[] | ( | size_t | n | ) | const [inline] |
void csVector3::Set | ( | float | v | ) | [inline] |
void csVector3::Set | ( | float const * | v | ) | [inline] |
void csVector3::Set | ( | csVector3 const & | v | ) | [inline] |
void csVector3::Set | ( | float | sx, | |
float | sy, | |||
float | sz | |||
) | [inline] |
Set the value of this vector.
Definition at line 258 of file vector3.h.
Referenced by csQuaternion::GetAxisAngle(), and csShaderVariable::GetValue().
float csVector3::SquaredNorm | ( | ) | const [inline] |
Return the squared norm (magnitude) of this vector.
Definition at line 276 of file vector3.h.
Referenced by csRandomVectorGen::Get(), csSpotLightProc< AttenuationProc >::PerVertex::PerVertex(), csDirectionalLightProc< AttenuationProc >::PerVertex::PerVertex(), and csPointLightProc< AttenuationProc >::PerVertex::PerVertex().
csVector3 csVector3::Unit | ( | ) | const [inline] |
Returns the unit vector in the direction of this vector.
Attempting to normalize a zero-vector will result in a divide by zero error. This is as it should be... fix the calling code.
Definition at line 284 of file vector3.h.
Referenced by csQuaternion::GetAxisAngle(), csSpotLightProc< AttenuationProc >::PerVertex::PerVertex(), and Unit().
csVector3 csVector3::UnitAxisClamped | ( | ) | const [inline] |
Friends And Related Function Documentation
csDVector3 operator * | ( | double | f, | |
const csVector3 & | v | |||
) | [friend] |
csDVector3 operator * | ( | const csVector3 & | v, | |
double | f | |||
) | [friend] |
csDVector3 operator+ | ( | const csVector3 & | v1, | |
const csDVector3 & | v2 | |||
) | [friend] |
csDVector3 operator+ | ( | const csDVector3 & | v1, | |
const csVector3 & | v2 | |||
) | [friend] |
csDVector3 operator- | ( | const csDVector3 & | v1, | |
const csVector3 & | v2 | |||
) | [friend] |
csDVector3 operator- | ( | const csVector3 & | v1, | |
const csDVector3 & | v2 | |||
) | [friend] |
csDVector3 operator/ | ( | const csVector3 & | v, | |
double | f | |||
) | [friend] |
bool operator< | ( | const csVector3 & | v, | |
float | f | |||
) | [friend] |
bool operator> | ( | float | f, | |
const csVector3 & | v | |||
) | [friend] |
Member Data Documentation
float csVector3::m[3] |
float csVector3::x |
The X component of the vector.
Definition at line 67 of file vector3.h.
Referenced by csPlane3::A(), csBox3::AddBoundingBox(), csBox3::AddBoundingVertex(), csBox3::AddBoundingVertexSmart(), csBox3::AddBoundingVertexSmartTest(), csBox3::AddBoundingVertexTest(), csPoly3D::AddVertex(), csVector3Array::AddVertexSmart(), csPlane3::Classify(), csBox3::Contains(), Cross(), csLinearAttenuation::csLinearAttenuation(), csMath3::Direction3(), csRandomVectorGen::Get(), csPath::GetForwardVector(), csPath::GetInterpolatedForward(), csPath::GetInterpolatedPosition(), csPath::GetInterpolatedUp(), csPath::GetPositionVector(), csPath::GetUpVector(), csBox3::In(), makeGLMatrix(), operator+=(), operator-=(), csVector4::operator=(), csBox3::Overlap(), Set(), csPath::SetForwardVector(), csMath3::SetMinMax(), csPath::SetPositionVector(), CS::PluginCommon::SoftShader::InterpolateEdgePersp::Setup(), csPath::SetUpVector(), csShaderVariable::SetValue(), and csMath3::WhichSide3D().
float csVector3::y |
The Y component of the vector.
Definition at line 69 of file vector3.h.
Referenced by csBox3::AddBoundingBox(), csBox3::AddBoundingVertex(), csBox3::AddBoundingVertexSmart(), csBox3::AddBoundingVertexSmartTest(), csBox3::AddBoundingVertexTest(), csPoly3D::AddVertex(), csVector3Array::AddVertexSmart(), csPlane3::Classify(), csBox3::Contains(), Cross(), csMath3::Direction3(), csRandomVectorGen::Get(), csPath::GetForwardVector(), csPath::GetInterpolatedForward(), csPath::GetInterpolatedPosition(), csPath::GetInterpolatedUp(), csPath::GetPositionVector(), csPath::GetUpVector(), csBox3::In(), makeGLMatrix(), operator+=(), operator-=(), csVector4::operator=(), csBox3::Overlap(), Set(), csPath::SetForwardVector(), csMath3::SetMinMax(), csPath::SetPositionVector(), CS::PluginCommon::SoftShader::InterpolateEdgePersp::Setup(), csPath::SetUpVector(), csShaderVariable::SetValue(), and csMath3::WhichSide3D().
float csVector3::z |
The Z component of the vector.
Definition at line 71 of file vector3.h.
Referenced by csBox3::AddBoundingBox(), csBox3::AddBoundingVertex(), csBox3::AddBoundingVertexSmart(), csBox3::AddBoundingVertexSmartTest(), csBox3::AddBoundingVertexTest(), csPoly3D::AddVertex(), csVector3Array::AddVertexSmart(), csPlane3::Classify(), csBox3::Contains(), Cross(), csMath3::Direction3(), csRandomVectorGen::Get(), csPath::GetForwardVector(), csPath::GetInterpolatedForward(), csPath::GetInterpolatedPosition(), csPath::GetInterpolatedUp(), csPath::GetPositionVector(), csPath::GetUpVector(), csBox3::In(), makeGLMatrix(), operator+=(), operator-=(), csVector4::operator=(), csBox3::Overlap(), Set(), csPath::SetForwardVector(), csMath3::SetMinMax(), csPath::SetPositionVector(), CS::PluginCommon::SoftShader::InterpolateEdgePersp::Setup(), csPath::SetUpVector(), csShaderVariable::SetValue(), and csMath3::WhichSide3D().
The documentation for this class was generated from the following file:
- csgeom/vector3.h
Generated for Crystal Space by doxygen 1.4.7