Skip to content

Commit

Permalink
for issue #80
Browse files Browse the repository at this point in the history
  • Loading branch information
NevilClavain committed Jul 28, 2023
1 parent 01c19ea commit 139922d
Show file tree
Hide file tree
Showing 13 changed files with 211 additions and 216 deletions.
4 changes: 2 additions & 2 deletions drawspacecore_project/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ ${CMAKE_SOURCE_DIR}/src/maths.h

source_group(maths FILES
${CMAKE_SOURCE_DIR}/src/maths.h
${CMAKE_SOURCE_DIR}/src/quaternion.h
${CMAKE_SOURCE_DIR}/src/quaternion.cpp
)

source_group(aspect FILES
Expand Down Expand Up @@ -232,8 +234,6 @@ ${CMAKE_SOURCE_DIR}/src/pimanager.h
${CMAKE_SOURCE_DIR}/src/pimanager_impl.h
${CMAKE_SOURCE_DIR}/src/quadtree.cpp
${CMAKE_SOURCE_DIR}/src/quadtree.h
${CMAKE_SOURCE_DIR}/src/quaternion.cpp
${CMAKE_SOURCE_DIR}/src/quaternion.h
${CMAKE_SOURCE_DIR}/src/timemanager.cpp
${CMAKE_SOURCE_DIR}/src/timemanager.h
${CMAKE_SOURCE_DIR}/src/vector.cpp
Expand Down
19 changes: 9 additions & 10 deletions lua_core/src/luaclass_globals.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@


using namespace DrawSpace;
using namespace DrawSpace::Commons;

using namespace DrawSpace::Core;
using namespace DrawSpace::Utils;
Expand Down Expand Up @@ -712,16 +711,16 @@ int LuaClass_Globals::LUA_rotatequaternionx(lua_State* p_L)
LuaClass_Vector* lua_axis_vector { Luna<LuaClass_Vector>::check(p_L, 2) };
LuaClass_Quaternion* lua_quat { Luna<LuaClass_Quaternion>::check(p_L, 3) };

Quaternion q, qres;
Maths::Quaternion q, qres;

q.RotationAxis(lua_axis_vector->getVector(), angle_rad);
q.rotationAxis(lua_axis_vector->getVector(), angle_rad);
qres = lua_quat->GetQuaternion() * q;

// update input quaternion
lua_quat->SetQuaternion(qres);

Utils::Matrix orientation;
qres.RotationMatFrom(orientation);
qres.rotationMatFrom(orientation);

// update input axis vector
Vector out_axis_vector(orientation(0, 0), orientation(0, 1), orientation(0, 2), 1.0);
Expand All @@ -744,16 +743,16 @@ int LuaClass_Globals::LUA_rotatequaterniony(lua_State* p_L)
LuaClass_Vector* lua_axis_vector{ Luna<LuaClass_Vector>::check(p_L, 2) };
LuaClass_Quaternion* lua_quat{ Luna<LuaClass_Quaternion>::check(p_L, 3) };

Quaternion q, qres;
Maths::Quaternion q, qres;

q.RotationAxis(lua_axis_vector->getVector(), angle_rad);
q.rotationAxis(lua_axis_vector->getVector(), angle_rad);
qres = lua_quat->GetQuaternion() * q;

// update input quaternion
lua_quat->SetQuaternion(qres);

Utils::Matrix orientation;
qres.RotationMatFrom(orientation);
qres.rotationMatFrom(orientation);

// update input axis vector
Vector out_axis_vector(orientation(1, 0), orientation(1, 1), orientation(1, 2), 1.0);
Expand All @@ -776,16 +775,16 @@ int LuaClass_Globals::LUA_rotatequaternionz(lua_State* p_L)
LuaClass_Vector* lua_axis_vector{ Luna<LuaClass_Vector>::check(p_L, 2) };
LuaClass_Quaternion* lua_quat{ Luna<LuaClass_Quaternion>::check(p_L, 3) };

Quaternion q, qres;
Maths::Quaternion q, qres;

q.RotationAxis(lua_axis_vector->getVector(), angle_rad);
q.rotationAxis(lua_axis_vector->getVector(), angle_rad);
qres = lua_quat->GetQuaternion() * q;

// update input quaternion
lua_quat->SetQuaternion(qres);

Utils::Matrix orientation;
qres.RotationMatFrom(orientation);
qres.rotationMatFrom(orientation);

// update input axis vector
Vector out_axis_vector(orientation(2, 0), orientation(2, 1), orientation(2, 2), 1.0);
Expand Down
2 changes: 1 addition & 1 deletion lua_core/src/luaclass_matrix.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ int LuaClass_Matrix::LUA_rotationfromquaternion(lua_State* p_L)
}

LuaClass_Quaternion* lua_quat = Luna<LuaClass_Quaternion>::check(p_L, 1);
lua_quat->GetQuaternion().RotationMatFrom(m_matrix);
lua_quat->GetQuaternion().rotationMatFrom(m_matrix);

return 0;
}
Expand Down
18 changes: 9 additions & 9 deletions lua_core/src/luaclass_quaternion.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,13 @@ LuaClass_Quaternion::~LuaClass_Quaternion(void)

int LuaClass_Quaternion::LUA_zero(lua_State* p_L)
{
m_quat.Zero();
m_quat.zero();
return 0;
}

int LuaClass_Quaternion::LUA_identity(lua_State* p_L)
{
m_quat.Identity();
m_quat.identity();
return 0;
}

Expand All @@ -79,7 +79,7 @@ int LuaClass_Quaternion::LUA_lookat(lua_State* p_L)

const Vector& source{ lua_source->getVector() };
const Vector& dest{ lua_dest->getVector() };
m_quat.LookAt(source, dest);
m_quat.lookAt(source, dest);

return 0;
}
Expand All @@ -98,14 +98,14 @@ int LuaClass_Quaternion::LUA_rotationaxis(lua_State* p_L)

dsreal ang = luaL_checknumber(p_L, 4);

m_quat.RotationAxis(Vector(x, y, z, 1.0), ang);
m_quat.rotationAxis(Vector(x, y, z, 1.0), ang);

return 0;
}

int LuaClass_Quaternion::LUA_normalize(lua_State* p_L)
{
m_quat.Normalize();
m_quat.normalize();
return 0;
}

Expand All @@ -122,7 +122,7 @@ int LuaClass_Quaternion::LUA_storelerp(lua_State* p_L)

dsreal blend_factor = luaL_checknumber(p_L, 3);

m_quat = Quaternion::Lerp(lua_q1->GetQuaternion(), lua_q2->GetQuaternion(), blend_factor);
m_quat = DrawSpace::Maths::Quaternion::lerp(lua_q1->GetQuaternion(), lua_q2->GetQuaternion(), blend_factor);

return 0;
}
Expand All @@ -138,18 +138,18 @@ int LuaClass_Quaternion::LUA_rotationmatfrom(lua_State* p_L)
LuaClass_Matrix* lua_mat{ Luna<LuaClass_Matrix>::check(p_L, 1) };

Matrix out_mat;
m_quat.RotationMatFrom(out_mat);
m_quat.rotationMatFrom(out_mat);
lua_mat->SetMatrix(out_mat);

return 0;
}

DrawSpace::Utils::Quaternion LuaClass_Quaternion::GetQuaternion(void) const
DrawSpace::Maths::Quaternion LuaClass_Quaternion::GetQuaternion(void) const
{
return m_quat;
}

void LuaClass_Quaternion::SetQuaternion(const DrawSpace::Utils::Quaternion& p_quat)
void LuaClass_Quaternion::SetQuaternion(const DrawSpace::Maths::Quaternion& p_quat)
{
m_quat = p_quat;
}
6 changes: 3 additions & 3 deletions lua_core/src/luaclass_quaternion.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class LuaClass_Quaternion
{
protected:

DrawSpace::Utils::Quaternion m_quat;
DrawSpace::Maths::Quaternion m_quat;

public:
LuaClass_Quaternion(lua_State* p_L);
Expand All @@ -46,8 +46,8 @@ class LuaClass_Quaternion
int LUA_rotationmatfrom(lua_State* p_L);


DrawSpace::Utils::Quaternion GetQuaternion(void) const;
void SetQuaternion(const DrawSpace::Utils::Quaternion& p_quat);
DrawSpace::Maths::Quaternion GetQuaternion(void) const;
void SetQuaternion(const DrawSpace::Maths::Quaternion& p_quat);

static const char className[];
static const Luna<LuaClass_Quaternion>::RegType methods[];
Expand Down
12 changes: 6 additions & 6 deletions lua_extensions/fpsmvt_luaext/src/luaclass_fpsmvttransform.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -238,9 +238,9 @@ void LuaClass_FPSMovementTransform::GetLocaleTransform(DrawSpace::Aspect::Transf
bool y_mvt = flags[0]->getPurpose();

// les quaternions
Utils::Quaternion qyaw;
Utils::Quaternion qpitch;
Utils::Quaternion current_res;
Maths::Quaternion qyaw;
Maths::Quaternion qpitch;
Maths::Quaternion current_res;

// les sorties
Utils::Matrix orientation;
Expand All @@ -250,11 +250,11 @@ void LuaClass_FPSMovementTransform::GetLocaleTransform(DrawSpace::Aspect::Transf
Vector yaxis(0.0, 1.0, 0.0, 1.0);
Vector xaxis(1.0, 0.0, 0.0, 1.0);

qyaw.RotationAxis(yaxis, angle_yaw);
qpitch.RotationAxis(xaxis, angle_pitch);
qyaw.rotationAxis(yaxis, angle_yaw);
qpitch.rotationAxis(xaxis, angle_pitch);

current_res = qpitch * qyaw;
current_res.RotationMatFrom(orientation);
current_res.rotationMatFrom(orientation);

orientation.Transform(&local_speed, &gs);

Expand Down
Loading

0 comments on commit 139922d

Please sign in to comment.