moved files around
This commit is contained in:
38
Extras/FCollada/FMath/FMQuaternion.cpp
Normal file
38
Extras/FCollada/FMath/FMQuaternion.cpp
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
Copyright (C) 2005-2006 Feeling Software Inc.
|
||||
MIT License: http://www.opensource.org/licenses/mit-license.php
|
||||
*/
|
||||
|
||||
#include "StdAfx.h"
|
||||
#include "FMath/FMath.h"
|
||||
#include "FMath/FMVector3.h"
|
||||
#include "FMath/FMQuaternion.h"
|
||||
|
||||
// [Glaforte 03-08-2006] VERY EXPERIMENTAL CODE: DON'T USE.
|
||||
|
||||
FMQuaternion::FMQuaternion(const FMVector3& axis, float angle)
|
||||
{
|
||||
float s = sinf(angle / 2.0f);
|
||||
x = axis.x * s;
|
||||
y = axis.y * s;
|
||||
z = axis.z * s;
|
||||
w = cosf(angle / 2.0f);
|
||||
}
|
||||
|
||||
FMQuaternion FMQuaternion::operator*(const FMQuaternion& q) const
|
||||
{
|
||||
FMQuaternion r;
|
||||
r.w = w * q.w - x * q.x - y * q.y - z * q.z;
|
||||
r.x = w * q.x + x * q.w + y * q.z - z * q.y;
|
||||
r.y = w * q.y + y * q.w + z * q.x - x * q.z;
|
||||
r.z = w * q.z + z * q.w + x * q.y - y * q.x;
|
||||
return r;
|
||||
}
|
||||
|
||||
FMQuaternion FMQuaternion::EulerRotationQuaternion(float x, float y, float z)
|
||||
{
|
||||
FMQuaternion qx(FMVector3::XAxis, x);
|
||||
FMQuaternion qy(FMVector3::YAxis, y);
|
||||
FMQuaternion qz(FMVector3::ZAxis, z);
|
||||
return qx * qy * qz;
|
||||
}
|
||||
Reference in New Issue
Block a user