Updated documentation
This commit is contained in:
parent
4eafc6b5de
commit
6b3abb1731
@ -28,13 +28,6 @@ Quaternion::Quaternion(float _x, float _y, float _z, float _w) {
|
||||
w = _w;
|
||||
}
|
||||
|
||||
Quaternion::Quaternion(Vector3 _xyz, float _w) {
|
||||
x = _xyz.x;
|
||||
y = _xyz.y;
|
||||
z = _xyz.z;
|
||||
w = _w;
|
||||
}
|
||||
|
||||
Quaternion::Quaternion(Quat q) {
|
||||
x = q.x;
|
||||
y = q.y;
|
||||
@ -320,8 +313,8 @@ Quaternion Quaternion::SlerpUnclamped(const Quaternion& a, const Quaternion& b,
|
||||
blendA = 1.0f - t;
|
||||
blendB = t;
|
||||
}
|
||||
|
||||
Quaternion result = Quaternion(axyz * blendA + b2.xyz() * blendB, blendA * a.w + blendB * b2.w);
|
||||
Vector3 v = axyz * blendA + b2.xyz() * blendB;
|
||||
Quaternion result = Quaternion(v.x, v.y, v.z, blendA * a.w + blendB * b2.w);
|
||||
if (result.GetLengthSquared() > 0.0f)
|
||||
return Quaternion::Normalize(result);
|
||||
else
|
||||
|
31
Quaternion.h
31
Quaternion.h
@ -20,23 +20,34 @@ extern "C" {
|
||||
/// </summary>
|
||||
struct Quaternion : Quat {
|
||||
public:
|
||||
/// <summary>
|
||||
/// Create a new identity quaternion
|
||||
/// </summary>
|
||||
Quaternion();
|
||||
/// <summary>
|
||||
/// create a new quaternion with the given values
|
||||
/// </summary>
|
||||
/// <param name="_x">x axis value</param>
|
||||
/// <param name="_y">y axis value</param>
|
||||
/// <param name="_z">z axis value</param>
|
||||
/// <param name="_w">w axis value</param>
|
||||
Quaternion(float _x, float _y, float _z, float _w);
|
||||
Quaternion(Vector3 _xyz, float _w);
|
||||
/// <summary>
|
||||
/// Create a quaternion from C-style Quat
|
||||
/// </summary>
|
||||
/// <param name="q"></param>
|
||||
Quaternion(Quat q);
|
||||
~Quaternion();
|
||||
|
||||
/// <summary>
|
||||
/// An identity quaternion
|
||||
/// </summary>
|
||||
const static Quaternion identity;
|
||||
|
||||
float GetLength() const;
|
||||
float GetLengthSquared() const;
|
||||
static float GetLengthSquared(const Quaternion& q);
|
||||
void Normalize();
|
||||
static Quaternion Normalize(const Quaternion& q);
|
||||
static void Normalize(const Quaternion& q, Quaternion& result);
|
||||
|
||||
static float Dot(Quaternion a, Quaternion b);
|
||||
|
||||
static Vector3 ToAngles(const Quaternion& q1);
|
||||
|
||||
Vector3 operator *(const Vector3& p) const;
|
||||
@ -65,6 +76,14 @@ public:
|
||||
static float GetAngleAround(Vector3 axis, Quaternion rotation);
|
||||
static Quaternion GetRotationAround(Vector3 axis, Quaternion rotation);
|
||||
static void GetSwingTwist(Vector3 axis, Quaternion rotation, Quaternion* swing, Quaternion* twist);
|
||||
|
||||
protected:
|
||||
float GetLength() const;
|
||||
float GetLengthSquared() const;
|
||||
static float GetLengthSquared(const Quaternion& q);
|
||||
|
||||
static float Dot(Quaternion a, Quaternion b);
|
||||
|
||||
public:
|
||||
Vector3 xyz() const;
|
||||
};
|
||||
|
@ -1,12 +1,8 @@
|
||||
\author PasserVR
|
||||
\version 0.1
|
||||
\mainpage Vector Algebra
|
||||
|
||||
3D Vector algebra library (Vector3, Quaternion)
|
||||
|
||||
Note: this documentation is still work in progress....
|
||||
|
||||
Main components
|
||||
---------------
|
||||
* Vector3
|
||||
* Quaternion
|
||||
* [Vector3](https://passervr.com/apis/VectorAlgebra/struct_vector3.html)
|
||||
* [Quaternion](https://passervr.com/apis/VectorAlgebra/struct_quaternion.html)
|
Loading…
x
Reference in New Issue
Block a user