This is used to represent a point in space, or a vector through space. More...
#include <vector3.h>
Public Member Functions | |
Vector3 () | |
Default Constructor. More... | |
Vector3 (const Real &X, const Real &Y, const Real &Z) | |
Real value Constructor. More... | |
Vector3 (const Ogre::Vector3 &Vec) | |
Ogre Value Constructor. More... | |
Vector3 (const btVector3 &Vec) | |
Bullet Value Constructor. More... | |
Vector3 (const Mezzanine::Vector3 &Vec) | |
Copy Constructor. More... | |
Vector3 (XML::Node OneNode) | |
Deserializing constructor. More... | |
Vector3 & | Ceil (const Vector3 &Other) |
Sets each member of this Vector3 to the higher value between the two vector3s. More... | |
Vector3 | CrossProduct (const Vector3 &Vec) const |
This is used to calculate the crossproduct of this and another vector. More... | |
Real | Distance (const Vector3 &OtherVec) const |
Gets the distance between this and another vector. More... | |
Real | DotProduct (const Vector3 &Vec) const |
This is used to calculate the dotproduct of this and another vector. More... | |
void | ExtractBulletVector3 (const btVector3 &temp) |
Copies an existing Bullet vector3. More... | |
void | ExtractOgreVector3 (const Ogre::Vector3 &temp) |
Copies an existing Ogre vector3. More... | |
Vector3 & | Floor (const Vector3 &Other) |
Sets each member of this Vector3 to the lower value between the two vector3s. More... | |
Real | GetAxisValue (const StandardAxis &Axis) const |
Get The value associate with a certain Axis. More... | |
Real | GetAxisValue (const Whole &Axis) const |
Get The value associate with a certain Axis. More... | |
Real & | GetAxisValue (const StandardAxis &Axis) |
Get The value associate with a certain Axis in such a way that it can readily be assigned in this Vector3. More... | |
Real & | GetAxisValue (const Whole &Axis) |
Get The value associate with a certain Axis in such a way that it can readily be assigned in this Vector3. More... | |
btVector3 | GetBulletVector3 () const |
Gets a Bullet vector3. More... | |
Vector3 | GetDirection (const Vector3 &Destination) const |
This will get the direction between two points. More... | |
Vector3 | GetNormal () const |
This returns the normal for this relative to the origin. More... | |
Ogre::Vector3 | GetOgreVector3 () const |
Gets a Ogre vector3. More... | |
Quaternion | GetRotationToAxis (const Vector3 &Axis, const Vector3 &FallBackAxis=Vector3()) const |
Gets the rotation needed to rotate this vector as an axis to another axis. More... | |
Vector3 | Inverse () |
This will inverse the reals in the vector. More... | |
StandardAxis | IsStandardUnitAxis () const |
Get a Unit Vector along the given Axis. More... | |
bool | IsZeroLength () const |
Checks to see if the length of this vector is zero. More... | |
Real | Length () const |
Gets the length of this vector. More... | |
Vector3 & | Normalize () |
This will change this point into it's own normal relative to the origin. More... | |
bool | operator!= (const Mezzanine::Vector3 &Vec) const |
Inequality Comparison Operator. More... | |
bool | operator!= (const btVector3 &Vec) const |
Inequality Comparison Operator. More... | |
bool | operator!= (const Ogre::Vector3 &Vec) const |
Inequality Comparison Operator. More... | |
Vector3 | operator* (const Real &scalar) const |
Scaling by multiplication. More... | |
Vector3 | operator* (const Vector3 &Vec) const |
Multiplaction Operator. More... | |
Vector3 | operator* (const btVector3 &Vec) const |
Bullet Multiplication Operator. More... | |
Vector3 | operator* (const Ogre::Vector3 &Vec) const |
Ogre Multiplication Operator. More... | |
Vector3 & | operator*= (const Real &scalar) |
Scaling by multiplication. More... | |
Vector3 | operator+ (const Vector3 &Vec) const |
Addition Operator. More... | |
Vector3 | operator+ (const btVector3 &Vec) const |
Bullet Addition Operator. More... | |
Vector3 | operator+ (const Ogre::Vector3 &Vec) const |
Ogre Addition Operator. More... | |
Vector3 | operator- () |
Additive Inverse Operator. More... | |
Vector3 | operator- (const Vector3 &Vec) const |
Subraction Operator. More... | |
Vector3 | operator- (const btVector3 &Vec) const |
Bullet Subtraction Operator. More... | |
Vector3 | operator- (const Ogre::Vector3 &Vec) const |
Ogre Subtraction Operator. More... | |
Vector3 | operator/ (const Real &scalar) const |
Scaling by Division. More... | |
Vector3 | operator/ (const Vector3 &Vec) const |
Division Operator. More... | |
Vector3 | operator/ (const btVector3 &Vec) const |
Bullet Division Operator. More... | |
Vector3 | operator/ (const Ogre::Vector3 &Vec) const |
Ogre Division Operator. More... | |
Vector3 & | operator/= (const Real &scalar) |
Scaling by Division. More... | |
bool | operator<= (const Mezzanine::Vector3 &Vec) const |
Less or Equal Comparison Operator. More... | |
Vector3 & | operator= (const btVector3 &Vec) |
Assignment operator to convert from Bullet Vectors. More... | |
Vector3 & | operator= (const Ogre::Vector3 &Vec) |
Assignment operator to convert from Ogre Vectors. More... | |
bool | operator== (const Mezzanine::Vector3 &Vec) const |
Equality Comparison Operator. More... | |
bool | operator== (const btVector3 &Vec) const |
Equality Comparison Operator. More... | |
bool | operator== (const Ogre::Vector3 &Vec) const |
Equality Comparison Operator. More... | |
bool | operator>= (const Mezzanine::Vector3 &Vec) const |
Greater than or Equal Comparison Operator. More... | |
Real | operator[] (const StandardAxis &Axis) const |
Get The value associate with a certain Axis. More... | |
Real | operator[] (const Whole &Axis) const |
Get The value associate with a certain Axis. More... | |
Real & | operator[] (const StandardAxis &Axis) |
Get The value associate with a certain Axis in such a way that it can readily be assigned in this Vector3. More... | |
Real & | operator[] (const Whole &Axis) |
Get The value associate with a certain Axis in such a way that it can readily be assigned in this Vector3. More... | |
void | ProtoDeSerialize (const XML::Node &OneNode) |
Take the data stored in an XML and overwrite this instance of this object with it. More... | |
void | ProtoSerialize (XML::Node &CurrentRoot) const |
Convert this class to an XML::Node ready for serialization. More... | |
Vector3 | Reflect (const Vector3 &Normal) |
Gets a reflection vector to the plane with the given normal. More... | |
void | SetValues (const Real &X, const Real &Y, const Real &Z) |
Manually sets all the members of this vector3. More... | |
Real | SquaredDistance (const Vector3 &OtherVec) const |
Gets the squared distance between this and another vector. More... | |
Real | SquaredLength () const |
Gets the length of this vector squared. More... | |
void | Zero () |
Sets all the members of this vector3 to zero. | |
Static Public Member Functions | |
static Vector3 | Neg_Unit_X () |
Gets a vector representing the negative X unit of a vector. More... | |
static Vector3 | Neg_Unit_Y () |
Gets a vector representing the negative Y unit of a vector. More... | |
static Vector3 | Neg_Unit_Z () |
Gets a vector representing the negative Z unit of a vector. More... | |
static String | SerializableName () |
Get the name of the the XML tag this class will leave behind as its instances are serialized. More... | |
static Vector3 | Unit_X () |
Gets a vector representing the X unit of a Vector3. More... | |
static Vector3 | Unit_Y () |
Gets a vector representing the Y unit of a vector. More... | |
static Vector3 | Unit_Z () |
Gets a vector representing the Z unit of a vector. More... | |
static Vector3 | UnitOnAxis (StandardAxis Axis) |
Get a Unit Vector along the given Axis. More... | |
Public Attributes | |
Real | X |
Coordinate on the X vector. | |
Real | Y |
Coordinate on the Y vector. | |
Real | Z |
Coordinate on the Z vector. | |
This is used to represent a point in space, or a vector through space.
This contains an X, Y and a Z value used to represent coordinates. This also has a number of facilities to make converting from Physics subsystem vectors or graphics subsystems as easy as possible
Mezzanine::Vector3::Vector3 | ( | ) |
Default Constructor.
Basic all zero initialization constructor.
Definition at line 117 of file vector3.cpp.
Real value Constructor.
Constructor that sets all three vectors.
X | Coordinate on the X vector. |
Y | Coordinate on the Y vector. |
Z | Coordinate on the Z vector. |
Definition at line 120 of file vector3.cpp.
|
explicit |
Ogre Value Constructor.
Constructor that sets all values to match the Ogre vector.
Vec | The vector to be copied to make this vector. |
Definition at line 123 of file vector3.cpp.
|
explicit |
Bullet Value Constructor.
Constructor that sets all values to match the Bullet vector.
Vec | The vector to be copied to make this vector. |
Definition at line 126 of file vector3.cpp.
Mezzanine::Vector3::Vector3 | ( | const Mezzanine::Vector3 & | Vec) |
Copy Constructor.
Vec | The other Mezzanine::Vector3 to copy to make this one. |
Definition at line 129 of file vector3.cpp.
|
explicit |
Deserializing constructor.
OneNode | The XML node to deserialize from. |
Definition at line 132 of file vector3.cpp.
Sets each member of this Vector3 to the higher value between the two vector3s.
Other | The other Vector to compare with. |
Definition at line 453 of file vector3.cpp.
This is used to calculate the crossproduct of this and another vector.
This creates a third vector, which should be on a line perpendicular to the line that contains the origin and the other vector
Thanks to the guys at Ogre3d for the well written version of this function that we based this on.
Vec | the Vector to work with to create the cross product |
Definition at line 313 of file vector3.cpp.
Gets the distance between this and another vector.
This uses a 3d extension of pythagoras thereom to calculate the distance between this Vector3 and another.
OtherVec | This is the other point to measure the distance to. |
Definition at line 371 of file vector3.cpp.
This is used to calculate the dotproduct of this and another vector.
This calculates the sum of the products of X, Y and Z.
Thanks to the guys at Ogre3d for the well written version of this function that we based this on.
Vec | The vector to work with to create the cross product |
Definition at line 322 of file vector3.cpp.
void Mezzanine::Vector3::ExtractBulletVector3 | ( | const btVector3 & | temp) |
Copies an existing Bullet vector3.
This function will copy the values stored in an existing Bullet vector3 and set the values of this class to be the same.
temp | The vector3 to be extracted. |
Definition at line 482 of file vector3.cpp.
void Mezzanine::Vector3::ExtractOgreVector3 | ( | const Ogre::Vector3 & | temp) |
Copies an existing Ogre vector3.
This function will copy the values stored in an existing Ogre vector3 and set the values of this class to be the same.
temp | The vector3 to be extracted. |
Definition at line 498 of file vector3.cpp.
Sets each member of this Vector3 to the lower value between the two vector3s.
Other | The other Vector to compare with. |
Definition at line 461 of file vector3.cpp.
Real Mezzanine::Vector3::GetAxisValue | ( | const StandardAxis & | Axis) | const |
Get The value associate with a certain Axis.
Axis | Which axis to retrieve. |
Definition at line 74 of file vector3.cpp.
Get The value associate with a certain Axis.
Axis | Which axis to retrieve. |
Definition at line 85 of file vector3.cpp.
Real & Mezzanine::Vector3::GetAxisValue | ( | const StandardAxis & | Axis) |
Get The value associate with a certain Axis in such a way that it can readily be assigned in this Vector3.
Axis | Which axis to retrieve. |
Definition at line 88 of file vector3.cpp.
Get The value associate with a certain Axis in such a way that it can readily be assigned in this Vector3.
Axis | Which axis to retrieve. |
Definition at line 99 of file vector3.cpp.
btVector3 Mezzanine::Vector3::GetBulletVector3 | ( | ) | const |
Gets a Bullet vector3.
Creates a Bullet vector3 with values equal to this class and returns it.
Definition at line 472 of file vector3.cpp.
This will get the direction between two points.
This returns the direction expressed as a vector between this vector and another provided vector.
Destination | The point in space to determine the direction for. |
Definition at line 350 of file vector3.cpp.
Vector3 Mezzanine::Vector3::GetNormal | ( | ) | const |
This returns the normal for this relative to the origin.
This will return a vector that is 1 unit in away from the origin, if a line were starting and the origin it would pass through both the normal and the original point.
Definition at line 339 of file vector3.cpp.
Ogre::Vector3 Mezzanine::Vector3::GetOgreVector3 | ( | ) | const |
Gets a Ogre vector3.
Creates a Ogre vector3 with values equal to this class and returns it.
Definition at line 489 of file vector3.cpp.
Quaternion Mezzanine::Vector3::GetRotationToAxis | ( | const Vector3 & | Axis, |
const Vector3 & | FallBackAxis = Vector3() |
||
) | const |
Gets the rotation needed to rotate this vector as an axis to another axis.
Axis | The target axis to rotate to. |
Definition at line 396 of file vector3.cpp.
Vector3 Mezzanine::Vector3::Inverse | ( | ) |
This will inverse the reals in the vector.
This function will inverse all the reals in the vector.
Definition at line 355 of file vector3.cpp.
StandardAxis Mezzanine::Vector3::IsStandardUnitAxis | ( | ) | const |
Get a Unit Vector along the given Axis.
Definition at line 167 of file vector3.cpp.
bool Mezzanine::Vector3::IsZeroLength | ( | ) | const |
Checks to see if the length of this vector is zero.
Definition at line 391 of file vector3.cpp.
Real Mezzanine::Vector3::Length | ( | ) | const |
Gets the length of this vector.
Definition at line 381 of file vector3.cpp.
|
static |
Gets a vector representing the negative X unit of a vector.
Definition at line 147 of file vector3.cpp.
|
static |
Gets a vector representing the negative Y unit of a vector.
Definition at line 150 of file vector3.cpp.
|
static |
Gets a vector representing the negative Z unit of a vector.
Definition at line 153 of file vector3.cpp.
Vector3 & Mezzanine::Vector3::Normalize | ( | ) |
This will change this point into it's own normal relative to the origin.
This will change this vector into one that is the same direction from the origin, but only one unit a away.
Definition at line 327 of file vector3.cpp.
bool Mezzanine::Vector3::operator!= | ( | const Mezzanine::Vector3 & | Vec) | const |
Inequality Comparison Operator.
Vec | This is the other Mezzanine::Vector3. |
Definition at line 251 of file vector3.cpp.
bool Mezzanine::Vector3::operator!= | ( | const btVector3 & | Vec) | const |
Inequality Comparison Operator.
Vec | This is an btVector3 that needs to be compared with this. |
Definition at line 254 of file vector3.cpp.
bool Mezzanine::Vector3::operator!= | ( | const Ogre::Vector3 & | Vec) | const |
Inequality Comparison Operator.
Vec | This is an Ogre::Vector3 that needs to be compared with this. |
Definition at line 257 of file vector3.cpp.
Scaling by multiplication.
This Multiplies X, Y and Z by scalar.
scalar | This is the amount to scale the Vector3 by. |
Definition at line 213 of file vector3.cpp.
Multiplaction Operator.
Allows for multiplaction from a Mezzanine::Vector3
Vec | This is the other Mezzanine::Vector3 |
Definition at line 274 of file vector3.cpp.
Vector3 Mezzanine::Vector3::operator* | ( | const btVector3 & | Vec) | const |
Bullet Multiplication Operator.
Allows for multiplication between a Mezzanine::Vector3 and a btVector3
Vec | This is the btVector3 to be multiplied |
Definition at line 289 of file vector3.cpp.
Vector3 Mezzanine::Vector3::operator* | ( | const Ogre::Vector3 & | Vec) | const |
Ogre Multiplication Operator.
Allows for multiplying between a Mezzanine::Vector3 and a Ogre::Vector3
Vec | This is the Ogre::Vector3 to be multiplied. |
Definition at line 304 of file vector3.cpp.
Scaling by multiplication.
This Multiplies X, Y and Z by scalar and stores the changes in this Vector3.
scalar | This is the amount to scale the Vector3 by. |
Definition at line 222 of file vector3.cpp.
Addition Operator.
Allows for addition from a Mezzanine::Vector3
Vec | This is the other Mezzanine::Vector3 |
Definition at line 268 of file vector3.cpp.
Vector3 Mezzanine::Vector3::operator+ | ( | const btVector3 & | Vec) | const |
Bullet Addition Operator.
Allows for addition between a Mezzanine::Vector3 and a btVector3
Vec | This is the btVector3 to be added |
Definition at line 283 of file vector3.cpp.
Vector3 Mezzanine::Vector3::operator+ | ( | const Ogre::Vector3 & | Vec) | const |
Ogre Addition Operator.
Allows for addition between a Mezzanine::Vector3 and a Ogre::Vector3
Vec | This is the Ogre::Vector3 to be added |
Definition at line 298 of file vector3.cpp.
Vector3 Mezzanine::Vector3::operator- | ( | ) |
Additive Inverse Operator.
Returns the opposite Vector3 relative to 0,0,0
Definition at line 207 of file vector3.cpp.
Subraction Operator.
Allows for subtraction from a Mezzanine::Vector3
Vec | This is the other Mezzanine::Vector3 |
Definition at line 271 of file vector3.cpp.
Vector3 Mezzanine::Vector3::operator- | ( | const btVector3 & | Vec) | const |
Bullet Subtraction Operator.
Allows for subtraction between a Mezzanine::Vector3 and a btVector3
Vec | This is the btVector3 to be subtracted |
Definition at line 286 of file vector3.cpp.
Vector3 Mezzanine::Vector3::operator- | ( | const Ogre::Vector3 & | Vec) | const |
Ogre Subtraction Operator.
Allows for subtraction between a Mezzanine::Vector3 and a Ogre::Vector3
Vec | This is the Ogre::Vector3 to be subtracted |
Definition at line 301 of file vector3.cpp.
Scaling by Division.
This Diisionn X, Y and Z by scalar.
scalar | This is the amount to scale the Vector3 by. |
Definition at line 216 of file vector3.cpp.
Division Operator.
Allows for division from a Mezzanine::Vector3
Vec | This is the other Mezzanine::Vector3 |
Definition at line 277 of file vector3.cpp.
Vector3 Mezzanine::Vector3::operator/ | ( | const btVector3 & | Vec) | const |
Bullet Division Operator.
Allows for division between a Mezzanine::Vector3 and a btVector3
Vec | This is the btVector3 to be divided |
Definition at line 292 of file vector3.cpp.
Vector3 Mezzanine::Vector3::operator/ | ( | const Ogre::Vector3 & | Vec) | const |
Ogre Division Operator.
Allows for division between a Mezzanine::Vector3 and a Ogre::Vector3
Vec | This is the Ogre::Vector3 to be divided. |
Definition at line 307 of file vector3.cpp.
Scaling by Division.
This Division X, Y and Z by scalar and and stores the changes in this Vector3.
scalar | This is the amount to scale the Vector3 by. |
Definition at line 230 of file vector3.cpp.
bool Mezzanine::Vector3::operator<= | ( | const Mezzanine::Vector3 & | Vec) | const |
Less or Equal Comparison Operator.
Vec | This is the other Mezzanine::Vector3. |
Definition at line 260 of file vector3.cpp.
Vector3 & Mezzanine::Vector3::operator= | ( | const btVector3 & | Vec) |
Assignment operator to convert from Bullet Vectors.
This copies the x,y and z values from the bullet into this vector
Vec | This is a btVector3 that will be copied |
Definition at line 188 of file vector3.cpp.
Vector3 & Mezzanine::Vector3::operator= | ( | const Ogre::Vector3 & | Vec) |
Assignment operator to convert from Ogre Vectors.
This copies the x,y and z values from the bullet into this vector
Vec | This is a Ogre::Vector3 that will be copied. |
Definition at line 196 of file vector3.cpp.
bool Mezzanine::Vector3::operator== | ( | const Mezzanine::Vector3 & | Vec) | const |
Equality Comparison Operator.
Vec | This is the other Mezzanine::Vector3. |
Definition at line 241 of file vector3.cpp.
bool Mezzanine::Vector3::operator== | ( | const btVector3 & | Vec) | const |
Equality Comparison Operator.
Vec | This is an btVector3 that needs to be compared with this. |
Definition at line 244 of file vector3.cpp.
bool Mezzanine::Vector3::operator== | ( | const Ogre::Vector3 & | Vec) | const |
Equality Comparison Operator.
Vec | This is an Ogre::Vector3 that needs to be compared with this. |
Definition at line 247 of file vector3.cpp.
bool Mezzanine::Vector3::operator>= | ( | const Mezzanine::Vector3 & | Vec) | const |
Greater than or Equal Comparison Operator.
Vec | This is the other Mezzanine::Vector3. |
Definition at line 262 of file vector3.cpp.
Real Mezzanine::Vector3::operator[] | ( | const StandardAxis & | Axis) | const |
Get The value associate with a certain Axis.
Axis | Which axis to retrieve. |
Definition at line 102 of file vector3.cpp.
Get The value associate with a certain Axis.
Axis | Which axis to retrieve. |
Definition at line 105 of file vector3.cpp.
Real & Mezzanine::Vector3::operator[] | ( | const StandardAxis & | Axis) |
Get The value associate with a certain Axis in such a way that it can readily be assigned in this Vector3.
Axis | Which axis to retrieve. |
Definition at line 108 of file vector3.cpp.
Get The value associate with a certain Axis in such a way that it can readily be assigned in this Vector3.
Axis | Which axis to retrieve. |
Definition at line 111 of file vector3.cpp.
void Mezzanine::Vector3::ProtoDeSerialize | ( | const XML::Node & | OneNode) |
Take the data stored in an XML and overwrite this instance of this object with it.
OneNode | and XML::Node containing the data. |
Definition at line 527 of file vector3.cpp.
void Mezzanine::Vector3::ProtoSerialize | ( | XML::Node & | CurrentRoot) | const |
Convert this class to an XML::Node ready for serialization.
CurrentRoot | The point in the XML hierarchy that all this vector3 should be appended to. |
Definition at line 505 of file vector3.cpp.
Gets a reflection vector to the plane with the given normal.
Normal | The normal of the plane being reflected off of. |
Definition at line 366 of file vector3.cpp.
|
static |
Get the name of the the XML tag this class will leave behind as its instances are serialized.
Definition at line 544 of file vector3.cpp.
Manually sets all the members of this vector3.
X | Value to set for X. |
Y | Value to set for Y. |
Z | Value to set for Z. |
Definition at line 446 of file vector3.cpp.
Gets the squared distance between this and another vector.
OtherVec | This is the other point to measure the distance to. |
Definition at line 376 of file vector3.cpp.
Real Mezzanine::Vector3::SquaredLength | ( | ) | const |
Gets the length of this vector squared.
Definition at line 386 of file vector3.cpp.
|
static |
Gets a vector representing the X unit of a Vector3.
Definition at line 138 of file vector3.cpp.
|
static |
Gets a vector representing the Y unit of a vector.
Definition at line 141 of file vector3.cpp.
|
static |
Gets a vector representing the Z unit of a vector.
Definition at line 144 of file vector3.cpp.
|
static |
Get a Unit Vector along the given Axis.
Axis | The StandardAxis correlating to the Unit Vector you are retrieving |
Definition at line 156 of file vector3.cpp.